kona-node is the RollupNode service,
which encapsulates the core wiring for the node. A RollupNode is
constructed through the RollupNodeBuilder, and its
start method handles connecting all the different components
of the node, running each in a spawned task. As such, each node
component is considered an actor.
The RollupNode abstracts individual actors through the
NodeActor trait, a minimal interface with a single step
method that the service drives in a loop until the actor reports a
fatal error or the node shuts down.
Kona provides implementations for all NodeActors required to run a
RollupNode. Actors are defined in the actors module of the
kona-node-service crate, and the RollupNode wiring lives in the
service module.
Actors
The architecture ofkona-node is a web of actors that share
state through message passing, using channels, rather than using
shared memory.
The RollupNode builds and starts the following actors.
- Derivation Actor: Orchestrates the derivation pipeline, deriving L2 payload attributes from L1 blocks. Payload attributes prepared this way are forwarded to the Engine Actor to be executed. The derivation docs dive deeper into how the derivation actor works.
- Engine Actor: Brokers the connection to the execution layer client (or “execution engine”). The engine actor turns messages from other actors into engine “tasks” that are executed in priority order against the EL client. A companion engine RPC actor serves read-only engine queries. The engine docs expand on this.
- L1 Watcher Actor: Watches the L1 chain for new head and finalized blocks and relays them to the derivation actor.
- Network Actor: Manages the P2P Network for the rollup
node. The P2P stack consists of
discv5peer discovery and block gossip through libp2p. Visit the network docs for more detail. - Sequencer Actor: The sequencer actor extends the
kona-nodeto be run as a sequencer. Sequencing is periphery to the basic rollup node operation. See the sequencer docs. - RPC Actor: The RPC actor spins up and serves an RPC server that exposes the rpc methods required by the OP Stack Specs.