# 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. 操作コストはネットワークの利用可能なリソースに直接関連しており、技術の改善によりGASコストはそれに応じて低下するはずです。2. GASはオンチェーンガバナンスによって設定され、シームレスに構成可能です3. GASはDoS攻撃を防ぐことができ、ネットワークの状況に応じて迅速に調整できます。4. GAS価格は、加速成長とブロックチェーンの普及を維持するビジョンを反映しています5. デザインにおいて安全性、モジュール化などの要素を優先することを奨励する### GASの計算ユーザーが取引を提出する際には、2つの数量を指定する必要があります。GASの最大数:GAS単位で測定され、ユーザーが支払う意思のあるGASユニットの最大数です。**GAS単価:** 1オクタル=0.00000001 APTで、各単位GASのオクタルで計算します。取引実行中に次の手数料が発生します:1. 固定コスト: 固定ベースに加えて大規模な取引の追加費用2. 実行コスト: MOVE命令を実行するために3. 読み取りコスト: 永続ストレージからデータを読み取るための4. 書き込みコスト: データを永続ストレージに書き込むために使用されます最終取引手数料 = 消費されたGASの合計量×GAS単価。 たとえば、トランザクションが 670 GAS ユニットを消費し、ユーザー指定の単価が 100 Octa/Unit の場合、最終的な手数料は 670 × 100 = 67,000 Octa = 0.00067 APT になります。取引がGASを使い果たした場合、送信者は最大GAS量に基づいて料金が請求され、取引所の変更は元に戻されます。### GASスケジュールが確立されます**1. 基本設定**GASプランには、取引のサイズや最大GAS単位など、個々の操作に関係ない要素が含まれています。**2. 取引サイズ**大多数取引規模は千バイト級で、Moveモジュールの発表は数千バイトに達します。最初の取引規模は32KBに設定され、その後コミュニティからのフィードバックに基づいて64KBに調整され、アプリケーション開発の簡素化が図られました。大規模な取引はネットワークの帯域幅コストを増加させ、パフォーマンスに影響を与える可能性があります。メモリプールは過度に大きな取引を無視する可能性があるため、最大規模とアクセシビリティの間でバランスを取る必要があります。**3. 最大GASユニット**GAS計画における最大GAS単位は、単一の取引で実行可能な最大操作数を定義しています。設定が高すぎると、ブロックチェーンのパフォーマンスに悪影響を及ぼす可能性があります。現在は1,000,000に設定されており、最大フレームアップグレードを行っても90%を超えることはありません。**4. 実行する**ベンチマークフレームワークを構築し、Valgrindを使用してMove VMを分析することにより、すべてのMove命令とネイティブ関数の相対的なコストを推定します。システムの堅牢性とセキュリティを強化するためのコーディングの例を考慮し、最終的に実行される機械命令の数を導き出し、ストレージと最大GAS単位のトレードオフを考慮して、GASプランにおける現在の値を特定します。**5. ストレージ**永続ストレージ内のレジャーステート項目またはデータにアクセスする際、ノードはストレージデバイスに読み書き要求を発出します。データアクセスの総数は、ストレージデバイスの帯域幅とIOPS容量に依存します。チームはこれらのコストを考慮してストレージGASプランを設計しています。状態項目にアクセスして保存することは、ブロックチェーン全体の状態を検証するためのデータ構造に関連するコストを生じさせます。このコストは、異なる状態項目の基数に関係しています。また、各項目のサイズに比例したコストも存在します。**GAS費の保管 = プロジェクト費 + (バイト費 × バイト数)**### 読む、作成する、書く状態項へのアクセスは、読み取り、作成、書き込みの3種類に分かれます:- 読み取り操作は最も一般的で、一時的なリソースの不足にのみ制限されます。- 状態ストレージに新しい項目を追加する操作は、コストが最も高い。- 書き込み操作は既存の項目を更新し、追加の認証データ構造のオーバーヘッドを生じません。上記の考慮に基づいて、6つのGASパラメータが定義されました。- per_item_read:IOPSに基づく補正- per_byte_read: 実際の帯域幅に基づいてキャリブレーション- per_item_create: 目標総プロジェクトに基づいて調整する- per_byte_create:合計ターゲットサイズに基づいてキャリブレーション- per_item_write:per_item_readと同じ- per_byte_write:per_byte_createと同じ### ステーブルGAS単位コスト各操作と取引自体は、ストレージと実行コストに対して固定単位コストが必要です。固定GAS単位コストはGASプランを不変に保ち、トークン市場価値から切り離すのに役立ちます。チームはおおよそ3桁の精度でGAS単位を表示し、送金取引コストは約700のGAS単位です。### コミュニティ参加コミュニティメンバーは:1. GAS計画の不合理な点を見つける2. 懸念を提起し、議論に参加する3. 関連するガバナンス提案に投票する### GASコスト調整GASプランはオンチェーンの構成ストレージとして機能し、ガバナンス提案を通じて変更可能で、新しい命令やネイティブ機能をシームレスに追加できます。時間の経過とともに、GASパラメータはユーザーのフィードバックに基づいて調整される可能性があります。複雑なGAS公式の変更にはノードソフトウェアの更新が必要で、新しいGAS特徴フラグによって区別されます。ノードオペレーターは新しいソフトウェアを採用した後、新バージョンを使用するためにガバナンス提案を発表して承認する必要があります。### 働き方の未来Moveの最初の実行可能なGASフレームワークとして、今後の作業方向には以下が含まれます:1. 実行コストを削減する2. 多次元GAS計算を実現し、ユーザーが実行とストレージに別々の予算を指定できるようにします。3. 冗長な状態を軽減し、各プロジェクトのTTLコンセプトを探求し、TTLが期限切れの際に未アクセスの状態プロジェクトを削除する
MOVE言語初のGASソリューションが登場し、オンチェーンリソースの課金新モデルについて議論する
MOVE言語初のGAS設計:オンチェーンGASコスト計算方法についての考察
MOVE言語の前のバージョンはGASのない環境で動作することを意図していたため、GASプランの準備はされていませんでした。最近、あるパブリックチェーンのために構築されたGASプランは「冒険」と呼ばれ、これはMOVE言語の初のGAS設計です。
このGASプランは、GASを策定するための原則、プロセス、計算方法、および後期調整メカニズムを明示しています。GAS計量は多くのブロックチェーンの基本概念であり、オンチェーン取引の実行とストレージに必要な計算およびストレージリソースの量を定義する抽象的な計算です。GASプランは、オンチェーンでのすべての実行の消費コストを特定し、取引実行中のGAS消費を計算するために使用されます。
プロセス
効果的な実行を実現するために、このパブリックチェーンは以下のプロセスを採用しています:
###原則
定義された原則には、
GASの計算
ユーザーが取引を提出する際には、2つの数量を指定する必要があります。
GASの最大数:GAS単位で測定され、ユーザーが支払う意思のあるGASユニットの最大数です。
GAS単価: 1オクタル=0.00000001 APTで、各単位GASのオクタルで計算します。
取引実行中に次の手数料が発生します:
最終取引手数料 = 消費されたGASの合計量×GAS単価。 たとえば、トランザクションが 670 GAS ユニットを消費し、ユーザー指定の単価が 100 Octa/Unit の場合、最終的な手数料は 670 × 100 = 67,000 Octa = 0.00067 APT になります。
取引がGASを使い果たした場合、送信者は最大GAS量に基づいて料金が請求され、取引所の変更は元に戻されます。
GASスケジュールが確立されます
1. 基本設定
GASプランには、取引のサイズや最大GAS単位など、個々の操作に関係ない要素が含まれています。
2. 取引サイズ
大多数取引規模は千バイト級で、Moveモジュールの発表は数千バイトに達します。最初の取引規模は32KBに設定され、その後コミュニティからのフィードバックに基づいて64KBに調整され、アプリケーション開発の簡素化が図られました。
大規模な取引はネットワークの帯域幅コストを増加させ、パフォーマンスに影響を与える可能性があります。メモリプールは過度に大きな取引を無視する可能性があるため、最大規模とアクセシビリティの間でバランスを取る必要があります。
3. 最大GASユニット
GAS計画における最大GAS単位は、単一の取引で実行可能な最大操作数を定義しています。設定が高すぎると、ブロックチェーンのパフォーマンスに悪影響を及ぼす可能性があります。現在は1,000,000に設定されており、最大フレームアップグレードを行っても90%を超えることはありません。
4. 実行する
ベンチマークフレームワークを構築し、Valgrindを使用してMove VMを分析することにより、すべてのMove命令とネイティブ関数の相対的なコストを推定します。システムの堅牢性とセキュリティを強化するためのコーディングの例を考慮し、最終的に実行される機械命令の数を導き出し、ストレージと最大GAS単位のトレードオフを考慮して、GASプランにおける現在の値を特定します。
5. ストレージ
永続ストレージ内のレジャーステート項目またはデータにアクセスする際、ノードはストレージデバイスに読み書き要求を発出します。データアクセスの総数は、ストレージデバイスの帯域幅とIOPS容量に依存します。チームはこれらのコストを考慮してストレージGASプランを設計しています。
状態項目にアクセスして保存することは、ブロックチェーン全体の状態を検証するためのデータ構造に関連するコストを生じさせます。このコストは、異なる状態項目の基数に関係しています。また、各項目のサイズに比例したコストも存在します。
GAS費の保管 = プロジェクト費 + (バイト費 × バイト数)
読む、作成する、書く
状態項へのアクセスは、読み取り、作成、書き込みの3種類に分かれます:
上記の考慮に基づいて、6つのGASパラメータが定義されました。
ステーブルGAS単位コスト
各操作と取引自体は、ストレージと実行コストに対して固定単位コストが必要です。固定GAS単位コストはGASプランを不変に保ち、トークン市場価値から切り離すのに役立ちます。チームはおおよそ3桁の精度でGAS単位を表示し、送金取引コストは約700のGAS単位です。
コミュニティ参加
コミュニティメンバーは:
GASコスト調整
GASプランはオンチェーンの構成ストレージとして機能し、ガバナンス提案を通じて変更可能で、新しい命令やネイティブ機能をシームレスに追加できます。時間の経過とともに、GASパラメータはユーザーのフィードバックに基づいて調整される可能性があります。
複雑なGAS公式の変更にはノードソフトウェアの更新が必要で、新しいGAS特徴フラグによって区別されます。ノードオペレーターは新しいソフトウェアを採用した後、新バージョンを使用するためにガバナンス提案を発表して承認する必要があります。
働き方の未来
Moveの最初の実行可能なGASフレームワークとして、今後の作業方向には以下が含まれます: