Skip to main content
The entry-point for the 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 of kona-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 discv5 peer discovery and block gossip through libp2p. Visit the network docs for more detail.
  • Sequencer Actor: The sequencer actor extends the kona-node to 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.