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