実行モデル
このページでは、Kaiaスマートコントラクトの実行モデル、データ構造、ライフサイクルについて説明します。
実行モデル
トランザクションは、Platform API Specificationに記述されているように、プラットフォームAPIによって生成することができる。 These transactions are sent to Consensus Nodes (CNs) to be stored in a block. CNは受信した各トランザクションが有効かどうかをチェックする。 有効なトランザクションはトランザクションプールに保存され、そうでない場合は破棄される。 CNは、トランザクションプール内の現在のブロック内の実行可能なトランザクションを選択し、1つずつ実行する。
トランザクションを実行するために、送信者はトランザクション手数料としていくらかのKAIAを支払わなければならない。 KAIAにおけるこの取引手数料は、ガスと乗数、すなわち_i._、単価に基づいて計算されます。 ガスは計算の基本単位である。 Kaiaノード上で実行される全ての操作は、予め定義された量のガスを消費する。 The exact amount of KLAY required for the transaction is calculated by the formula illustrated in Transaction Fees. 送信者が不十分なガスを伴うトランザクションを送信した場合、トランザクションは失敗する可能性がある。 差出人の口座の残 高が不足している場合も、取引に失敗することがある。
トランザクションが正常に実行されると、そのトランザクションは現在のブロックに含まれる。 CNは、ブロック・ガス・リミットまたはブロック・タイム・リミットに達するまでトランザクションを収集する。 その後、CNはトランザクションでブロックを作成する。 このステップでは、ブロック内のいくつかのフィールドを埋める必要がある。 例えば、トランザクション、レシート、ステートなどのハッシュ値を計算しなければならない。 すべての必須フィールドが入力されると、CNはブロックハッシュを生成する。
ブロック生成が完了すると、そのブロックは他のすべてのCNに伝搬される。 他のCNは伝搬されたブロックをすべて検証し、BFTコンセンサス・アルゴリズムを用いて検証結果のコンセンサスを得る。 過半数のCNによって検証プロセスが成功すると、そのブロックはブロックチェーンに保存される。 BFTコンセンサス・アルゴリズムは即時最終性を満たすため、ブロックは最終的であり、削除されることはない。 ブロックがファイナライズされると、そのブロック内のすべてのトランザクションの実行が不可逆的に保証され、要求があればその実行結果を送信者に返すことができる。