MOVEが初めて提案したGAS設計:オンチェーンリソース消費計算方法の解析

robot
概要作成中

MOVE言語による最初のGAS設計:オンチェーンGAS支出の計算方法

MOVE言語の前のバージョンは、GASなしで動作することを意図していたため、GAS計画の準備はされていませんでした。最近あるパブリックチェーンのために作られたGAS計画は、MOVE言語の最初のGAS設計であり、「冒険」と呼ばれています。

このGASプランは、GASを策定するための原則、プロセス、計算方法、後期調整、およびコミュニティの提案を受け入れることなどを明らかにしています。

GAS計量は多くのブロックチェーンの基本概念であり、それは実行およびストレージのオンチェーントランザクションに必要な計算およびストレージリソースの量を定義する抽象的な計算です。GASプランは、オンチェーンでのすべての実行に消費されるコストを決定し、取引の実行中に使用されるGASの費用を計算するために使用されます。

プロセス

効果的に実行するために、オンチェーンプロセスは以下の通りです:

  1. 原則を定義する
  2. 評価フレームワークを準備し、各実行の価格を決定する
  3. MOVEのためのGAS計測システムと安全GAS代数を構築する
  4. アップストリームGASフレームワークをインポートする
  5. GASフレームワークにストレージ意識を持たせる
  6. GASプランのさらなる詳細化

###原則

定義された原則には次のものが含まれます:

  1. 操作コストはネットワークの利用可能なリソースに直接関連し、技術の進歩とともに低下するべきである。
  2. GASはオンチェーンガバナンスによって設定され、シームレスに構成可能です。
  3. GASはDoS攻撃を防ぐことができ、ネットワークの状況に応じて迅速に調整できます。
  4. GAS価格は加速成長とブロックチェーンへのアクセシビリティを維持するビジョンを反映する必要があります。
  5. 設計において良い選択を促すこと、例えば安全性やモジュール化を優先することなど

GASの計算

ユーザーが取引を提出する際には、指定する必要があります:

  • GASの最大数:ユーザーがトランザクションを実行するために費やす意思のあるGASユニットの最大数
  • GAS単価:GASの単位あたりのオクタル形式で計算され、1オクタル= 0.00000001 APT

取引の実行中に、以下の料金が請求されます。

  1. 固定コスト
  2. MOVE指令のコスト
  3. 永続ストレージからデータを読み取るコスト
  4. 永続ストレージにデータを書き込むコスト

最終取引手数料 = 消費されたGASの合計量×GAS単価

例えば、取引で670のGAS単位を消費し、ユーザーが指定したGAS単価が100 Octa/単位であれば、最終的な費用は670 × 100 = 67000 Octa = 0.00067 APTです。

取引実行中にGASが尽きた場合、送信者は最大GAS量で請求され、その取引に対する変更は元に戻されます。

GASスケジュールの確立

  1. 基本設定

GASプランには、トランザクションサイズや最大GASユニットなど、単一の操作に依存しないコンポーネントが含まれています。

  1. 取引規模

ほとんどの取引規模はキロバイトレベルです。MOVEモジュールのリリースは数千バイトに達し、あるフレームワークは約100 KBです。ユーザーモジュールは通常4-40 KBの間です。取引規模の値は最初32 KBに設定され、その後コミュニティのフィードバックに基づいて64 KBに調整されました。

大規模な取引はネットワークの帯域幅コストを増加させ、パフォーマンスに影響を与える可能性があります。メモリプールは大規模な取引を無視する可能性があるため、最大規模とアクセシビリティの間でバランスを取る必要があります。

3.最大GAS単位

GASプランでの最大GAS単位は、単一のトランザクションで実行可能な最大操作数を定義します。設定が高すぎると、ブロックチェーンのパフォーマンスに悪影響を及ぼす可能性があります。テストの結果、最大フレームアップグレードを行っても、最大GAS単位(のうち90%未満しか使用されていません。最大GAS単位は1,000,000)に設定されています。

  1. 実行

ベンチマークフレームワークを構築し、Valgrindを使用してMOVE VMの実行コストを評価します。出力は注釈付きのソースコードで、各行のコードが生成するマシン命令の数を示します。

これに基づいて、すべてのMOVE命令とネイティブ関数の相対コストを大まかに推定します。インライン関数に関していくつかの問題があることに注意し、数値の加算で解決できます。

最終的に、システムの堅牢性と安全性を強化するためのコーディングの例を考慮し、実行されるマシン命令の数を導き出します。この数字をストレージと最大GAS単位とのトレードオフと比較し、GAS計画における現在の値を決定します。

  1. ストレージ

レジャーのステータス項目またはデータにアクセスする際、ノードはストレージデバイスに読み書き要求を送信します。1秒あたりのデータアクセス総数は、ストレージデバイスの帯域幅とIOPS容量に依存します。データアクセスは、システムの負荷時にユーザーが料金市場で競争する瞬間的に希少なリソースです。データを書き込むディスクの占有コストはオンチェーンで永久的です。

状態項のアクセスと保存は、ブロックチェーン全体の状態を検証することに関連するデータ構造に関連するコストを生じさせます。このコストは、異なる状態項の基数に関係しており、($2^{256}$)に関連しています。また、各項目のサイズに比例するコストも存在します。

状態項目操作の手数料(の次の説明にある例外を除いて)は:

貯蔵ガス料金=item_fee+(byte_fee × bytes)

読む、作成する、書く

状態項目のアクセスは、3つのタイプに分けられます: 読み取り、作成、または書き込み。アクセスは、項目費用とバイト費用に基づいて料金が発生します。

読み取り操作は最も一般的であり、一時的なリソースの不足にのみ制限されます。読み取りコストは、ディスクIOPSおよび参照ハードウェア仕様の帯域幅容量に基づいて調整されます。

作成操作は、ステートストレージに新しい項目を追加し、認証データ構造のコストを増加させるため、最も高価です。作成コストは、ネットワークが所有するリファレンスディスクスペースに基づいて調整されます。

書き込み操作は既存の項目を更新し、認証データ構造に追加のオーバーヘッドを発生させません。しかし、既存のエントリをより大きなバイト数に変更することは、ディスクを占有する可能性があるため、更新項目のバイト数に対して作成と同じ料金が請求されます。

ストレージ関連のコストは、各トランザクションを基に評価されます:同じリソースを複数回読み書きしても、料金は一度だけ請求されます。

上記の考慮に基づいて、合計費用を構成する6つのGASパラメータが定義されました:

  • per_item_read:IOPsに基づいてキャリブレーションします
  • per_byte_read:実際の帯域幅に基づいてキャリブレーションする
  • per_item_create:目標総プロジェクトに基づいて調整する
  • per_byte_create:ターゲット総サイズに基づいて(は各プロジェクトに最初の1KB)を含むように調整されます。
  • per_item_write:per_item_readと同じ
  • per_byte_write:per_byte_createと同じ

安定したGAS単位コスト

各操作及び取引自体は、APTまたは法定通貨で計算された市場価値に関係なく、保存および実行コストに対して固定の単位コストを必要とします。固定GAS単位コストは、GASプログラムを不変に保ち、APTの自由市場価値から切り離すのに役立ちます。GAS単位の正しい精度を選択することは、GASプログラムの安定性を維持するのに寄与します。この点を考慮して、GAS単位は約3桁の精度で表されます。したがって、送金取引コストは約700 GAS単位です。

コミュニティ参加

コミュニティメンバーは:

  1. GASプランの不合理な点を見つける
  2. 懸念を提起し、議論に参加する
  3. GASに関するガバナンス提案への投票を行う

GASコスト調整

GASプランはオンチェーン設定ストレージとして機能し、ガバナンス提案によって変更可能で、新しい命令やネイティブ機能をシームレスに追加できます。

GASプランは拡張性を持つ設計で、ガバナンス提案を通じてアップグレードを許可します。ユーザーからのフィードバックを取り入れながら、GASパラメータは時間と共に調整可能です。

時々、GASの公式は複雑な変更を必要とすることがあります。これらの公式は通常Rustでコーディングされ、オンチェーンGAS特徴フラグによって区別されます。これらの公式をアップグレードするには、ノードソフトウェアを更新し、大量に採用し、新しいGASバージョンの使用をガバナンス提案で承認する必要があります。

働き方の未来

Moveの最初の実行可能なGASフレームワークとして、今後の作業方向には以下が含まれます:

  1. 実行コストの削減: 実際のGASモデルを利用してコンパイラと仮想マシンの効率を表示し、実行コストを低減するように改善する

  2. 多次元GAS計算:ユーザーが実行と保存のために別々の予算を指定できるようにし、コード品質の問題による高額なGAS価格の支払いを避けることができます。

  3. 膨張状態の緩和: 各プロジェクトのTTL概念を探求し、TTLが期限切れになると未訪問の状態プロジェクトを削除する

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • 4
  • 共有
コメント
0/400
rugged_againvip
· 22時間前
これらを話すよりも、直接ガスがどれくらい減るかを言った方がいいですか?
原文表示返信0
MetaverseMigrantvip
· 23時間前
啧 これよりガスはもっと複雑にならないの?
原文表示返信0
NewDAOdreamervip
· 23時間前
逆にお金を取られるのもcoderの一生の痛みだな
原文表示返信0
¯\_(ツ)_/¯vip
· 23時間前
🔥 何が複雑なのですか?
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)