Component | Arbitrum Nitro integration |
Stakeholders | Sneh Koul, Jeb Bearer, Verity Coltman |
should not change over time as the rollup runs.
Assumption: Espresso is fully functional or degraded, meaning it is fully functional except for periods lasting no more than 24 hours where one or more of the following apply:
The builder is unreachable or unable to drive confirmation of transactions
The query service is unreachable or returning bad data
HotShot consensus is not producing new blocks or confirming transactions submitted to it by the builder
Acceptance: Run the rollup as described above, checking for the same
properties, but occasionally restart the Espresso builder and subsets of Espresso
nodes.
Acceptance: Run a Nitro rollup for a fixed amount of time (say 1 hour) under heavy load with random transaction submissions. After 1 hour stop the rollup. Fetch all the messages that were posted to Espresso during that time and all the messages that were posted to L1. Check that these lists are the same.
Acceptance: Run a Nitro rollup until some batches have been posted both to
Espresso and the L1. Then force the L1 to reorg back to an earlier state in
which those batches have not been posted. Wait for some time and check that
the batches are eventually posted to the L1 again, in the same order as they
were originally (the order in which they were finalized on Espresso).
Acceptance: There is a version of the Nitro node which derives from Espresso.
Run a Nitro rollup and run this node. It should be possible to query
this node’s RPC for updated states every 2-4 seconds. Once a state is
finalized on L1, it should match the state that was earlier reported
by the Espresso-deriving node for the same block. Repeat this test
while manually sending some “invalid” confirmations to Espresso (e.g.
confirmations that look valid but are sent from outside the batcher) and to
L1 (e.g. confirmations that were not previously posted to Espresso).
Acceptance: Run a Nitro rollup. Run two separate instances of the batcher on
separate nodes. Let the rollup run for some time and check all the properties
outlined above. Stop one of the batchers, let the rollup run longer, and check all
the properties again. Restart that batcher, then stop the other batcher, and
check again.