Skip to content

Commit 700160a

Browse files
committed
sepolia bernoulli upgrade
1 parent 39bb7e0 commit 700160a

File tree

5 files changed

+61
-8
lines changed

5 files changed

+61
-8
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
@@ -33,7 +33,7 @@ For open-source contributors and infrastructure builders, please contact our tea
3333

3434
## EVM Precompiles
3535

36-
The `SHA2-256` (address `0x2`), `RIPEMD-160` (address `0x3`), and `blake2f` (address `0x9`) precompiles are currently not supported. Calls to these precompiled contracts will revert. We plan to enable these three precompiles in a future hard fork.
36+
The `RIPEMD-160` (address `0x3`) and `blake2f` (address `0x9`) 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.
3737

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

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

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

1717
### Finding the latest version
1818

19-
We recommend using the latest release at https://github.com/scroll-tech/go-ethereum/releases. For Scroll Mainnet, the required version is `scroll-v5.0.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.1.10`.
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`.
2222

2323
### Hardware Requirements
2424

@@ -288,6 +288,7 @@ enode://dd1ac5433c5c2b04ca3166f4cb726f8ff6d2da83dbc16d9b68b1ea83b7079b371eb16ef4
288288
"londonBlock": 0,
289289
"archimedesBlock": 0,
290290
"shanghaiBlock": 0,
291+
"bernoulliBlock": 3747132,
291292
"clique": {
292293
"period": 3,
293294
"epoch": 30000

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ whatsnext: { "Bridge": "/technology/bridge/cross-domain-messaging/" }
2121

2222
| Address | Name | Scroll behavior |
2323
| ------- | ------------ | ----------------------------------------------------------------------------------------------- |
24-
| `0x02` | `SHA2-256` | Currently not supported. |
24+
| `0x02` | `SHA2-256` | Supported on Scroll Sepolia, and will soon be supported on Scroll Mainnet. |
2525
| `0x03` | `RIPEMD-160` | Currently not supported. |
2626
| `0x05` | `modexp` | Restrict the input values `B, E, M` to unsigned integers less than $2^{256}$. |
2727
| `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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,9 @@ This section describes the codec of three data structures in the Rollup contract
128128
| `l1MessagePopped` | 8 | `uint64` | 9 | The number of L1 messages poped in the batch |
129129
| `totalL1MessagePopped` | 8 | `uint64` | 17 | The number of total L1 messages popped after the batch |
130130
| `dataHash` | 32 | `bytes32` | 25 | The data hash of the batch |
131-
| `parentBatchHash` | 32 | `bytes32` | 57 | The parent batch hash |
132-
| `skippedL1MessageBitmap` | dynamic | `uint256[]` | 89 | A bitmap to indicate which L1 messages are skipped in the batch |
131+
| `blobVersionedHash` | 32 | `bytes32` | 57 | The versioned hash of the blob with this batch’s data |
132+
| `parentBatchHash` | 32 | `bytes32` | 89 | The parent batch hash |
133+
| `skippedL1MessageBitmap` | dynamic | `uint256[]` | 121 | A bitmap to indicate which L1 messages are skipped in the batch |
133134

134135
### `Chunk` Codec
135136

@@ -141,7 +142,6 @@ This section describes the codec of three data structures in the Rollup contract
141142
| `block[i]` | 60 | `BlockContext` | `60*i+1` | The block information of `i+1`-th block |
142143
| ... | ... | ... | ... | ... |
143144
| `block[n-1]` | 60 | `BlockContext` | `60*n-59` | The block information of the last block |
144-
| `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. |
145145

146146
### `BlockContext` Codec
147147

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

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,58 @@ The following contracts are used to initiate upgrades and execute upgrades after
1717
| L2 Scroll Multisig | Scroll| [`0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe`](https://scrollscan.com/address/0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe)|
1818
| L2 Timelock | Scroll | [`0xf6069DB81239E5194bb53f83aF564d282357bc99`](https://scrollscan.com/address/0xf6069DB81239E5194bb53f83aF564d282357bc99)|
1919

20+
## Apr 2024 Bernoulli Upgrade
21+
22+
### Overview
23+
24+
This upgrade features a significant reduction in transaction costs by introducing support for EIP-4844 data blobs and supporting the SHA2-256 precompile.
25+
26+
### Timeline
27+
28+
- **Scroll Sepolia**
29+
- Network Upgrade: April 24th, 2024
30+
- **Scroll Mainnet**
31+
- TBD
32+
33+
### Technical Details
34+
35+
#### Contract changes
36+
37+
The contract changes for this upgrade are in [this PR](https://github.com/scroll-tech/scroll/pull/1179).
38+
39+
As well as the audit fixes listed here [TODO]
40+
41+
#### Node changes
42+
43+
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.
44+
45+
#### Prover changes
46+
47+
[TODO]
48+
49+
#### Audits
50+
51+
- OpenZeppelin [TODO]
52+
- TrailofBits [TODO]
53+
54+
### Compatibility
55+
56+
#### Sequencer and follower nodes (l2geth)
57+
58+
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. See the [node releases](https://github.com/scroll-tech/go-ethereum/releases) for more information.
59+
60+
#### Indexers and Bridges
61+
62+
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:
63+
64+
- The format of [`BlockContext`](https://github.com/scroll-tech/scroll/blob/5362e28f744093495c1c09a6b68fc96a3264278b/common/types/encoding/codecv1/codecv1.go#L125) will not change.
65+
- `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.
66+
- `BatchHeader` now contains one new field, [`BlobVersionedHash`](https://github.com/scroll-tech/scroll/blob/5362e28f744093495c1c09a6b68fc96a3264278b/common/types/encoding/codecv1/codecv1.go#L405).
67+
68+
#### Provers
69+
70+
This upgrade involves a breaking change in zkevm-circuits. Operators running a prover node are required to upgrade.
71+
2072
## February 2024 Bridge Upgrade
2173

2274
### Overview

0 commit comments

Comments
 (0)