Server
Overview of the sequencer node implementation.
The ZKsync Sequencer is a complex system composed of several services and modules that work together to monitor Ethereum Layer 1 (L1), maintain Layer 2 (L2) state, and manage the order of incoming transactions.
The code for the server can be found in the ZKsync Era GitHub repository.
More technical documentation for the server can be found in the ZKsync Core book.
Components
The server implementation consists of multiple modules, which can run either as a monolithic application or as a set of microservices.
Main server components are:
- State keeper: The sequencer.
- API: Implementation of the Web3 JSON-RPC API.
- Metadata calculator: Implementation of the ZKsync Merkle tree with extensions required for ZKP generation.
- ETH sender: Component responsible for submitting commit/prove/execute operations to L1.
- ETH watcher: Component responsible for listening for updated on the L1 contract.
- Proof data handler: API for interacting with the prover subsystem.
For a more detailed overview, please refer to the ZKsync Era GitHub repository.