運送コストと準備金残高
モチベーション
実行の延期は、実行とコンセンサスを並行して行うことができるため、非常に強力であり、実行にかかる時間の予算を大幅に拡大します。
明らかな反対意見は次のとおりです。コンセンサスノードには最新の状態のビューがないのに、ガスをすべて使い果たしたアカウントからのトランザクションを誤って含めることを何が防ぐのでしょうか?これにより、サービス拒否ベクトルが作成されます。
これを防ぐために、Monadはネットワーク上で実行されるトランザクションのコスト (輸送コスト) を導入し、コンセンサス時に更新される各アカウントの準備金残高を維持し、準備金残高に対して輸送コストを請求します。
送料
Monadでは、ネットワーク上でトランザクションをブロック単位で伝送するのに料金がかかります (伝送コスト)。実行費用とは別にかかる費用です。
送料はスパム防止のため必要です。コストは最小限ですが、ネットワークリソースを利用するコストが反映されます。
トランザクションがコンセンサスに含まれている (そして送料が請求されている) ものの、指定されたガス制限に対して実行バジェットが不十分である可能性があります。その場合、実行時にトランザクションは失敗しますが、失敗した時点までガスがチャージされます。これはイーサリアムと何ら変わらないことに注意してください。アカウント内のイーサが不十分な状態でトランザクションを送信すると、イーサが使い果たされて失敗します。DOSベクトルの実行を防ぐには、ガスを障害点までチャージする必要があります。
リザーブ残高
各アドレスについて、ノードは次の2つのバランスを維持します。
輸送費の支払いに使用されるリザーブバランス
実行残高、トランザクション実行の支払いに使用されます
トランザクションがブロック(コンセンサス)に含まれる場合、送料はリザーブ残高に請求されます。実行時に実行残高から差し引かれ(ダブルチャージ)、D
ブロックの遅延期間(10秒)経過後に積立残高に返金されます。
リザーブは事実上、「進行中の」注文の予算です。これは、支払いが行われたトランザクションのみがブロックに含まれるようにするために存在します。リザーブ残高はリアルタイムで(つまり、コンセンサスが発生すると)減少すると考えることができます。ノードの完全な状態の表示には遅れがありますが、準備金残高は常に最新の支出を反映しています。
目標積立残高
目標リザーブ残高はアカウントごとのパラメーターです。デフォルトは運送費の大きな倍数(200倍)になることが予想されているため、ユーザーは問題なく大量の機内注文を送信できます。
同じEOAから大量のインフライト注文を送信すると予想されるユーザーは、組み込まれたスマート コントラクトを操作することで目標の準備金残高を変更できます。準備金残高の変更は実行として扱われます。つまり、遅延期間が経過した後にのみ準備金残高に反映されます。
Last updated