Sequencer / Server

Overview of the ZKsync Sequencer, detailing its components and functionalities for monitoring and maintaining L1 and L2 operations.

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. This system is critical for the operation and reliability of the ZKsync protocol.

For more detailed information about each module, visit the ZKsync Era GitHub repository.

RPC services

RPC Services serve as the primary user interface for interacting with the ZKsync server. They include:

  • HttpApi: This is the HTTP public Web3 API that allows users to make requests via traditional HTTP methods.
  • WsApi: The WebSocket Web3 API supports real-time interactions and includes PubSub capabilities, enhancing user experience by providing faster, push-based updates.

ETH operator

The ETH Operator module interfaces directly with L1, performing critical observations and transactions:

  • EthWatcher: Monitors L1 for specific events such as deposits and system upgrades, ensuring the Sequencer remains synchronized with Ethereum's mainnet.
  • EthTxAggregator: Responsible for batching multiple L2 transactions and preparing them for L1 submission. This includes crucial operations like committing blocks, proving blocks, and executing blocks.
  • EthTxManager: Handles the signing and dispatch of transactions to L1. This module is also tasked with monitoring the transactions to address issues such as transaction failures or low gas prices by resending transactions as necessary.

Sequencer

The Sequencer module processes incoming transactions on ZKsync, organizes them into blocks, and ensures they comply with the constraints of the proving system. It includes:

  • Tree and TreeBackup: These components maintain a local instance of RocksDB that stores the complete L2 storage tree, continuously updating to reflect the latest state root hash.
  • StateKeeper: Executes transactions and securely stores sealed blocks in the local RocksDB database, ensuring data integrity and state continuity.

Contract verification API

This service handles requests for smart contract verification. It validates contracts, ensures they meet specific standards, and provides the necessary code and ABIs for verified contracts, fostering transparency and trust within the ecosystem.


Made with ❤️ by the ZKsync Community