Skip to main content

Glossary

TermDefinition
RollupDriverThe pluggable interface that allows a rollup type (optimistic, ZK, based, native, consensus) to run as an embedded service alongside the Erigon L1 node. Generalizes the pattern proven by Caplin and Polygon/Bor.
StorageSinkInterface at the SharedDomains.Flush() boundary that decouples block execution from persistent storage. Implementations: LocalSink (MDBX), RemoteSink (gRPC), SnapshotSink, TeedSink (multi-target).
TypeHandlerInterface that encapsulates the full pipeline behavior of a transaction type — parsing, validation, pool policy, execution, and serialization. Part of the Modular TX Pipeline registry.
TracerFactoryMap-side interface in the Map-Reduce Framework. Each worker calls the factory to create its own tracer instance. Factories register via init() + components.cfg.
ConsumerReduce-side interface in the Map-Reduce Framework. Receives TxResult in txNum order and builds an index, streams output, or triggers an action.
BlockBatchThe serializable unit of work crossing the executor → storage boundary in Erigon Archive. Contains block metadata (MemoryDiff), domain state diffs, and inverted index updates for one or more blocks.
QMTreeAppend-only binary Merkle tree indexed by txNum. Each leaf commits to a transaction's pre-state, state changes, EVM execution trace, and the previous leaf — forming a chain of proof-of-execution commitments.
txNumErigon's global transaction counter. Monotonically increasing across all blocks. Used as the time axis for temporal domain storage and as the QMTree leaf index.
twigA 2048-leaf subtree in QMTree. The unit of storage and proof aggregation. Complete twigs are frozen to snapshot files.
L1DataSourceInterface abstracting L1 block data access for L2 derivation. DirectL1DataSource reads from the L1 in-process database in combined mode (zero serialization); RPCL1DataSource reads from an external L1 via JSON-RPC in L2-only mode.
Direct adapterErigon's pattern for in-process service communication. A "direct client" calls server methods directly without gRPC serialization. Used by Caplin, TxPool, Sentry — and extended to DirectL1DataSource in combined mode. See node/direct/.
ComponentDomainHierarchical namespace and worker pool manager in the component framework (erigon-lib/app/). Manages component activation order, dependency resolution, and lifecycle coordination.
Component[P]Generic component type carrying a typed provider P. The provider holds live service state. Other components declare dependencies on provider types; the framework injects them.
XLPCross-chain Liquidity Provider. In the EIL protocol, XLPs stake funds and participate in fee auctions to fulfill cross-chain operations on behalf of users. Registered on the L1CrossChainStakeManager contract.
EILEthereum Interop Layer. The cross-L2 interoperability protocol underpinning the Interop Bridge. Specifies voucher mechanics, XLP staking, reverse Dutch auctions, and the dispute/slashing model.
ProverBackendPluggable interface for external proof systems in the Proof Integration component. Implementations: Zilkworm, SGX (Raiko-compatible), RISC0, SP1, ZisK.
VerifierBackendPluggable interface for proof verification, integrated with the Consensus component (L1 Beam Chain) or RollupDriver (L2 settlement).
frame transactionEIP-8141 transaction type (0x06) containing an explicit ordered sequence of VERIFY, SENDER, and DEFAULT execution frames. Protocol-native account abstraction.
APPROVE opcodeNew EVM opcode introduced by EIP-8141. Only valid inside VERIFY frames. Signals that the custom signature validation logic has approved the transaction.
debug_getWitnessExisting Erigon RPC method that produces an execution witness (state accessed during block execution). The simplest first input source for the Proof Integration's Prover component.
components.cfgBuild-time configuration file listing which components to compile into an Erigon binary. Read by a code generator that produces blank imports, triggering init() registration for each component.
MemoryDiffSerializable changeset produced by MemoryMutation.Diff(). Represents the block metadata changes (headers, bodies, canonical hashes, TD) accumulated in the blockOverlay during execution.
SharedDomainsErigon's in-memory overlay for domain state during block execution. Accumulates DomainPut/DomainDel operations and flushes them to persistent storage (or a StorageSink) at block boundaries.