Signet Node Architecture
Last updated
Last updated
Why this matters
signet-node
is the Execution Extension (ExEx) that powers Signet, handling all block processing from the Host chain. It receives reorg-aware block notifications from Reth, extracts Signet blocks from logs, executes them, and writes the results to the database.
These nodes are responsible for:
Executing transactions
Maintaining state
Connecting to data availability providers
Acting as the RPC gateway to the Rollup's EVM
The ExEx architecture is built around the ExExContext
, which contains a stream of canonical block updates called ExExNotifications
. This stream emits either Commit
notifications for new blocks to apply or Reorg
notifications for replacing old blocks with new ones. Signet monitors this stream for transactions and events from the Signet contract on the Host chain.
When processing a Commit
or Reorg
notification, Signet parses relevant events from the Host chain and derives the Rollup state. Each notification is processed for five types of updates:
Enter
events, crediting Rollup accounts with tokens
EnterToken
events, for ERC20 token handling
BlockSubmitted
events, parsing and applying transactions from the DA source
Swap
& SwapFilled
events, implementing the intents processing system
Blob retrieval is a critical function of Signet Nodes. Blob sidecars are fetched from the Host node for block extraction, as these are not attached to the 4844 transaction visible in event logs.
To ensure reliability, Signet nodes fall back to querying the consensus layer client or a blob store service if the local host node doesn't have the required blob. This is important for cases such as node resyncs, because blobs are only kept for ~2 weeks, but historical block data could be much older.
Signet maintains a redundant blob store to ensure permanent blob availability.
Blob encoding and decoding rely on the Simple Coder provided by alloy-rs
. This encoder uses a 64 bit big endian length prefix followed by 31 bytes of payload data, with zero padding if necessary.
A Signet Node's database infrastructure leverages components from Reth, implementing the DatabaseProvider trait and using MDBX as its core database. This approach maintains uniformity with Reth and inherits its performance optimizations, with only minor modifications such as table name overrides.
The Signet Node EVM is backed by this DatabaseProvider implementation, with no major modifications to the EVM itself. Minor behavior changes are documented in EVM Behavior.
Signet Node uses the ajj
crate for RPC server handling. ajj
is a general-purpose, batteries-included JSON-RPC 2.0 router. It was designed as a drop-in improvement for the existing Reth RPC server implementation.