Skip to content

Commit

Permalink
Darwinv2 changes (#332)
Browse files Browse the repository at this point in the history
* darwinv2 changes

* oops

* note on reorgs and finality

* formatting
  • Loading branch information
isabellewei authored Sep 6, 2024
1 parent 9243fe6 commit 10a7e11
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ Similarly to Ethereum, the Scroll sequencer aims to prioritize executable transa

However, just like in Ethereum, this ordering is not guaranteed by the protocol, and some blocks might diverge from it. In particular, during periods of low mempool congestion, the sequencer will process transactions on a first-come-first-served basis, so some transactions might precede others with higher tip in the same block.

## Reorgs and Finality

Starting from our [DarwinV2 upgrade](/technology/overview/scroll-upgrades#darwinv2-upgrade), the maximum reorg depth has been set to 17 blocks. Transaction ordering should be unchanged after this threshold, however the only absolute guarantee is for transactions to be finalized (proof submitted to L1).

## Future EIPs

We keep a close eye on all emerging EIPs adopted by Ethereum and adopt them when suitable. If you’re interested in more specifics, reach out in [our community forum](https://community.scroll.io) or on the [Scroll Discord](https://discord.gg/scroll).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ For most developers, using [our official RPC endpoint](/en/developers/developer-

We recommend using the latest release at https://github.com/scroll-tech/go-ethereum/releases. The required version for Scroll Mainnet is `scroll-v5.5.0` or higher, and for Scroll Sepolia it is `scroll-v5.4.2` 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.

For the remainder of this guide, `VERSION` will denote the version tag. For example, `scroll-v5.6.0`.
For the remainder of this guide, `VERSION` will denote the version tag. For example, `scroll-v5.7.0`.

### Hardware Requirements

Expand Down
29 changes: 29 additions & 0 deletions src/content/docs/en/technology/overview/scroll-upgrades.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,35 @@ The following contracts are used to initiate upgrades and execute upgrades after

You can join our [Telegram channel for technical updates](https://t.me/scroll_tech_updates), which includes future upgrade announcements and on-chain operation events.

## DarwinV2 Upgrade

### Overview

During internal testing, we identified that blocks may not always be compressible under certain conditions, which leads to unprovable chunks and batches.
To fix this issue, a minor upgrade has been conducted so that uncompressed blobs will be enabled when this special case is detected.

### Timeline

As this is a security related patch, we bypassed the 7-day timelock mechanism.

- **Scroll Sepolia**: August 28th, 2024
- **Scroll Mainnet**: September 2nd, 2024

### Compatibility

#### Sequencer and Follower Nodes (l2geth)

The new node version is `v5.7.0`. See the [release notes](https://github.com/scroll-tech/go-ethereum/releases/tag/scroll-v5.7.0) for more information.

This upgrade does not change Scroll's state transition function, so it is backward compatible. However, the format of the batch data committed to Ethereum changes. As a result, nodes that enabled rollup verification (`--rollup.verify`) must upgrade to be able to follow the chain.

#### Dapps and Indexers

A change has been implemented to Scroll Mainnet to enhance sequencer throughput, which adjusted the maximum reorg depth to 17 blocks. Previously, the system performed thorough capacity checks within the signer thread to determine whether transactions exceed the circuit limit. While this ensures that all transactions within a block are compliant, it also requires additional CPU resources.
We introduced a new circuit capacity checking scheme on Mainnet. The sequencer thread now will continue to perform capacity checks, but in a more approximate manner. In parallel, 16 worker threads will accurately verify the capacity of previous blocks. As a result, a reorg could occur with a maximum depth of 17 blocks, although the likelihood of this is low.

For indexers, the `BatchHeader` version has been upgraded to 4. This is backward compatible (the only exception is for developers decoding the blob payload, which has changed slightly).

## Darwin Upgrade

### Overview
Expand Down

0 comments on commit 10a7e11

Please sign in to comment.