github.com/ethereum-optimism/optimism@v1.7.2/op-node/rollup/derive/doc.go (about)

     1  // Package derive provides the data transformation functions that take L1 data
     2  // and turn it into L2 blocks and results. Certain L2 data is also able to
     3  // turned back into L1 data.
     4  //
     5  // The flow is data is as follows
     6  // receipts, batches -> eth.PayloadAttributes, by parsing the L1 data and deriving L2 inputs
     7  // l2.PayloadAttributes -> l2.ExecutionPayload, by running the EVM (using an Execution Engine)
     8  // L2 block -> Corresponding L1 block info, by parsing the first deposited transaction
     9  //
    10  // The Payload Attributes derivation stage is a pure function.
    11  // The Execution Payload derivation stage relies on the L2 execution engine to perform the state update.
    12  // The inversion step is a pure function.
    13  //
    14  // The steps should be kept separate to enable easier testing.
    15  package derive