Chapter 23
Nitro Caff Node Requirements
# Block Production: The node constructs a block for a given namespace
within 5 seconds of the message being confirmed on Espresso.
Assumption:
Espresso is fully functional or
degraded, meaning it remains fully functional
except for periods lasting no more than 24 hours. We also assume
everything sent to espresso will be finalized and that espresso will not fork
or reorg.
Acceptance: Run the Caff node and send transactions to
Espresso for the given namespace using the Espresso Nitro batcher.
Then, use the Caff node’s RPC client to confirm that the block is
produced within 5 seconds of the message being confirmed on Espresso.
# Geth RPC Methods: Downstream clients read blocks produced by
the node using Geth RPC methods.
Assumption: Espresso is fully functional
or
degraded, meaning it remains fully functional except for periods lasting no
more than 24 hours. We also assume everything sent to espresso will be
finalized and that espresso will not fork or reorg.
Acceptance: Run the
Caff node and send transactions to Espresso for the given namespace
using the Espresso Nitro batcher. The Caff node makes the blocks
available using its RPC client within 6 seconds of them being published on
Espresso. Also test that a user can send a transaction through the
RPC client and that the transaction gets included in the mempool.
# State Transition Function: The Caff node outputs the same state for
each block that is eventually finalized after the challenge period.
Assumption:
Espresso is fully functional or
degraded, meaning it remains fully functional
except for periods lasting no more than 24 hours. We also assume everything
sent to espresso will be finalized and that espresso will not fork or reorg.
Acceptance: Run the Caff node for several challenge periods under realistic
load conditions, and verify that it always outputs states matching the
corresponding states later finalized on the rollup contract. Write a test in which
L1 reorgs, verify that the finalized state of caff node is not affected by it.