Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions nodes/operations/bera-geth-to-reth.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

## Layout

Below is an example layout on disk that we will reason with in this guide. Your installation can, of course, vary. The example below uses `/srv/bera` so systemd units, Compose files, and on-call runbooks all refer to the same paths.

Check warning on line 12 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L12

Did you really mean 'systemd'?

Check warning on line 12 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L12

Did you really mean 'runbooks'?

**Suggested tree** (adjust names to match your host):

Expand All @@ -29,7 +29,7 @@

**Consensus home** is the directory you pass to `beacond` as `--home`. It always contains `config/` and `data/`. For a migration, the lowest-risk approach is to **take a filesystem copy of the entire `beacond` tree from the host that currently runs Geth, while `beacond` is stopped.** That copy preserves `priv_validator_key.json`, current `app.toml`, `config.toml`, address book, and CL chain data exactly as they were under Geth.

**Reth datadir** is where reth configuration and chain data is. In later steps you will initialize Reth here or install a snapshot.

Check warning on line 32 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L32

Did you really mean 'datadir'?

1. **jwt.json ** is the shared secret so BeaconKit and Geth can communicate. You only need one copy. Set both `jwt-secret-path` in BeaconKit's `app.toml` and Reth's `--authrpc.jwtsecret` to that exact full path.

Expand All @@ -39,7 +39,7 @@

**Collect launch options from Geth before you decommission it.** Open the unit file, Compose service, or shell wrapper that starts Geth today and note every path and port. Many of these are covered by reasonable Reth defaults.

The guides [`run-reth.sh`](https://github.com/berachain/guides/blob/main/apps/node-scripts/run-reth.sh) is a worked example of flags that work with BeaconKit; treat it as a checklist against your own systemd or kubernetes pod.

Check warning on line 42 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L42

Did you really mean 'systemd'?

Check warning on line 42 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L42

Did you really mean 'kubernetes'?

Bera-Reth inherits Reth's CLI. The full upstream option list for the node command is documented at **[reth node (CLI reference)](https://reth.rs/cli/reth/node/)**. Many flags are the same between Bera-Geth and Bera-Reth:

Expand All @@ -52,11 +52,17 @@
| `--nat extip:IP` | same; this option is highly recommended |
| `--port` (execution P2P) | `--port` and `--discovery.port` |
| `--static-peers <peer,peer>` | `--trusted-peers <peer,peer>` |
| `--txpool.pricebump <N>` | same |
| `--txpool.accountslots <N>` | `--txpool.max-account-slots <N>` |
| `--txpool.lifetime <duration>` | same (seconds; e.g. `10800`) |
| `--miner.gasprice <wei>` / `--txpool.pricelimit <wei>` | `--txpool.minimum-priority-fee <wei>` |
| Full node vs archive | Pruned-style: pass `--full`. Full archive: omit `--full` |

Pass `--chain` with your EL genesis JSON path on every `bera-reth node` start, not only after `init`.

**Enforcing a minimum priority fee.** If you set a floor on tips under Bera-Geth (typically via `--miner.gasprice` or `--txpool.pricelimit`), use `--txpool.minimum-priority-fee <wei>` on Bera-Reth. Transactions with a priority fee below this value are rejected from the pool. Omit the flag to accept any priority fee (Reth's default).

**Bootnodes** — Use the current [mainnet](https://github.com/berachain/beacon-kit/blob/main/testing/networks/80094/el-bootnodes.txt) or [Bepolia](https://github.com/berachain/beacon-kit/blob/main/testing/networks/80069/el-bootnodes.txt) `el-bootnodes.txt` with `--bootnodes` (comma-separated `enode://` lines).

Check warning on line 65 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L65

Did you really mean 'Bootnodes'?

Typical Reth startup structure:

Expand Down Expand Up @@ -84,7 +90,7 @@

This path is appropriate when you accept a long execution-layer sync from genesis and want minimal moving parts.

1. Remove or rename the Geth datadir so Reth never opens it by mistake.

Check warning on line 93 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L93

Did you really mean 'datadir'?
2. Ensure `eth-genesis.json` is at your EL genesis path ([EVM Execution](/nodes/architecture/evm-execution)).
3. Initialize Reth's database directory:

Expand All @@ -98,7 +104,7 @@

Choose this path when you want to land near head on disk instead of waiting for a full EL sync.

1. **Download** — Official Bera snapshots are `.tar.lz4` files. The [snapshot downloader](https://raw.githubusercontent.com/berachain/guides/main/apps/node-scripts/fetch-berachain-snapshot.js) is a standalone Node.js 18+ script. It accepts `--help`.

Check warning on line 107 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L107

Did you really mean 'downloader'?

```Options:
-n, --network <network> mainnet or testnet (default: mainnet)
Expand All @@ -120,7 +126,7 @@

Using a downloaded snapshot:

1. **Stop** both `beacond` and the execution client before unpacking anything into the Reth datadir.

Check warning on line 129 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L129

Did you really mean 'datadir'?

2. **Extract** — Current official Reth snapshot archives place **`db/`**, **`rocksdb/`**, and **`blobstore/`** at the **tar root**, not under a `data/` folder. Point `tar` **`-C` at your `--datadir`** so those directories land directly inside it. For the suggested tree, `--datadir` is `/srv/bera/reth/data` and thus:

Expand All @@ -129,7 +135,7 @@
lz4 -d "$EL_SNAPSHOT" | tar xv -C /srv/bera/reth/data
```

If you ever see tarball paths prefixed with `data/` (e.g. `tar -tv` shows `data/db/...`), unpack with `-C` set to the **parent** of `--datadir` instead so `data/` becomes the datadir. If Reth partially synced earlier, empty `--datadir` before extracting.

Check warning on line 138 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L138

Did you really mean 'datadir'?

## Start

Expand All @@ -137,6 +143,6 @@

Watch `beacond` logs for a successful execution-client connection. Hit your configured HTTP RPC port on Reth (often `8545`) with a simple `eth_blockNumber` once you expect sync to move.

When Reth is stable and you no longer need rollback to Geth, delete or archive the old Geth datadir to free space.

Check warning on line 146 in nodes/operations/bera-geth-to-reth.mdx

View check run for this annotation

Mintlify / Mintlify Validation (berachain-422fce37) - vale-spellcheck

nodes/operations/bera-geth-to-reth.mdx#L146

Did you really mean 'datadir'?

For a brand-new node built entirely from the guides scripts, see [Quickstart: Run a Node](/nodes/operations/quickstart).