Building on the Arbitrum Nitro stack with Avail DA
What is Nitro?
Nitro is designed by Arbitrum, a software stack to build optimistic rollups, powering Arbitrum One and Arbitrum Nova. These chains are Optimistic L2 protocols that inherit Ethereum-level security.
You can read more about Nitro in:
Arbitrum Orbit integration with Avail DA
Arbitrum Orbit chains can integrate with Avail DA using a number of different configurations. You can read more about them in our blog .
Let’s take a look at the transaction Lifecycle:
- 
Transaction Submission - Process: Users send transactions to the Sequencer.
- Role: The Sequencer temporarily holds the transactions before they are batched.
 
- 
Batch Processing - Component: Sequencer
- Function: Collects and orders transactions into batches for more efficient processing.
 
- Component: 
- 
Batch Submission on Avail - component: arbnode/batch-poster
- Process: Sequencer posts a batch of L2 transactions onto the underlying data availability provider.
 
- component: 
- 
BlobPointer Reference Creation - Outcome: Avail returns a unique transaction reference with Merkle proof of batch submission.
 
- 
BlobPointer Submission to Settlement layer ( Arbitrum One, Ethereum etc.) - Process: BlobPointer with Avail header byte(0x0a) is being sent over
to sequencerInboxrollup contract for on-chain DA verification over Avail bridge and batch addition to canonical chain.
- component: SequncerInbox.sol
 
- Process: BlobPointer with Avail header byte(0x0a) is being sent over
to 
- 
on-chain Data availability verification - Component: Avail bridge
- Function: Verify Merkle prooffor the batch submission withdataRootCommitmentfromVectorX.
 
- Component: 
- 
Replay batch execution over WASM binary STF - Component: Arbitrator, ArbState
- Process: Recover payload from Avail DA (RecoverPayloadFromAvailBatch), and re-executes the State Transition Function against input messages to determine the correct output block.
 
- Component: 
Last updated on