Skip to content

Commit

Permalink
conductor updates 2
Browse files Browse the repository at this point in the history
  • Loading branch information
sambukowski committed May 29, 2024
1 parent 4de72f1 commit 73cef73
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
Binary file removed docs/overview/assets/astria-conductor.png
Binary file not shown.
32 changes: 24 additions & 8 deletions docs/overview/components/conductor.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
# The Astria Conductor

The Conductor can be thought of as the consensus implementation of a rollup full
node, similar to op-node within the OP Stack. The conductor is run as one half
of a rollup full node, where the other half is the execution engine. Its role is
to connect the sequencer and Data Availability layers to the rollup execution layer by deriving
the relevant rollup transactions for each block and passing them to the
execution layer.
node, similar to op-node within the OP Stack. Conductor is the counterpart to
the execution engine, which together make up a full rollup node. Its role is
to connect the sequencer and Data Availability layers to the rollup execution
layer by extracting the transactions belonging to the rollup node from each
sequencer block, and forwarding them to the execution layer.

The conductor’s flow looks like:
![Astria Conductor](../assets/astria-conductor.png)
The conductor’s flow is as follows:

* For each sequencer block, parse the relevant rollup data it needs
* For each sequencer block, extract the relevant rollup data it needs
* validate the batch of rollup data; this includes verifying that the
corresponding sequencer block was finalized, as well as verifying that the
rollup data it extracted is complete (there are no rollup transactions
Expand Down Expand Up @@ -64,3 +63,20 @@ sequencer block, which is checked and voted on by every validator. Then, the
conductor receives a list of all the rollup IDs sequenced in a block and
verifies that against the rollup IDs commitment to be certain as to whether a
block had data for it or not.

## Soft and Firm Commitments

The Conductor also retrieves the soft commitments from the sequencer, and firm
commitments from the data availability layer.

The soft commitments act as fast pre-confirmations and are implicitly verified
by the Conductor via a fully trusted connection to the sequencer. All data
retried from the sequencer is automatically considered a soft commitment because
that data can't be added to the sequencer chain unless validated by the
sequencer network.

The firm commitments that are retrieved from the data availability layer are
considered finalized, and are explicitly verified by the conductor before
passing onto the rollup. Data that can be retrieved from the data availability
layer is considered widely available and all historical syncing of data for
rollups is retrieved in this way.

0 comments on commit 73cef73

Please sign in to comment.