(The following note is copied from blog post ‣)
This upgrade does not alter the state transition function and is therefore backward-compatible. However, node operators are still strongly encouraged to upgrade to v5.6.0 before that hard fork timestamp. For more information, Please refer to the node release notes.
There are some major changes to how we commit and finalize batches after Darwin. Starting at the Darwin fork block, the key changes are as follows:
Darwin uses the new V3 batch codec. This version adds two new fields:
lastBlockTimestamp
(the timestamp of the last block in this batch).blobDataProof
(the KZG challenge point evaluation proof).This version removes skippedL1MessageBitmap
.
There will be no changes to how the blob data is encoded and compressed. For more details, please refer to v3 codec.
Batches will be committed using the commitBatchWithBlobProof
function (instead of the previous commitBatch
).
Original function signature: function commitBatch(uint8 _version, bytes calldata _parentBatchHeader, bytes[] memory _chunks, bytes calldata _skippedL1MessageBitmap)
.
New function signature: commitBatchWithBlobProof(uint8 _version, bytes calldata _parentBatchHeader, bytes[] memory _chunks, bytes calldata _skippedL1MessageBitmap, bytes calldata _blobDataProof)
.
Batches will be finalized using the finalizeBundleWithProof
function (instead of the previous finalizeBatchWithProof4844
).
Original function signature: finalizeBatchWithProof4844(bytes calldata _batchHeader, bytes32 _prevStateRoot*,* bytes32 _postStateRoot, bytes32 _withdrawRoot, bytes calldata _blobDataProof, bytes calldata _aggrProof)
.
New function signature: finalizeBundleWithProof(bytes calldata _batchHeader, bytes32 _postStateRoot, bytes32 _withdrawRoot, bytes calldata _aggrProof)
.
The semantics of the FinalizeBatch
event will change: It will now mean that all batches between the last finalized batch and the event’s _batchIndex
have been finalized. The event’s stateRoot and withdrawRoot values belong to the last finalized batch. Finalized roots for intermediate batches are no longer available.
The semantics of the CommitBatch
and RevertBatch
events will not change.
Recommendations: