# intmax block 仕様 ### transaction tx_hash calldata public_key nonce ### accepted tx position: block の何番めか ### block parent_block_hash transactions block_hash block_number world_state_root ### status ``` +-> Failed +-> Rejected +-> Rejected | | | -+-----------+-> Pending ---> Executing -+-> Accepted -+-> Confirmed | | +-> Queued -+ ``` ```rust= pub enum TransactionStatus { /// operator が tx を受け取ったが, 実行に失敗したもの Rejected, /// operator が tx を受け取ったが nonce が大きすぎるもの Queued, /// operator が tx を受け取ってから rollup が始まるまで Pending, /// rollup が始まってから rollup block が公開される(pre-consensus)まで Executing, /// rollup block が公開されてから Ethereum 上で検証されるまで Accepted, /// Ethereum 上で検証されたもの Confirmed, } ``` Failed は operator が不適切な tx を拒否したとき. ## /diff/update/ 以後の処理 tx を受け取って, 不適切でなければ Pending として保管する. rollup block を作るときは<s> status を Executing に変更しつつ</s>取得する. rollup block を Layer 1 に書き込めたら, そこに含まれていた tx を Accepted に変更する. Layer 1 での検証が確認できたら Confirmed に変更する. <s>Executed まで到達したが, ZKP を作成する途中でサーバーがダウンした場合, 再起動後にそれらを Pending に戻してやり直す.</s> Accepted まで到達したが, 実はその rollup tx が正しくなかった場合, いったんそれらを Pending に戻してやり直す. ###### tags: ``