Skip to content

Commit

Permalink
Fast sync - deprecation (#1737)
Browse files Browse the repository at this point in the history
* fast sync deprecation

Signed-off-by: Sally MacFarlane <[email protected]>

* fix links

Signed-off-by: Alexandra Tran <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Alexandra Tran <[email protected]>
Co-authored-by: Alexandra Tran <[email protected]>
  • Loading branch information
macfarla and Alexandra Tran authored Nov 26, 2024
1 parent 74cc143 commit 3ca1fac
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 12 deletions.
2 changes: 1 addition & 1 deletion docs/private-networks/concepts/node-sync-private.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Select the sync mode based on your network's requirements and node purposes.
|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|-------------|
| [Snap](../../public-networks/concepts/node-sync.md#snap-synchronization) | Recommended for fastest sync and lowest storage requirements on Mainnet. Downloads as many leaves of the trie as possible and reconstructs the trie locally. Faster than fast sync. | Available as an _early access feature_ in Besu version 24.7.1 or later | Cannot switch from fast sync to snap sync mid-process. |
| [Checkpoint](../../public-networks/concepts/node-sync.md#checkpoint-synchronization) | Syncs from a specific checkpoint block configured in the genesis file. Fastest sync mode with lowest storage requirements. | Besu version 22.4.3 or later | Not supported for QBFT or IBFT 2.0 networks without a checkpoint configuration. |
| [Fast](../../public-networks/concepts/node-sync.md#fast-synchronization) | Downloads block headers and transaction receipts, verifies chain from genesis block. | None | Not supported with private transactions. |
| [Fast](../../public-networks/concepts/node-sync.md#fast-synchronization-deprecated) | Downloads block headers and transaction receipts, verifies chain from genesis block. | None | Not supported with private transactions. |
| [Full](../../public-networks/concepts/node-sync.md#full-synchronization) | Default for all private networks. Downloads and verifies the entire blockchain and state from genesis block, building an archive node with full state history. | None | Slowest sync mode, requires the most disk space. |

:::warning Early access feature
Expand Down
2 changes: 1 addition & 1 deletion docs/private-networks/get-started/start-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ You might need to set [`--tx-pool-limit-by-account-percentage`](../../public-net

:::note Sync nodes for BFT

If you're running a node on a [QBFT](../how-to/configure/consensus/qbft.md) or [IBFT 2.0](../how-to/configure/consensus/ibft.md) network, your node must use [fast sync](../../public-networks/concepts/node-sync.md#fast-synchronization) or [full sync](../../public-networks/concepts/node-sync.md#full-synchronization).
If you're running a node on a [QBFT](../how-to/configure/consensus/qbft.md) or [IBFT 2.0](../how-to/configure/consensus/ibft.md) network, your node must use [fast sync](../../public-networks/concepts/node-sync.md#fast-synchronization-deprecated) or [full sync](../../public-networks/concepts/node-sync.md#full-synchronization).

Full sync is set by default.

Expand Down
2 changes: 1 addition & 1 deletion docs/public-networks/concepts/data-storage-formats.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ Using `--bonsai-historical-block-limit` doesn't affect the size of the database

### Syncing nodes

The following table shows the ways you can sync a [full node](node-sync.md#full-nodes) with the different data storage formats using [fast](node-sync.md#fast-synchronization) and [snap](node-sync.md#snap-synchronization) sync.
The following table shows the ways you can sync a [full node](node-sync.md#full-nodes) with the different data storage formats using [fast](node-sync.md#fast-synchronization-deprecated) and [snap](node-sync.md#snap-synchronization) sync.

| Data storage format | Sync mode | Storage estimate | Can other nodes sync to your node? |
| --- | --- | --- | --- |
Expand Down
11 changes: 6 additions & 5 deletions docs/public-networks/concepts/node-sync.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ block).

You can run a full node using [snap synchronization](#snap-synchronization),
[checkpoint synchronization](#checkpoint-synchronization), or
[fast synchronization](#fast-synchronization).
[fast synchronization](#fast-synchronization-deprecated).

### Archive nodes

Expand All @@ -53,7 +53,7 @@ The following is an overview of the public network sync modes:
|-------------------------------------------|-------------|--------------|-------------|
| [Snap](#snap-synchronization) | Efficient sync from genesis block, downloading as many trie leaves as possible and reconstructing locally. Faster than fast sync. | Besu version 22.4.0 or later | Cannot switch from fast sync to snap sync mid-process. |
| [Checkpoint](#checkpoint-synchronization) | Syncs from a specific checkpoint block configured in the genesis file. Fastest sync mode with lowest storage requirements. | Besu version 22.4.3 or later | |
| [Fast](#fast-synchronization) | Downloads block headers and transaction receipts, verifies chain from genesis block. | None | Might become impossible to fast sync Ethereum Mainnet in the future. |
| [Fast](#fast-synchronization-deprecated) | Downloads block headers and transaction receipts, verifies chain from genesis block. | None | Deprecated in Besu version 24.11.0 and later. |
| [Full](#full-synchronization) | Downloads and verifies the entire blockchain and state from genesis block, building an archive node with full state history. | None | Slowest sync mode, requires the most disk space. |

:::info Private network syncing
Expand Down Expand Up @@ -136,12 +136,13 @@ You can restart Besu during a checkpoint sync in case of hardware or software pr
resumes from the last valid world state and continues to download blocks starting from the last
downloaded block.

### Fast synchronization
### Fast synchronization (Deprecated)

:::caution

It might become impossible to sync Ethereum Mainnet using fast sync in the future. If you sync for
the first time or ever need to re-sync, update Besu to a version that supports newer sync methods.
Fast sync is deprecated in Besu version 24.11.0 and later. Please read this [blog post](https://www.lfdecentralizedtrust.org/blog/sunsetting-tessera-and-simplifying-hyperledger-besu) for more context on the rationale behind this decision as well as alternative options.

If you sync for the first time or need to re-sync, update Besu to a version that supports newer sync methods.

:::

Expand Down
4 changes: 2 additions & 2 deletions docs/public-networks/get-started/start-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ To define a genesis configuration, create a genesis file (for example, `genesis.

## Syncing and storage

By default, Besu syncs to the current state of the blockchain using [fast sync](../concepts/node-sync.md#fast-synchronization) in:
By default, Besu syncs to the current state of the blockchain using [snap sync](../concepts/node-sync.md#snap-synchronization) in:

- Networks specified using [`--network`](../reference/cli/options.md#network) except for the `dev` development network.
- Ethereum Mainnet.

We recommend using [snap sync](../concepts/node-sync.md#snap-synchronization) for a faster sync, by starting Besu with [`--sync-mode=SNAP`](../reference/cli/options.md#sync-mode).

By default, Besu stores data in the [Forest of Tries](../concepts/data-storage-formats.md#forest-of-tries) format. We recommend using [Bonsai Tries](../concepts/data-storage-formats.md#bonsai-tries) for lower storage requirements, by starting Besu with [`--data-storage-format=BONSAI`](../reference/cli/options.md#data-storage-format).
By default, Besu stores data in the [Bonsai Tries format](../concepts/data-storage-formats.md#bonsai-tries).

## Run a node for testing

Expand Down
4 changes: 2 additions & 2 deletions docs/public-networks/reference/cli/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -5574,15 +5574,15 @@ sync-mode="SNAP"

</Tabs>

The synchronization mode. Use `SNAP` for [snap sync](../../concepts/node-sync.md#snap-synchronization), `CHECKPOINT` for [checkpoint sync](../../concepts/node-sync.md#checkpoint-synchronization), `FAST` for [fast sync](../../concepts/node-sync.md#fast-synchronization), and `FULL` for [full sync](../../concepts/node-sync.md#full-synchronization).
The synchronization mode. Use `SNAP` for [snap sync](../../concepts/node-sync.md#snap-synchronization), `CHECKPOINT` for [checkpoint sync](../../concepts/node-sync.md#checkpoint-synchronization), `FAST` for [fast sync](../../concepts/node-sync.md#fast-synchronization-deprecated), and `FULL` for [full sync](../../concepts/node-sync.md#full-synchronization).

- The default is `FULL` when connecting to a private network by not using the [`--network`](#network) option and specifying the [`--genesis-file`](#genesis-file) option.
- The default is `SNAP` when using the [`--network`](#network) option with named networks, except for the `dev` development network. `SNAP` is also the default if running Besu on the default network (Ethereum Mainnet) by specifying neither [network](#network) nor [genesis file](#genesis-file).

:::note Notes

- We recommend using snap sync over fast sync because snap sync can be faster by several days.
- It might become impossible to sync Mainnet using fast sync in the future, as clients drop support for fast sync.
- Fast sync is deprecated in Besu version 24.11.0 and later.
We recommend updating Besu to a version that supports other sync methods.
- When using a mode other than `FULL`, most historical world state data is unavailable.
Any methods attempting to access unavailable world state data return `null`.
Expand Down

0 comments on commit 3ca1fac

Please sign in to comment.