Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions docs/base-chain/specs/protocol/consensus/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,19 @@ description: "Specification of the Base rollup node, describing its components a
[g-block]: ../../reference/glossary#block
[g-exec-engine]: ../../reference/glossary#execution-engine
[g-reorg]: ../../reference/glossary#re-organization
[g-rollup-driver]: ../../reference/glossary#rollup-driver
[g-receipts]: ../../reference/glossary#receipt

## Overview

The [rollup node][g-rollup-node] is the component responsible for [deriving the L2 chain][g-derivation] from L1 blocks
(and their associated [receipts][g-receipts]).

The part of the rollup node that derives the L2 chain is called the [rollup driver][g-rollup-driver]. This document is
currently only concerned with the specification of the rollup driver.
The part of the rollup node that derives the L2 chain is called the derivation process. This document specifies the
derivation process.

## Driver

The task of the [driver][g-rollup-driver] in the [rollup node][g-rollup-node]
The task of the derivation process in the [rollup node][g-rollup-node]
is to manage the [derivation][g-derivation] process:

- Keep track of L1 head block
Expand Down
2 changes: 1 addition & 1 deletion docs/base-chain/specs/protocol/consensus/rpc.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ The types defined here are extended from the [engine API specs][engine-structure

#### SyncStatus

Represents a snapshot of the rollup driver.
Represents a snapshot of the derivation process.

- `current_l1`: `Object` - instance of [`L1BlockRef`](#l1blockref).
- `current_l1_finalized`: `Object` - instance of [`L1BlockRef`](#l1blockref).
Expand Down
4 changes: 1 addition & 3 deletions docs/base-chain/specs/protocol/execution/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ The `transactions` field is optional:
- If empty or missing: no changes to engine behavior. The sequencers will (if enabled) build a block
by consuming transactions from the transaction pool.
- If present and non-empty: the payload MUST be produced starting with this exact list of transactions.
The [rollup driver][rollup-driver] determines the transaction list based on deterministic L1 inputs.
The derivation process determines the transaction list based on deterministic L1 inputs.

The `noTxPool` is optional as well, and extends the `transactions` meaning:

Expand All @@ -230,8 +230,6 @@ The `gasLimit` is optional w.r.t. compatibility with L1, but required when used
This field overrides the gas limit used during block-building.
If not specified as rollup, a `STATUS_INVALID` is returned.

[rollup-driver]: ../consensus/index

### `engine_forkchoiceUpdatedV3`

See [`engine_forkchoiceUpdatedV2`](#engine_forkchoiceupdatedv2) for a description of the forkchoice updated method.
Expand Down
16 changes: 3 additions & 13 deletions docs/base-chain/specs/reference/glossary.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ The L1 origin of an L2 block is the L1 block corresponding to its [sequencing ep

[deposits]: glossary#deposits

In general, a deposit is an L2 transaction derived from an L1 block (by the [rollup driver]).
In general, a deposit is an L2 transaction derived from an L1 block (by the derivation process).

While transaction deposits are notably (but not only) used to "deposit" (bridge) ETH and tokens to L2, the word
_deposit_ should be understood as "a transaction _deposited_ to L2 from L1".
Expand All @@ -197,7 +197,7 @@ Notably, a _deposit_ can refer to:

- A [deposited transaction][deposited] (on L2) that is part of a deposit block.
- A [depositing call][depositing-call] that causes a [deposited transaction][deposited] to be derived.
- The event/log data generated by the [depositing call][depositing-call], which is what the [rollup driver] reads to
- The event/log data generated by the [depositing call][depositing-call], which is what the derivation process reads to
derive the [deposited transaction][deposited].

We sometimes also talk about _user deposit_ which is a similar term that explicitly excludes [L1 attributes deposited
Expand Down Expand Up @@ -248,7 +248,7 @@ specification.
[depositing-call]: glossary#depositing-call

A _depositing call_ is an L1 call to the [deposit contract][deposit-contract], which will be derived to a
[user-deposited transaction][user-deposited] by the [rollup driver].
[user-deposited transaction][user-deposited] by the derivation process.

This call specifies all the data (destination, value, calldata, ...) for the deposited transaction.

Expand Down Expand Up @@ -750,16 +750,6 @@ A rollup node running in validator mode is sometimes called _a replica_.

See the [rollup node specification][rollup-node-spec] for more information.

### Rollup Driver

[rollup driver]: glossary#rollup-driver

The rollup driver is the [rollup node][rollup-node] component responsible for [deriving the L2 chain][derivation]
from the L1 chain (L1 [blocks][block] and their associated [receipts][receipt]).

> **TODO** delete this entry, alongside its reference — can be replaced by "derivation process" or "derivation logic"
> where needed

### L1 Attributes Predeployed Contract

[l1-attr-predeploy]: glossary#l1-attributes-predeployed-contract
Expand Down