RustでのDashプラットフォームのプロトコル
DPPをRustにポートすることで、より安全で高性能になります。 さらに、ブロック処理も速くなります。 Rust DPPをJSコンポーネントに統合するために、我々はWASM DPPを提供しています。 これは、プラットフォームをRustにポートする第一歩です。 JSは実験やプロトタイピングには適していましたが、今ではもっと持続可能なものが必要です。
同じブロックの実行
我々のコンセンサス・エンジンの元となったTendermintプロジェクトから受け継がれた制限により、ブロック署名は現在のブロックのすべてのステート移行だけでなく、以前のブロックのステートにも署名することになっていました。 したがって、DAPIから実績のあるデータを得るには、次のブロックコミットメントを待つ必要があります。 このことは、我々が望む証明システムや保管システムとは相容れないものでした。 この改善により、ネットワークへの負荷が大幅に軽減され、プラットフォームへのデータ挿入に必要な時間が短縮され、UXが向上しました。
クレジットの引き出し
現在、Dashをプラットフォームクレジットに交換するには、IDの作成またはトップアップする必要があります。 クレジットは、主にステート移行の料金の支払いに使われます。 マスターノードは、プラットフォームをホストすることによる報酬をクレジットで得られます(ブロック報酬とステータス移行の手数料)。 出金により、マスターノードおよびその他のIDはクレジットをDashに戻すことができます。
効率的なデータ・シリアライゼーション
Dashプラットフォームのプロトコル(DPP)は、以前にスキーマレスのデータシリアライゼーションを実装するCBORエンコーディングのメカニズムを利用していました。 プラットフォーム上のデータはすべて定義済みの構造体に保管されているため、構造体の情報まで保管する必要はありません。 値を保管するだけで、シリアライズされたオブジェクトのサイズは劇的に小さくなります。
料金の払い戻し
ユーザーがプラットフォームにデータを追加する際に、データの保管料を恒常的に支払う仕組みになっています。 ただし、すべてのデータをプラットフォームに永続的に保管する必要はありません。 データコントラクトにおいて、ユーザーはドキュメントの更新や削除を定義することができます。 料金の払い戻しが導入されたことで、ユーザーはデータを削除した際にクレジットを返還してもらうことができます。
ID v2
IDは、残高や様々な目的とセキュリティレベルで使用されるパブリックキーのコレクション等、様々なデータで構成されています。 新しいIDストレージの実装では、IDの特定の部分または複数の部分のみを更新またはフェッチできます。 これにより、ステート移行の手数料が抑えられ、ネットワークの負荷が軽減されます。
総クレジットの検証
GroveDBの新しいサムツリー機能により、ブロックチェーン上のインフレバグに対する保護メカニズムを実装することができました。 この機能は、特定のタイプのマークルAVLツリーのノードに合計を追加します。 このツリーでは、ルートノードがツリー内のすべての整数値の合計を保持します。 サムツリーで値が追加、削除、更新されるたびに、すべての親ノード、ひいてはルートの「合計値」が更新されます。 クレジットの検証メカニズムは、ストレージ内のすべてのクレジット残高の各ブロックをシステム内のクレジットの予測量と比較するものとなっています。 これにより、事前に定義された供給量以外の新しいクレジットやトークンをミントするインフレ攻撃を防ぐことができます。
マスターノードの投票ID
これは、プラットフォーム上で今後のガバナンス機能を実現するためのコンポーネントです。
HTTPSによる分散型API
このバージョン以降、DAPIリクエストはHTTPS経由で提供され、ブラウザ用のアプリケーションを構築できるようになりました。