Podcast
Questions and Answers
How does Holocene's 'Strict Batch Ordering' affect the frame queue, compared to pre-Holocene rules?
How does Holocene's 'Strict Batch Ordering' affect the frame queue, compared to pre-Holocene rules?
- It prioritizes frames based on the gas price, regardless of their order within a channel.
- It allows out-of-order frames to be buffered for later processing, optimizing transaction throughput.
- It removes the frame queue entirely, relying solely on individual batch transaction processing.
- It ensures the frame queue holds frames whose indices are ordered, contiguous, and include the first frame per channel. (correct)
What happens to a span batch under Holocene if one of its singular batches is found to be invalid?
What happens to a span batch under Holocene if one of its singular batches is found to be invalid?
- The invalid batch is dropped, and any previously processed valid batches from the same span batch are retroactively invalidated (backwards-invalidation).
- Only the invalid singular batch is dropped, while the remaining batches from the same span batch are processed as usual.
- The invalid batch is dropped, and all subsequent batches from the same span batch are also dropped (forwards-invalidation). (correct)
- The entire span batch is re-evaluated, potentially re-ordering the valid batches to bypass the invalid one.
How does Holocene handle an INVALID
status returned by the engine for a derived payload?
How does Holocene handle an INVALID
status returned by the engine for a derived payload?
- The entire derivation pipeline is reset to prevent any inconsistencies.
- The batch is discarded, and the system reverts to the last known valid state.
- The invalid payload is replaced by a payload with the same fields, except the transaction list, which is trimmed to only include deposit transactions. (correct)
- The system pauses and requests manual intervention to resolve the payload issue.
How does Steady Block Derivation in Holocene improve fault proofs and interop?
How does Steady Block Derivation in Holocene improve fault proofs and interop?
How might a batcher implementation need to adjust to account for Steady Block Derivation rules under Holocene?
How might a batcher implementation need to adjust to account for Steady Block Derivation rules under Holocene?
What is the key difference in how Holocene activates compared to how span batches activated in Delta?
What is the key difference in how Holocene activates compared to how span batches activated in Delta?
How does Holocene's Fast Channel Invalidation contribute to the overall system?
How does Holocene's Fast Channel Invalidation contribute to the overall system?
What is the significance of including a 0'd out eip1559Params
on the fork activation block?
What is the significance of including a 0'd out eip1559Params
on the fork activation block?
What simplification does Holocene bring to the sync start algorithm, and why is it significant?
What simplification does Holocene bring to the sync start algorithm, and why is it significant?
What happens to the frame queue, channel bank, and batch queue during Holocene activation at the L1 block whose timestamp is the first to be greater or equal to the activation timestamp?
What happens to the frame queue, channel bank, and batch queue during Holocene activation at the L1 block whose timestamp is the first to be greater or equal to the activation timestamp?
Flashcards
Holocene Hardfork
Holocene Hardfork
Introduces changes to block derivation rules for stricter, simpler processing and better Fault Proofs/Interop.
Strict Batch Ordering
Strict Batch Ordering
Frames must arrive in order; invalid frames are discarded sooner to reduce memory usage.
Channel Bank
Channel Bank
Simplifies by holding only one channel at a time; uses MAX_RLP_BYTES_PER_CHANNEL for size limits.
Partial Span Batch Validity
Partial Span Batch Validity
Signup and view all the flashcards
Batch Queue
Batch Queue
Signup and view all the flashcards
Steady Block Derivation
Steady Block Derivation
Signup and view all the flashcards
Payload Attributes
Payload Attributes
Signup and view all the flashcards
Holocene Activation
Holocene Activation
Signup and view all the flashcards
Guaranteed Singular Batch Validity
Guaranteed Singular Batch Validity
Signup and view all the flashcards
Fast Channel Invalidation
Fast Channel Invalidation
Signup and view all the flashcards
Study Notes
- Holocene hardfork introduces changes to block derivation rules, making the derivation pipeline stricter and simpler.
- It improves worst-case scenarios for Fault Proofs and Interop.
- The impact of an invalid batch is contained to the block number, instead of propagating forwards or backwards in the safe chain.
- Invalid payloads are contained at the engine stage, not propagating backwards in the derivation pipeline.
Frame Queue Changes
- The frame queue retains its function and queues all frames which weren't assembled into a channel yet.
- Holocene still allows multiple frames per batcher transaction, possibly from different channels.
- Strict Batch Ordering leads to additional checks and rules to the frame queue.
- The rules guarantee that the frame queue always holds frames whose indices are ordered, contiguous and include the first frame, per channel.
- A first frame of a channel is either the first frame in the queue, or is preceded by a closing frame of a previous channel.
- Pre-Holocene, frame validity checks were only done at the Channel Bank stage.
- Checks are performed at the Frame Queue stage, leading to faster discarding of invalid frames.
Channel Bank Changes
- Because channel frames have to arrive in order, the Channel Bank becomes much simpler and only holds at most a single channel at a time.
- Pruning is vastly simplified as there is at most only one open channel in the channel bank.
- The channel bank's queue becomes effectively a staging slot for a single channel, the staging channel.
- The MAX_CHANNEL_BANK_SIZE parameter is no longer used, and the compressed size of the staging channel is required to be at most MAX_RLP_BYTES_PER_CHANNEL.
- The timeout is applied as before, just only to the single staging channel.
- The frame queue is guaranteed to hold ordered and contiguous frames, per channel.
Partial Span Batch Validity
- Treats a span batch as an optional stage in the derivation pipeline that sits before the batch queue.
- When encountering an invalid singular batch, it is dropped, as is the remaining span batch for consistency reasons (forwards-invalidation).
- Doesn't backwards-invalidate previous valid batches that came from the same span batch.
- When a batch derived from the current staging channel is a singular batch, it is directly forwarded to the batch queue.
- Otherwise, it is set as the current span batch in the span batch stage.
- Span batch validity checks are performed before singular batches are derived from it.
- If any checks invalidate the span batch, it is dropped and the remaining channel from which the span batch was derived is also immediately dropped (Fast Channel Invalidation).
- A past span batch is only dropped, without dropping the remaining channel.
Batch Queue Changes
- Batches are required to arrive strictly ordered, and any batches that violate the ordering requirements are immediately dropped, instead of buffered.
- Changes to batch validity rules also activate by the L1 inclusion block timestamp of a batch, not with the batch timestamp.
- When the L1 origin of the batch queue moves forward, it is guaranteed that it is empty, because future batches aren't buffered any more.
- Batch queue effectively becomes a simpler batch stage that holds at most one span batch from which singular batches are read from, and doesn't buffer singular batches itself in a queue anymore.
- A valid batch is directly forwarded to the next stage.
- Upon finding an invalid batch, the remaining channel it got derived from is also discarded.
Payload Attributes
- Starting after the fork activation block, the PayloadAttributes produced by the attributes builder will include the eip1559Params field.
- On the fork activation block, the attributes builder will include a 0'd out eip1559Params, as to instruct the engine to use the canyon base fee parameter constants.
- After the first Holocene payload has been processed, future payloads should use the SystemConfig's EIP-1559 denominator and elasticity parameter as the eip1559Params field's value.
- When the pipeline encounters a UpdateType. EIP_1559_PARAMS, ConfigUpdate event, the pipeline's system config will be synchronized with the SystemConfig contract's.
Holocene Activation
- The new batch rules activate when the L1 inclusion block timestamp is greater or equal to the Holocene activation timestamp.
- When the L1 traversal stage of the derivation pipeline moves its origin to L1 block, the derivation pipeline's state is mostly reset by discarding.
- The three stages are then replaced by the new Holocene frame queue, channel bank and batch queue.
- Batcher implementations must be aware of this activation behavior, so any frames of a partially submitted channel that were included pre-Holocene must be sent again.
Advantages of Holocene
- Strict Frame and Batch Ordering simplifies implementations of the derivation pipeline.
- Leads to better worst-case cached data usage.
- Partial Span Batch Validity guarantees that a valid singular batch derived from a span batch can immediately be processed as valid.
- The new Fast Channel Invalidation rule is a consistency implication of the Strict Ordering Rules.
- Steady Block Derivation changes the derivation rules for invalid payload attributes, replacing an invalid payload by a deposit-only/empty payload.
- Stricter derivation rules lead to a less defensive protocol.
- Shifts some complexity from derivation to the batching phase.
Batcher Implementation
- Simpler and stricter derivation rules need to be met by a more complex batcher implementation.
- Batcher must be hardened to guarantee the strict ordering requirements.
- Batcher implementations are suggested to follow a fixed nonce to block-range assignment, once the first batcher transaction starts being submitted.
- Batcher implementations need to be made aware of the Steady Block Derivation rules, namely that invalid payloads will be derived as deposit-only blocks.
- The sync-status should repeatedly be queried and matched against the expected safe chain, and halt operations until derivation catches up.
Sync Start Algorithm
- Thanks to the new strict frame and batch ordering rules, the sync start algorithm can be simplified in the average case.
- The sync start algorithm can optimistically select the last L2 unsafe, safe and finalized heads from the engine.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.