Note: These docs are a work in progress and are actively being updated.
The following section describes how we use HotShot consensus as a decentralized sequencer for rollups. The Espresso Sequencer involves interactions between several components:
The HotShot network: This may consist of thousands of heterogeneous nodes, but for simplicity we will usually think of the outside world as interacting with a single node, which in turn communicates behind the scenes with thousands of other replicas according to the consensus protocol. In reality, client applications may communicate with any one HotShot node or with multiple nodes for resiliency.
The L1 (layer 1) blockchain: This is the blockchain that rollups using our sequencer post state checkpoints to. The HotShot network must also checkpoint its state and history on the layer 1, which will serve as an interface to the rollups. The primary goal of the Espresso Sequencer is to integrate with rollups targeting Ethereum as their layer 1, although there is no fundamental reason to restrict attention to Ethereum. In theory, we could checkpoint HotShot consensus on any smart contract platform and integrate with rollups targeting that platform. In addition to Ethereum, this could include non-EVM layer 1s like Solana or even layer 2s like Arbitrum (in which case the rollups would actually be layer 3s).
The L2 (layer 2) rollups: These are the applications that use HotShot as a sequencer. They could be anything from app-specific chains to fully-featured smart contract systems in their own right (like EVM rollups). In any case, each layer 2 is structured as a rollup in the usual way: after receiving an ordered sequence of transactions, the transactions are executed off-chain in some deterministic VM, and periodically state updates are posted to the layer 1, along with a proof of validity (for ZK-rollups) or a potential fraud proof (for optimistic rollups).
The following section will show how all of these components interact with each other and then describe the internal workings of the components which are specific to the Espresso Sequencer. This includes certain software components within a HotShot node and a smart contract on the layer 1. The internal workings of tangential components, like specific L2s or the HotShot consensus protocol itself, are beyond the scope of this documentation.