[Phase 1] ABCIサーバーのモック構築とCometBFT通信の開通
Objective (目的)
CometBFTノードとLeviathan(Rust)をTCP/Socketで接続し、ABCI(Application Blockchain Interface)プロトコル経由でブロック生成のシグナルを受信できる「空箱の土管」を構築する。
Tasks (タスク)
Acceptance Criteria (受け入れ条件)
- ローカルのCometBFTがブロック生成を開始し、Rust側のコンソールに
FinalizeBlock リクエストのログが定期的に流れること。
[Phase 2] Leviathan実行エンジンΠ関数のマウント
Objective (目的)
ABCIで受信したトランザクションのバイト列をパースし、LeviathanのEVMコアに流し込んでトランザクションを実行($\Pi$)させる。DBへの永続化は行わず、オンメモリでの検証に留める。
Tasks (タスク)
Acceptance Criteria (受け入れ条件)
- CometBFT経由で送信したトランザクション(Ethereum互換フォーマット)が、Leviathan上でRevertされることなく成功(Success)のステータスを返すこと。
[Phase 3] 既存ライブラリを利用したステート管理Φ関数とAppHashの返却
Objective (目的)
Leviathanのオンメモリ実行結果(ジャーナル)を、MemoryDB や EthTrie などの既存ライブラリを活用してMerkle Patricia Trie (MPT) にコミットし、最終的なStateRoot(Φ)をCometBFTに返却して状態を確証する。
Tasks (タスク)
Acceptance Criteria (受け入れ条件)
- トランザクション処理後に計算された
AppHash がCometBFTのブロックヘッダに正しく記録されること。
- ノードを再起動しても、MPTの最新状態から処理が再開できること。
Phase 4] Behemoth Protocol(キルスイッチ)の統合
Objective (目的)
行政インフラのフェイルセーフとして機能する特権コントラクト用のネットワーク停止機構(Behemoth Protocol)を、ABCI層と連携して実装する。
Tasks (タスク)
Acceptance Criteria (受け入れ条件)
- Behemothコントラクトから
HALT_NETWORK を発火させるトランザクションを送信した直後、CometBFTのブロック生成(合意形成プロセス)が完全に停止すること。
[Phase 1] ABCIサーバーのモック構築とCometBFT通信の開通
Objective (目的)
CometBFTノードとLeviathan(Rust)をTCP/Socketで接続し、ABCI(Application Blockchain Interface)プロトコル経由でブロック生成のシグナルを受信できる「空箱の土管」を構築する。
Tasks (タスク)
tendermint-abci(またはrs-abci) クレートを依存関係に追加する。info,check_tx,finalize_block,commit)を実装したモック構造体を作成する。tracing/log)にダンプする処理を記述する。Acceptance Criteria (受け入れ条件)
FinalizeBlockリクエストのログが定期的に流れること。[Phase 2] Leviathan実行エンジンΠ関数のマウント
Objective (目的)
ABCIで受信したトランザクションのバイト列をパースし、LeviathanのEVMコアに流し込んでトランザクションを実行($\Pi$)させる。DBへの永続化は行わず、オンメモリでの検証に留める。
Tasks (タスク)
finalize_blockで受信した生のトランザクションデータ(バイト列)を、Ethereumのトランザクションフォーマットにデコードする処理を実装。EVM::run)にルーティングする。Cacheに書き込む。Acceptance Criteria (受け入れ条件)
[Phase 3] 既存ライブラリを利用したステート管理Φ関数とAppHashの返却
Objective (目的)
Leviathanのオンメモリ実行結果(ジャーナル)を、
MemoryDBやEthTrieなどの既存ライブラリを活用してMerkle Patricia Trie (MPT) にコミットし、最終的なStateRoot(Φ)をCometBFTに返却して状態を確証する。Tasks (タスク)
finalize_block完了後、LeviathanのCacheに溜まった変更差分を抽出する。EthTrie実装(バックエンドはMemoryDB等を使用)に適用し、MPTを更新する。commitメソッドの戻り値として、算出したStateRootをAppHashフィールドにセットしてCometBFTへ返す。Acceptance Criteria (受け入れ条件)
AppHashがCometBFTのブロックヘッダに正しく記録されること。Phase 4] Behemoth Protocol(キルスイッチ)の統合
Objective (目的)
行政インフラのフェイルセーフとして機能する特権コントラクト用のネットワーク停止機構(Behemoth Protocol)を、ABCI層と連携して実装する。
Tasks (タスク)
HALT_NETWORK(例:0xBE)を追加し、ガス代やスタック操作を定義する。EVM::runのメインループ内でHALT_NETWORKが発火した際、即座に実行を中断し、特殊なエラー型(例:ExecutionError::HaltNetwork)を親へ伝播させる。finalize_block内でこの特殊エラーを捕捉した場合、Rustのpanic!を発生させるか、ABCIのレスポンスコードとして致命的エラーをCometBFTに返す。Acceptance Criteria (受け入れ条件)
HALT_NETWORKを発火させるトランザクションを送信した直後、CometBFTのブロック生成(合意形成プロセス)が完全に停止すること。