From b2d7138105ac1dba4344278d4a18335ebc894c44 Mon Sep 17 00:00:00 2001 From: Joshua Gutow Date: Wed, 12 Oct 2022 15:21:47 -0700 Subject: [PATCH 1/3] specs: Remove outdate portions This cleans up specs. Specifically: - We no longer allow right padding on frames. - Specify that all frames must be parseable in a batcher transaction --- specs/derivation.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/specs/derivation.md b/specs/derivation.md index fc5bff8cadc4f..ffab485587e4c 100644 --- a/specs/derivation.md +++ b/specs/derivation.md @@ -299,9 +299,8 @@ Batcher transactions are encoded as `version_byte ++ rollup_payload` (where `++` | 0 | `frame ...` (one or more frames, concatenated) | Unknown versions make the batcher transaction invalid (it must be ignored by the rollup node). - -The `rollup_payload` may be right-padded with 0s, which will be ignored. It's allowed for them to be -interpreted as frames for channel 0, which must always be ignored. +All frames in a batcher transaction must be parseable. If any one frame fails to parse, the all frames in the +transaction are rejected. > **TODO** specify batcher authentication (i.e. where do we store / make available the public keys of authorize batcher > signers) From 0be99fb3907dbec693202033b9524722928e2762 Mon Sep 17 00:00:00 2001 From: Joshua Gutow Date: Tue, 18 Oct 2022 12:02:06 -0700 Subject: [PATCH 2/3] Update FCU specs --- specs/exec-engine.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/specs/exec-engine.md b/specs/exec-engine.md index 3e141c2a7a540..504751806cc51 100644 --- a/specs/exec-engine.md +++ b/specs/exec-engine.md @@ -101,6 +101,11 @@ The `noTxPool` is optional as well, and extends the `transactions` meaning: into the payload, after any of the `transactions`. This is the default behavior a L1 node implements. - If `true`, the execution engine must not change anything about the given list of `transactions`. +If the `transactions` field is present, the engine must execute the transactions in order and return `STATUS_INVALID` +if there is an error processing the transactions. It must return `STATUS_VALID` if all of the transactions could +be executed without error. **Note**: The state transition rules have been modified such that deposits will never fail +so if `engine_forkchoiceUpdatedV1` returns `STATUS_INVALID` it is because a batched transaction is invalid. + [rollup-driver]: rollup-node.md ### `engine_newPayloadV1` From 73c4f29241ce9ebe23ceadc7aa091f3acfa54bf4 Mon Sep 17 00:00:00 2001 From: Joshua Gutow Date: Tue, 18 Oct 2022 12:32:12 -0700 Subject: [PATCH 3/3] Fix lint --- specs/derivation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/derivation.md b/specs/derivation.md index ffab485587e4c..6ad17398aad89 100644 --- a/specs/derivation.md +++ b/specs/derivation.md @@ -300,7 +300,7 @@ Batcher transactions are encoded as `version_byte ++ rollup_payload` (where `++` Unknown versions make the batcher transaction invalid (it must be ignored by the rollup node). All frames in a batcher transaction must be parseable. If any one frame fails to parse, the all frames in the -transaction are rejected. +transaction are rejected. > **TODO** specify batcher authentication (i.e. where do we store / make available the public keys of authorize batcher > signers)