Skip to content

Commit 1a34517

Browse files
authored
Merge pull request #238 from scroll-tech/isabellewei/bernoulli-mainnet
Bernoulli Mainnet upgrade doc changes
2 parents 5804681 + 62ab844 commit 1a34517

File tree

6 files changed

+34
-31
lines changed

6 files changed

+34
-31
lines changed

src/content/docs/en/developers/ethereum-and-scroll-differences.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Opcodes from the Cancun upgrade are not yet available on Scroll, including `MCOP
3838

3939
## EVM Precompiles
4040

41-
The `RIPEMD-160` (address `0x3`) `blake2f` (address `0x9`), and `point evaluation` (address `0x0a`) precompiles are currently not supported. The `SHA2-256` (address `0x2`) is currently supported on Scroll Sepolia, but will soon be supported on Scroll Mainnet. Calls to unsupported precompiled contracts will revert. We plan to enable these precompiles in future hard forks.
41+
The `RIPEMD-160` (address `0x3`) `blake2f` (address `0x9`), and `point evaluation` (address `0x0a`) precompiles are currently not supported. Calls to unsupported precompiled contracts will revert. We plan to enable these precompiles in future hard forks.
4242

4343
The `modexp` precompile is supported but only supports inputs of size less than or equal to 32 bytes (i.e. `u256`).
4444

src/content/docs/en/developers/guides/running-a-scroll-node.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ For most developers, using [our official RPC endpoint](/en/developers/developer-
1616

1717
### Finding the latest version
1818

19-
We recommend using the latest release at https://github.com/scroll-tech/go-ethereum/releases. The required version is `scroll-v5.2.0` or higher. If you'd like to keep up with new node releases, go to https://github.com/scroll-tech/go-ethereum, click on **Watch**, **Custom**, and make sure that **Releases** is selected.
20-
{/* TODO: update min required version for mainnet after Bernoulli upgrade, also update mainnet genesis info */}
21-
For the remainder of this guide, `VERSION` will denote the version tag. For example, `scroll-v5.2.0`.
19+
We recommend using the latest release at https://github.com/scroll-tech/go-ethereum/releases. The required version for Scroll Mainnet is `scroll-v5.3.0` or higher, and for Scroll Sepolia it is `scroll-v5.2.0` or higher. If you'd like to keep up with new node releases, go to https://github.com/scroll-tech/go-ethereum, click on **Watch**, **Custom**, and make sure that **Releases** is selected.
20+
21+
For the remainder of this guide, `VERSION` will denote the version tag. For example, `scroll-v5.3.0`.
2222

2323
### Hardware Requirements
2424

src/content/docs/en/developers/transaction-fees-on-scroll.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ On Sepolia, an upgraded `L1MessageQueueWithGasPriceOracle` should be used, deplo
178178
If your system supports off-chain mechanisms, you can also call `eth_estimateGas` and `eth_gasPrice` on any Scroll RPC node to get an estimate of the gas required for a given transaction.
179179

180180
<Aside type="danger" title="Upgrade Notice">
181-
After the February 2024 Bridge Upgrade, `L1GasPriceOracle` will be deprecated in favor of `L1MessageQueueWithGasPriceOracle`, which will be available at [`0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B`](https://etherscan.io/address/0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B).
181+
After the February 2024 Bridge Upgrade, `L2GasPriceOracle` will be deprecated in favor of `L1MessageQueueWithGasPriceOracle`, which will be available at [`0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B`](https://etherscan.io/address/0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B).
182182

183183
The upgrade is expected to be finalized on February 21, 2024, after a two-week timelock. Scroll Sepolia has already undergone this upgrade. Read more [here](https://scroll.io/blog/protocol-upgrade-bridging-cost-reduction).
184184

src/content/docs/en/technology/chain/differences.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import Aside from "../../../../../components/Aside.astro"
2323

2424
| Address | Name | Scroll behavior |
2525
| ------- | ------------ | ----------------------------------------------------------------------------------------------- |
26-
| `0x02` | `SHA2-256` | Supported on Scroll Sepolia, and will soon be supported on Scroll Mainnet. |
2726
| `0x03` | `RIPEMD-160` | Currently not supported. |
2827
| `0x05` | `modexp` | Restrict the input values `B, E, M` to unsigned integers less than $2^{256}$. |
2928
| `0x08` | `ecPairing` | The inputs are still multiple of 6 32-byte values, but limit the number of tuples to at most 4. |

src/content/docs/en/technology/chain/rollup.mdx

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ chunk.dataHash := keccak(blockContext[0] || ... || blockContext[k-1] ||
8686

8787
, where `block.l1TxHashes` are the concatenated transaction hashes of the L1 transactions in this block and `block.l2TxHashes` are the concatenated transaction hashes of the L2 transactions in this block. Note that the transaction hashes of L1 transactions are not uploaded by the rollup node, but instead directly loaded from the `L1MessageQueue` contract given the index range of included L1 messages in this block. The L2 transaction hashes are calculated from the RLP-encoded bytes in the `l2Transactions` field in the [`Chunk`](#Chunk-Codec).
8888

89-
In addition, the `commitBatch` function contains a bitmap of skipped L1 messages. Unfortunately, this is due to the problem of proof overflow. If the L1 transaction corresponding to a L1 message exceeds the circuit capacity limit, we won't be able to generate a valid proof for this transaction and thus cannot finalize it on L1. Scroll is working actively to eliminate the proof overflow problem through upgrades to our proving system.
89+
In addition, the `commitBatch` function contains a bitmap of skipped L1 messages. Unfortunately, this is due to the problem of proof overflow. If the L1 transaction corresponding to an L1 message exceeds the circuit capacity limit, we won't be able to generate a valid proof for this transaction and thus cannot finalize it on L1. Scroll is working actively to eliminate the proof overflow problem through upgrades to our proving system.
9090

9191
## Finalize Transaction
9292

@@ -121,18 +121,22 @@ At this stage, the state root of the latest finalized batch can be used trustles
121121

122122
This section describes the codec of three data structures in the Rollup contract: `BatchHeader`, `Chunk`, and `BlockContext`.
123123

124-
### Scroll Mainnet
124+
The latest update to the codec was introduced in the Bernoulli upgrade.
125+
126+
### Bernoulli
127+
125128
#### `BatchHeader` Codec
126129

127130
| Field | Bytes | Type | Offset | Description |
128131
| ------------------------ | ------- | ----------- | ------ | --------------------------------------------------------------- |
129132
| `version` | 1 | `uint8` | 0 | The batch header version |
130133
| `batchIndex` | 8 | `uint64` | 1 | The index of the batch |
131-
| `l1MessagePopped` | 8 | `uint64` | 9 | The number of L1 messages poped in the batch |
134+
| `l1MessagePopped` | 8 | `uint64` | 9 | The number of L1 messages popped in the batch |
132135
| `totalL1MessagePopped` | 8 | `uint64` | 17 | The number of total L1 messages popped after the batch |
133136
| `dataHash` | 32 | `bytes32` | 25 | The data hash of the batch |
134-
| `parentBatchHash` | 32 | `bytes32` | 57 | The parent batch hash |
135-
| `skippedL1MessageBitmap` | dynamic | `uint256[]` | 89 | A bitmap to indicate which L1 messages are skipped in the batch |
137+
| `blobVersionedHash` | 32 | `bytes32` | 57 | The versioned hash of the blob with this batch’s data |
138+
| `parentBatchHash` | 32 | `bytes32` | 89 | The parent batch hash |
139+
| `skippedL1MessageBitmap` | dynamic | `uint256[]` | 121 | A bitmap to indicate which L1 messages are skipped in the batch |
136140

137141
#### `Chunk` Codec
138142

@@ -143,8 +147,7 @@ This section describes the codec of three data structures in the Rollup contract
143147
| ... | ... | ... | ... | ... |
144148
| `block[i]` | 60 | `BlockContext` | `60*i+1` | The block information of `i+1`-th block |
145149
| ... | ... | ... | ... | ... |
146-
| `block[n-1]` | 60 | `BlockContext` | `60*n-59` | The block information of the last block
147-
| `l2Transactions` | dynamic | `bytes` | `60*n+1` | The concatenated RLP encoding of L2 transactions with signatures. The byte length (`uint32`) of RLP encoding is inserted before each transaction. | |
150+
| `block[n-1]` | 60 | `BlockContext` | `60*n-59` | The block information of the last block |
148151

149152
#### `BlockContext` Codec
150153

@@ -157,20 +160,18 @@ This section describes the codec of three data structures in the Rollup contract
157160
| `numTransactions` | 2 | `uint16` | 56 | The number of transactions in this block, including both L1 & L2 txs |
158161
| `numL1Messages` | 2 | `uint16` | 58 | The number of L1 messages in this block
159162

160-
### Scroll Sepolia
161-
163+
### Archimedes
162164
#### `BatchHeader` Codec
163165

164166
| Field | Bytes | Type | Offset | Description |
165167
| ------------------------ | ------- | ----------- | ------ | --------------------------------------------------------------- |
166168
| `version` | 1 | `uint8` | 0 | The batch header version |
167169
| `batchIndex` | 8 | `uint64` | 1 | The index of the batch |
168-
| `l1MessagePopped` | 8 | `uint64` | 9 | The number of L1 messages poped in the batch |
170+
| `l1MessagePopped` | 8 | `uint64` | 9 | The number of L1 messages popped in the batch |
169171
| `totalL1MessagePopped` | 8 | `uint64` | 17 | The number of total L1 messages popped after the batch |
170172
| `dataHash` | 32 | `bytes32` | 25 | The data hash of the batch |
171-
| `blobVersionedHash` | 32 | `bytes32` | 57 | The versioned hash of the blob with this batch’s data |
172-
| `parentBatchHash` | 32 | `bytes32` | 89 | The parent batch hash |
173-
| `skippedL1MessageBitmap` | dynamic | `uint256[]` | 121 | A bitmap to indicate which L1 messages are skipped in the batch |
173+
| `parentBatchHash` | 32 | `bytes32` | 57 | The parent batch hash |
174+
| `skippedL1MessageBitmap` | dynamic | `uint256[]` | 89 | A bitmap to indicate which L1 messages are skipped in the batch |
174175

175176
#### `Chunk` Codec
176177

@@ -181,7 +182,8 @@ This section describes the codec of three data structures in the Rollup contract
181182
| ... | ... | ... | ... | ... |
182183
| `block[i]` | 60 | `BlockContext` | `60*i+1` | The block information of `i+1`-th block |
183184
| ... | ... | ... | ... | ... |
184-
| `block[n-1]` | 60 | `BlockContext` | `60*n-59` | The block information of the last block |
185+
| `block[n-1]` | 60 | `BlockContext` | `60*n-59` | The block information of the last block
186+
| `l2Transactions` | dynamic | `bytes` | `60*n+1` | The concatenated RLP encoding of L2 transactions with signatures. The byte length (`uint32`) of RLP encoding is inserted before each transaction. | |
185187

186188
#### `BlockContext` Codec
187189

@@ -193,5 +195,3 @@ This section describes the codec of three data structures in the Rollup contract
193195
| `gasLimit` | 8 | `uint64` | 48 | The gas limit of this block |
194196
| `numTransactions` | 2 | `uint16` | 56 | The number of transactions in this block, including both L1 & L2 txs |
195197
| `numL1Messages` | 2 | `uint16` | 58 | The number of L1 messages in this block
196-
197-

src/content/docs/en/technology/overview/scroll-upgrades.mdx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,31 @@ This upgrade features a significant reduction in transaction costs by introducin
3030
- **Scroll Sepolia**
3131
- Network Upgrade: April 15th, 2024
3232
- **Scroll Mainnet**
33-
- TBD
33+
- Upgrade Initiation: April 15th, 2024
34+
- Timelock Completion & Upgrade: April 29th, 2024
3435

3536
### Technical Details
3637

3738
#### Contract changes
3839

39-
The contract changes for this upgrade are in [this PR](https://github.com/scroll-tech/scroll/pull/1179).
40+
The contract changes for this upgrade are in [this PR](https://github.com/scroll-tech/scroll/pull/1179), along with the audit fixes [here](https://github.com/scroll-tech/scroll/pulls?q=is%3Apr+created%3A2024-04-10..2024-04-11+fix+in%3Atitle+label%3Abug). The main changes are as follows:
4041

41-
{/* As well as the audit fixes listed here [TODO] */}
42+
- `ScrollChain` now accepts batches with either calldata or blob encoding in `commitBatch`.
43+
- `ScrollChain` now supports finalizing blob-encoded batches through `finalizeBatchWithProof4844`.
44+
- `MultipleVersionRollupVerifier` can now manage different on-chain verifiers for each batch encoding version.
4245

4346
#### Node changes
4447

45-
The new node version is v5.2.0. See [here](https://github.com/scroll-tech/go-ethereum/releases/tag/scroll-v5.2.0) for the changelog.
48+
The new node version is `v5.3.0`. See [here](https://github.com/scroll-tech/go-ethereum/releases/tag/scroll-v5.3.0) for the release log.
4649

47-
{/* #### Prover changes
50+
#### zkEVM circuit changes
4851

49-
[TODO]
52+
The new version of zkevm circuits is `v0.10.3`. See [here](https://github.com/scroll-tech/zkevm-circuits/releases/tag/v0.10.3) for the release log.
5053

5154
#### Audits
5255

53-
- OpenZeppelin [TODO]
54-
- TrailofBits [TODO] */}
56+
- [OpenZeppelin](https://blog.openzeppelin.com/scroll-eip-4844-support-audit)
57+
- TrailofBits (will be posted soon)
5558

5659
### Compatibility
5760

@@ -61,7 +64,7 @@ This upgrade is a hard fork as it introduces the new blob data type and the SHA2
6164

6265
#### Indexers and Bridges
6366

64-
This upgrade changes the format that Scroll uses to publish data to Ethereum. Projects that rely on this data should carefully review [the new data format](https://docs.scroll.io/en/technology/chain/rollup/#codec), and check whether their decoders need to be adjusted. A summary of the new format:
67+
This upgrade changes the format that Scroll uses to publish data to Ethereum. Projects that rely on this data should carefully review [the new data format](/en/technology/chain/rollup/#codec), and check whether their decoders need to be adjusted. A summary of the new format:
6568

6669
- The format of [`BlockContext`](https://github.com/scroll-tech/scroll/blob/5362e28f744093495c1c09a6b68fc96a3264278b/common/types/encoding/codecv1/codecv1.go#L125) will not change.
6770
- `Chunks` will [no longer include](https://github.com/scroll-tech/scroll/blob/5362e28f744093495c1c09a6b68fc96a3264278b/common/types/encoding/codecv1/codecv1.go#L162) the L2 transaction data. This will instead be [stored in a blob](https://github.com/scroll-tech/scroll/blob/5362e28f744093495c1c09a6b68fc96a3264278b/common/types/encoding/codecv1/codecv1.go#L284) attached to the `commitBatch` transaction.
@@ -71,6 +74,7 @@ This upgrade changes the format that Scroll uses to publish data to Ethereum. Pr
7174

7275
This upgrade involves a breaking change in [zkevm-circuits](https://github.com/scroll-tech/zkevm-circuits). Operators running a prover node are required to upgrade.
7376

77+
7478
## Bridge Upgrade
7579

7680
### Overview

0 commit comments

Comments
 (0)