[Core Protocol] The Safe block and the safe guarantee of all its preceding blocks #529
-
Did you check the documentation?
Did you read the specs?
Did you check for duplicate questions?
Issue DescriptionHi, I've checked the Optimism Derivation process and also know that the definition of a However, I've check this derivation document and learnt that the transactions across different layer 2 blocks can be written to Layer 1 out of order.
And this is the diagram, note that the frames from different block can be written out of order, e.g. newer transaction maybe included into Layer 1 before the older ones So my question is, can we safely assume all the Layer 2 block before the Is this scenario possible? Thanks! Additional InformationNo response FeedbackNo response |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
In actual production, batch-sending are typically made in sequence. I'm guessing that if frames in a channel are sent out of sequence, and the frames after the non-continuous part are sending early, L2 nodes, when deriving, will only recognize the latest "safe" block(get from the sequenced batch) as the continuous end of the L2 blocks, because the earlier parts are missing. just like the definition of safe L2 block |
Beta Was this translation helpful? Give feedback.
-
_Batches are pushed to the next stage whenever there is one sequential batch directly following the timestamp of the current safe L2 head (the last block that can be derived from the canonical L1 chain). The parent hash of the batch must also match the hash of the current safe L2 head. Note that the presence of any gaps in the batches derived from L1 means that this stage will need to buffer for a whole sequencing window before it can generate empty batches (because the missing batch(es) could have data in the last L1 block of the window in the worst case)._ The content indicates that all blocks on L2 before the safe L2 head are in a safe state |
Beta Was this translation helpful? Give feedback.
_Batches are pushed to the next stage whenever there is one sequential batch directly following the timestamp of the current safe L2 head (the last block that can be derived from the canonical L1 chain). The parent hash of the batch must also match the hash of the current safe L2 head.
Note that the presence of any gaps in the batches derived from L1 means that this stage will need to buffer for a whole sequencing window before it can generate empty batches (because the missing batch(es) could have data in the last L1 block of the window in the worst case)._
The content indicates that all blocks on L2 before the safe L2 head are in a safe state