(The following note are copied from blog post ‣ )
The new version of l2geth node is v5.3.0 (release note). This upgrade is a hard fork as it introduces the new blob data type and the SHA2-256 precompiled contract. Operators running an l2geth node are required to upgrade before the hard fork block.
TBD
This upgrade changes the format that Scroll uses to publish data to Ethereum. Indexers that rely on this data should carefully review the new BatchHeader format:
| Field | Bytes | Type | Index | Comments |
|---|---|---|---|---|
version |
1 | uint8 |
0 | The version of BatchHeader’s codex |
batchIndex |
8 | uint64 |
1 | The index of the batch |
l1MessagePopped |
8 | uint64 |
9 | Number of L1 messages popped in the batch |
totalL1MessagePopped |
8 | uint64 |
17 | Number of total L1 messages popped after the batch |
dataHash |
32 | bytes32 |
25 | The data hash of the batch |
blobVersionedHash |
32 | bytes32 |
57 | The versioned hash of the blob with this batch’s data |
parentBatchHash |
32 | bytes32 |
89 | The parent batch hash |
skippedL1MessageBitmap |
dynamic | uint256[] |
121 | A bitmap to indicate which L1 messages are skipped in the batch |
Note the format is different from the existing data format. Indexers will need to check whether their decoders need to be adjusted. A summary of the new format:
BlockContext will not change. linkChunks will no longer include the L2 transaction data. This will instead be stored in a blob attached to the commitBatch transaction. linkBatchHeader now contains one new field BlobVersionedHash. linksee this doc how to run a prover