# MOVE言語の最初のGAS設計:チェーン上のGAS手数料の計算方法の分析MOVE言語の前のバージョンは無GASで動作するように設計されていたため、GASの計画には対応していませんでした。最近、あるブロックチェーンプロジェクトがそのMOVE言語チェーンのために導入した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単価:1八進数=0.00000001ネイティブトークンで、GASの単位ごとに八進数で計算されます。取引の実行中に、以下の料金が請求されます。1. 固定費:固定ベースが増加する取引に対する追加料金2. 実行コスト: MOVE命令を実行するために使用される3. 読み取りコスト: 永続ストレージからデータを読み取るための4. 書き込みコスト: データを永続ストレージに書き込むためのもの最終取引手数料 = 消費されたGASの合計量×GAS単価例えば、取引が670 GASユニットを消費し、ユーザーがGAS単価を100 Octa/ユニットに指定した場合、最終的な手数料は670 × 100 = 67000 Octa = 0.00067ネイティブトークンとなります。取引実行中にGASが尽きた場合、送信者は最大GAS量に基づいて料金が請求され、取引所の変更は元に戻されます。## GASスケジュールを作成する### 基本設定GASプランには、取引のサイズや最大GAS単位など、単一の操作の詳細に関連しない構成要素が含まれています。### トランザクション サイズ大多数取引規模はKBレベルですが、モジュールのリリースは数千バイトに達することがあります。最初の取引規模は32KBに設定されましたが、コミュニティからのフィードバックに基づいて64KBに調整され、アプリケーション開発を簡素化しました。大規模な取引はネットワークの帯域幅コストを増加させ、パフォーマンスに影響を与える可能性があります。メモリプールはより大規模な取引を無視する傾向があるため、最大規模とアクセス可能性の間でバランスをとる必要があります。最大### GASユニットGASプランの最大GAS単位は、取引で実行可能な操作の最大量を定義します。設定が高すぎると、パフォーマンスに悪影響を及ぼす可能性があります。現在、最大フレームアップグレードを行っても、最大GAS単位(1,000,000)の90%には達していません。###実行ベンチマークフレームワークとValgrindを使用してMove VMを分析し、すべてのMove命令とネイティブ関数の相対コストを見積もります。システムの堅牢性と安全性を考慮し、最終的な実行される機械命令の数を導き出し、ストレージと最大GAS単位のトレードオフを考慮してGASプランの現在の値を決定します。### ストレージレジャーステート項目やデータにアクセスする際、ノードはストレージデバイスに読み書きを要求します。データアクセスの総数はストレージデバイスの帯域幅とIOPSに制限されています。ストレージGASプランはこれらのコストを考慮しています。状態項目へのアクセスと保存は、ブロックチェーンの状態データ構造の検証に関連するコストを生じます。費用は状態項目の基数とサイズに関連しています:GAS費の保存 = プロジェクト費 + (バイト費 × バイト数)### 読む、作成する、書き込むステータス項目のアクセスは、読み取り、作成、または書き込みの三種類に分かれています:- 読み取り操作は最も一般的で、瞬時のリソース不足の制限を受けるのみです。- ステートストレージに新しい項目を追加する、コストは最高- 書き込み操作は既存の項目を更新し、更新項目のバイトには作成時と同じ料金がかかりますストレージ関連のコストは、各トランザクションに基づいて評価されます。同じリソースを複数回読み書きしても、料金は一度だけ請求されます。### 安定したGAS単位コスト各操作および取引自体は、ストレージおよび実行コストに対して固定の単位コストを必要とし、GASプランの安定性を維持するのに役立ちます。GAS単位の精度は約3桁で、送金取引のコストは約700 GAS単位です。## コミュニティ参加コミュニティメンバーは:1. GASプランの不合理な点を見つける2. コミュニティディスカッションに参加する3. 関連するガバナンス提案への投票## GASコスト調整GASプランはオンチェーン構成ストレージとして機能し、ガバナンス提案によって変更可能です。拡張性を考慮して設計されており、提案によるアップグレードが可能です。時間が経つにつれて、GASパラメータはユーザーのフィードバックに基づいて調整される可能性があります。複雑なGAS公式の変更にはノードソフトウェアの更新が必要であり、大規模に採用された後はガバナンス提案を通じて新しいバージョンの使用が承認されます。## 今後の取り組みMoveの最初の実用的なGASフレームワークとして、今後の作業方向には以下が含まれます:1. 実行コストを削減する2. 多次元GAS計算、ユーザーが実行とストレージのために個別の予算を指定できるようにします。3. 冗長な状態を緩和し、各プロジェクトのTTLの概念を探求し、TTLが期限切れの際に未アクセスの状態項目を削除する
MOVE言語による初のGASプラン:オンチェーン手数料計算方法の全面的分析
MOVE言語の最初のGAS設計:チェーン上のGAS手数料の計算方法の分析
MOVE言語の前のバージョンは無GASで動作するように設計されていたため、GASの計画には対応していませんでした。最近、あるブロックチェーンプロジェクトがそのMOVE言語チェーンのために導入したGAS計画は、MOVE言語初のGAS設計であり、「一大冒険」と呼ばれています。
このGASプランは、GASを策定するための原則、プロセス、計算方法、後期調整などの内容を明示しており、コミュニティからの提案を歓迎すると表明しています。
GAS計量は多くのブロックチェーンの基本概念であり、オンチェーン取引の実行とストレージに必要な計算およびストレージリソースの量を定義するために使用されます。GASプランは、オンチェーンでのすべての実行のコストを決定し、取引実行中のGAS費用を計算するために使用されます。
プロセス
効果的な実行を実現するために、このプロジェクトのオンチェーンプロセスには次のものが含まれます:
原則
定義された原則には次のものが含まれます:
GASを計算する
ユーザーが取引を提出する際に指定する必要があります:
取引の実行中に、以下の料金が請求されます。
最終取引手数料 = 消費されたGASの合計量×GAS単価
例えば、取引が670 GASユニットを消費し、ユーザーがGAS単価を100 Octa/ユニットに指定した場合、最終的な手数料は670 × 100 = 67000 Octa = 0.00067ネイティブトークンとなります。
取引実行中にGASが尽きた場合、送信者は最大GAS量に基づいて料金が請求され、取引所の変更は元に戻されます。
GASスケジュールを作成する
基本設定
GASプランには、取引のサイズや最大GAS単位など、単一の操作の詳細に関連しない構成要素が含まれています。
トランザクション サイズ
大多数取引規模はKBレベルですが、モジュールのリリースは数千バイトに達することがあります。最初の取引規模は32KBに設定されましたが、コミュニティからのフィードバックに基づいて64KBに調整され、アプリケーション開発を簡素化しました。
大規模な取引はネットワークの帯域幅コストを増加させ、パフォーマンスに影響を与える可能性があります。メモリプールはより大規模な取引を無視する傾向があるため、最大規模とアクセス可能性の間でバランスをとる必要があります。
最大### GASユニット
GASプランの最大GAS単位は、取引で実行可能な操作の最大量を定義します。設定が高すぎると、パフォーマンスに悪影響を及ぼす可能性があります。現在、最大フレームアップグレードを行っても、最大GAS単位(1,000,000)の90%には達していません。
###実行
ベンチマークフレームワークとValgrindを使用してMove VMを分析し、すべてのMove命令とネイティブ関数の相対コストを見積もります。システムの堅牢性と安全性を考慮し、最終的な実行される機械命令の数を導き出し、ストレージと最大GAS単位のトレードオフを考慮してGASプランの現在の値を決定します。
ストレージ
レジャーステート項目やデータにアクセスする際、ノードはストレージデバイスに読み書きを要求します。データアクセスの総数はストレージデバイスの帯域幅とIOPSに制限されています。ストレージGASプランはこれらのコストを考慮しています。
状態項目へのアクセスと保存は、ブロックチェーンの状態データ構造の検証に関連するコストを生じます。費用は状態項目の基数とサイズに関連しています:
GAS費の保存 = プロジェクト費 + (バイト費 × バイト数)
読む、作成する、書き込む
ステータス項目のアクセスは、読み取り、作成、または書き込みの三種類に分かれています:
ストレージ関連のコストは、各トランザクションに基づいて評価されます。同じリソースを複数回読み書きしても、料金は一度だけ請求されます。
安定したGAS単位コスト
各操作および取引自体は、ストレージおよび実行コストに対して固定の単位コストを必要とし、GASプランの安定性を維持するのに役立ちます。GAS単位の精度は約3桁で、送金取引のコストは約700 GAS単位です。
コミュニティ参加
コミュニティメンバーは:
GASコスト調整
GASプランはオンチェーン構成ストレージとして機能し、ガバナンス提案によって変更可能です。拡張性を考慮して設計されており、提案によるアップグレードが可能です。時間が経つにつれて、GASパラメータはユーザーのフィードバックに基づいて調整される可能性があります。
複雑なGAS公式の変更にはノードソフトウェアの更新が必要であり、大規模に採用された後はガバナンス提案を通じて新しいバージョンの使用が承認されます。
今後の取り組み
Moveの最初の実用的なGASフレームワークとして、今後の作業方向には以下が含まれます: