Skip to content

Commit 4c9caf6

Browse files
authored
Merge pull request #13301 from ethereum/reth-update
Reth update
2 parents 54e3272 + 8b08945 commit 4c9caf6

File tree

5 files changed

+55
-31
lines changed

5 files changed

+55
-31
lines changed

public/content/community/support/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ Most of the teams building Ethereum clients also have dedicated, public-facing,
9292
- [Nethermind](https://discord.gg/YJx3pm8z5C)
9393
- [Besu](https://discord.gg/p8djYngzKN)
9494
- [Erigon](https://github.com/ledgerwatch/erigon/issues)
95+
- [Reth](https://github.com/paradigmxyz/reth/discussions)
9596

9697
### Consensus clients {#consensus-clients}
9798

public/content/developers/docs/nodes-and-clients/index.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,14 @@ The Ethereum community maintains multiple open-source execution clients (previou
133133

134134
This table summarizes the different clients. All of them pass [client tests](https://github.com/ethereum/tests) and are actively maintained to stay updated with network upgrades.
135135

136-
| Client | Language | Operating systems | Networks | Sync strategies | State pruning |
137-
| ------------------------------------------------------------------------ | ---------- | --------------------- | ------------------------- | ---------------------------------- | --------------- |
136+
| Client | Language | Operating systems | Networks | Sync strategies | State pruning |
137+
| ------------------------------------------------------------------------ | ---------- | --------------------- | ------------------------- | -------------------------------------------------------------- | --------------- |
138138
| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync), [Full](#full-sync) | Archive, Pruned |
139-
| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync) (without serving), Fast, [Full](#full-sync) | Archive, Pruned |
140-
| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync), [Fast](#fast-sync), [Full](#full-sync) | Archive, Pruned |
141-
| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Full](#full-sync) | Archive, Pruned |
142-
| [Reth](https://github.com/paradigmxyz/reth) _(beta)_ | Rust | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Full](#full-sync) | Archive, Pruned |
143-
| [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo) _(beta)_ | TypeScript | Linux, Windows, macOS | Sepolia, Holesky | [Full](#full-sync) | Pruned |
139+
| [Nethermind](https://www.nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync) (without serving), Fast, [Full](#full-sync) | Archive, Pruned |
140+
| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync), [Fast](#fast-sync), [Full](#full-sync) | Archive, Pruned |
141+
| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Full](#full-sync) | Archive, Pruned |
142+
| [Reth](https://reth.rs/) | Rust | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Full](#full-sync) | Archive, Pruned |
143+
| [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo) _(beta)_ | TypeScript | Linux, Windows, macOS | Sepolia, Holesky | [Full](#full-sync) | Pruned |
144144

145145
For more on supported networks, read up on [Ethereum networks](/developers/docs/networks/).
146146

@@ -172,6 +172,14 @@ Nethermind is an Ethereum implementation created with the C# .NET tech stack, li
172172

173173
Nethermind also has [detailed documentation](https://docs.nethermind.io), strong dev support, an online community and 24/7 support available for premium users.
174174

175+
### Reth {#reth}
176+
177+
Reth (short for Rust Ethereum) is an Ethereum full node implementation that is focused on being user-friendly, highly modular, fast and efficient. Reth was originally built and driven forward by Paradigm, and is licensed under the Apache and MIT licenses.
178+
179+
Reth is production ready, and suitable for usage in mission-critical environments such as staking or high-uptime services. Performs well in use cases where high performance with great margins is required such as RPC, MEV, indexing, simulations, and P2P activities.
180+
181+
Learn more by checking out the [Reth Book](https://reth.rs/), or the [Reth GitHub repo](https://github.com/paradigmxyz/reth?tab=readme-ov-file#reth).
182+
175183
### In development {#execution-in-development}
176184

177185
These clients are still in earlier stages of development and are not yet recommended for production use.
@@ -238,7 +246,7 @@ The execution layer may be run in different modes to suit different use cases, f
238246

239247
#### Full sync {#full-sync}
240248

241-
A full sync downloads all blocks (including headers and block bodies) and regenerates the state of the blockchain incrementally by executing every block from genesis.
249+
A full sync downloads all blocks (including headers and block bodies) and regenerates the state of the blockchain incrementally by executing every block from genesis.
242250

243251
- Minimizes trust and offers the highest security by verifying every transaction.
244252
- With an increasing number of transactions, it can take days to weeks to process all transactions.
@@ -247,7 +255,7 @@ A full sync downloads all blocks (including headers and block bodies) and regene
247255

248256
#### Fast sync {#fast-sync}
249257

250-
Like a full sync, a fast sync downloads all blocks (including headers, transactions, and receipts). However, instead of re-processing the historical transactions, a fast sync relies on the receipts until it reaches a recent head, when it switches to importing and processing blocks to provide a full node.
258+
Like a full sync, a fast sync downloads all blocks (including headers, transactions, and receipts). However, instead of re-processing the historical transactions, a fast sync relies on the receipts until it reaches a recent head, when it switches to importing and processing blocks to provide a full node.
251259

252260
- Fast sync strategy.
253261
- Reduces processing demand in favor of bandwidth usage.

public/content/developers/docs/nodes-and-clients/run-a-node/index.md

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,13 @@ The sync mode and client you choose will affect space requirements, but we've es
9393

9494
| Client | Disk size (snap sync) | Disk size (full archive) |
9595
| ---------- | --------------------- | ------------------------ |
96-
| Geth | 500GB+ | 12TB+ |
97-
| Nethermind | 500GB+ | 12TB+ |
9896
| Besu | 800GB+ | 12TB+ |
9997
| Erigon | N/A | 2.5TB+ |
98+
| Geth | 500GB+ | 12TB+ |
99+
| Nethermind | 500GB+ | 12TB+ |
100+
| Reth | N/A | 2.2TB+ |
100101

101-
- Note: Erigon does not offer snap sync, but Full Pruning is possible (~500GB)
102+
- Note: Erigon and Reth do not offer snap sync, but Full Pruning is possible (~2TB for Erigon, ~1.2TB for Reth)
102103

103104
For consensus clients, space requirement also depends on client implementation and enabled features (e.g. validator slasher) but generally count with another 200GB needed for beacon data. With a large number of validators, the bandwidth load grows as well. You can find [details on consensus client requirements in this analysis](https://mirror.xyz/0x934e6B4D7eee305F8C9C42b46D6EEA09CcFd5EDc/b69LBy8p5UhcGJqUAmT22dpvdkU-Pulg2inrhoS9Mbc).
104105

@@ -155,6 +156,7 @@ Here are the release pages of clients where you can find their pre-built binarie
155156
- [Erigon](https://github.com/ledgerwatch/erigon/releases)
156157
- [Geth](https://geth.ethereum.org/downloads/)
157158
- [Nethermind](https://downloads.nethermind.io/)
159+
- [Reth](https://reth.rs/installation/installation.html)
158160

159161
It is also worth noting that client diversity is an [issue on the execution layer](/developers/docs/nodes-and-clients/client-diversity/#execution-layer). It is recommended that readers consider running a minority execution client.
160162

@@ -178,7 +180,7 @@ Developers sign released binaries with their PGP keys so you can cryptographical
178180

179181
Another form of verification is to make sure that the hash, a unique cryptographic fingerprint, of the software you downloaded matches the one provided by developers. This is even easier than using PGP, and some clients offer only this option. Just run the hash function on the downloaded software and compare it to the one from the release page. For example:
180182

181-
```
183+
```sh
182184
sha256sum teku-22.6.1.tar.gz
183185

184186
9b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767dde
@@ -214,15 +216,15 @@ Execution and consensus clients communicate via an authenticated endpoint specif
214216

215217
This token is generated automatically by the client software, but in some cases, you might need to do it yourself. You can generate it using [OpenSSL](https://www.openssl.org/):
216218

217-
```
219+
```sh
218220
openssl rand -hex 32 > jwtsecret
219221
```
220222

221223
#### Running an execution client {#running-an-execution-client}
222224

223225
This section will guide you through starting execution clients. It only serves as an example of a basic configuration, which will start the client with these settings:
224226

225-
- Specifies network to connect to, mainnet in our examples
227+
- Specifies network to connect to, Mainnet in our examples
226228
- You can instead choose [one of testnets](/developers/docs/networks/) for preliminary testing of your setup
227229
- Defines data directory, where all the data including blockchain will be stored
228230
- Make sure to substitute the path with a real one, e.g. pointing to your external drive
@@ -237,9 +239,9 @@ Please keep in mind that this is just a basic example, all other settings will b
237239
238240
##### Running Besu
239241

240-
This example starts Besu on mainnet, stores blockchain data in default format at `/data/ethereum`, enables JSON-RPC and Engine RPC for connecting consensus client. Engine API is authenticated with token `jwtsecret` and only calls from `localhost` are allowed.
242+
This example starts Besu on Mainnet, stores blockchain data in default format at `/data/ethereum`, enables JSON-RPC and Engine RPC for connecting consensus client. Engine API is authenticated with token `jwtsecret` and only calls from `localhost` are allowed.
241243

242-
```
244+
```sh
243245
besu --network=mainnet \
244246
--data-path=/data/ethereum \
245247
--rpc-http-enabled=true \
@@ -251,17 +253,17 @@ besu --network=mainnet \
251253

252254
Besu also comes with a launcher option which will ask a series of questions and generate the config file. Run the interactive launcher using:
253255

254-
```
256+
```sh
255257
besu --Xlauncher
256258
```
257259

258260
[Besu's documentation](https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Starting-node/) contains additional options and configuration details.
259261

260262
##### Running Erigon
261263

262-
This example starts Erigon on mainnet, stores blockchain data at `/data/ethereum`, enables JSON-RPC, defines which namespaces are allowed and enables authentication for connecting the consensus client which is defined by the `jwtsecret` path.
264+
This example starts Erigon on Mainnet, stores blockchain data at `/data/ethereum`, enables JSON-RPC, defines which namespaces are allowed and enables authentication for connecting the consensus client which is defined by the `jwtsecret` path.
263265

264-
```
266+
```sh
265267
erigon --chain mainnet \
266268
--datadir /data/ethereum \
267269
--http --http.api=engine,eth,web3,net \
@@ -272,9 +274,9 @@ Erigon by default performs a full sync with 8GB HDD which will result in more th
272274

273275
##### Running Geth
274276

275-
This example starts Geth on mainnet, stores blockchain data at `/data/ethereum`, enables JSON-RPC and defines which namespaces are allowed. It also enables authentication for connecting consensus client which requires path to `jwtsecret` and also option defining which connections are allowed, in our example only from `localhost`.
277+
This example starts Geth on Mainnet, stores blockchain data at `/data/ethereum`, enables JSON-RPC and defines which namespaces are allowed. It also enables authentication for connecting consensus client which requires path to `jwtsecret` and also option defining which connections are allowed, in our example only from `localhost`.
276278

277-
```
279+
```sh
278280
geth --mainnet \
279281
--datadir "/data/ethereum" \
280282
--http --authrpc.addr localhost \
@@ -289,7 +291,7 @@ Check [docs for all configuration options](https://geth.ethereum.org/docs/fundam
289291

290292
Nethermind offers various [installation options](https://docs.nethermind.io/nethermind/first-steps-with-nethermind/getting-started). The package comes with various binaries, including a Launcher with a guided setup, which will help you to create the configuration interactively. Alternatively, you find Runner which is the executable itself and you can just run it with config flags. JSON-RPC is enabled by default.
291293

292-
```
294+
```sh
293295
Nethermind.Runner --config mainnet \
294296
--datadir /data/ethereum \
295297
--JsonRpc.JwtSecretFile=/path/to/jwtsecret
@@ -299,6 +301,19 @@ Nethermind docs offer a [complete guide](https://docs.nethermind.io/nethermind/f
299301

300302
An execution client will initiate its core functions, chosen endpoints, and start looking for peers. After successfully discovering peers, the client starts synchronization. The execution client will await a connection from consensus client. Current blockchain data will be available once the client is successfully synced to the current state.
301303

304+
##### Running Reth
305+
306+
This example starts Reth on Mainnet, using default data location. Enables JSON-RPC and Engine RPC authentication for connecting the consensus client which is defined by the `jwtsecret` path, with only calls from `localhost` are allowed.
307+
308+
```sh
309+
reth node \
310+
--authrpc.jwtsecret /path/to/jwtsecret \
311+
--authrpc.addr 127.0.0.1 \
312+
--authrpc.port 8551
313+
```
314+
315+
See [Configuring Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) to learn more about data default data directories. [Reth's documentation](https://reth.rs/run/mainnet.html) contains additional options and configuration details.
316+
302317
#### Starting the consensus client {#starting-the-consensus-client}
303318

304319
The consensus client must be started with the right port configuration to establish a local RPC connection to the execution client. The consensus clients have to be run with the exposed execution client port as configuration argument.
@@ -309,13 +324,13 @@ If you plan to run a validator, make sure to add a configuration flag specifying
309324

310325
When starting a Beacon Node on a testnet, you can save significant syncing time by using a public endpoint for [Checkpoint sync](https://notes.ethereum.org/@launchpad/checkpoint-sync).
311326

312-
#### Running a consensus client
327+
#### Running a consensus client {#running-a-consensus-client}
313328

314329
##### Running Lighthouse
315330

316331
Before running Lighthouse, learn more on how to install and configure it in [Lighthouse Book](https://lighthouse-book.sigmaprime.io/installation.html).
317332

318-
```
333+
```sh
319334
lighthouse beacon_node \
320335
--network mainnet \
321336
--datadir /data/ethereum \
@@ -328,7 +343,7 @@ lighthouse beacon_node \
328343

329344
Install Lodestar software by compiling it or downloading the Docker image. Learn more in [docs](https://chainsafe.github.io/lodestar/) and more comprehensive [setup guide](https://hackmd.io/@philknows/rk5cDvKmK).
330345

331-
```
346+
```sh
332347
lodestar beacon \
333348
--rootDir="/data/ethereum" \
334349
--network=mainnet \
@@ -342,7 +357,7 @@ lodestar beacon \
342357
Nimbus comes with both consensus and execution clients. It can be run on various devices even with very modest computing power.
343358
After [installing dependencies and Nimbus itself](https://nimbus.guide/quick-start.html), you can run its consensus client:
344359

345-
```
360+
```sh
346361
nimbus_beacon_node \
347362
--network=mainnet \
348363
--web3-url=http://127.0.0.1:8551 \
@@ -354,7 +369,7 @@ nimbus_beacon_node \
354369

355370
Prysm comes with script which allows easy automatic installation. Details can be found in the [Prysm docs](https://docs.prylabs.network/docs/install/install-with-script).
356371

357-
```
372+
```sh
358373
./prysm.sh beacon-chain \
359374
--mainnet \
360375
--datadir /data/ethereum \
@@ -364,7 +379,7 @@ Prysm comes with script which allows easy automatic installation. Details can be
364379

365380
##### Running Teku
366381

367-
```
382+
```sh
368383
teku --network mainnet \
369384
--data-path "/data/ethereum" \
370385
--ee-endpoint http://localhost:8551 \

public/content/developers/docs/programming-languages/rust/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Need a more basic primer first? Check out [ethereum.org/learn](/learn/) or [ethe
5050
- [Ethers_rs](https://github.com/gakonst/ethers-rs)- _Ethereum library and wallet implementation_
5151
- [SewUp](https://github.com/second-state/SewUp) - _A library to help you build your Ethereum webassembly contract with Rust and just like develop in a common backend_
5252
- [Substreams](https://github.com/streamingfast/substreams) - _Parallelized blockchain data indexing technology_
53-
- [Reth](https://github.com/paradigmxyz/reth) Reth (short for Rust Ethereum, pronunciation) is a new Ethereum full-node implementation
53+
- [Reth](https://github.com/paradigmxyz/reth) Reth (short for Rust Ethereum) is a new Ethereum full-node implementation
5454
- [Awesome Ethereum Rust](https://github.com/Vid201/awesome-ethereum-rust) - _A curated collection of projects in the Ethereum ecosystem written in Rust_
5555

5656
Looking for more resources? Check out [ethereum.org/developers.](/developers/)

public/content/governance/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ There are various stakeholders in the [Ethereum community](/community/), each pl
4848
- **Node Operators**: these people run nodes that propagate blocks and transactions, rejecting any invalid transaction or block that they come across. [More on nodes](/developers/docs/nodes-and-clients/).
4949
- **EIP Authors**: these people propose changes to the Ethereum protocol, in the form of Ethereum Improvement Proposals (EIPs). [More on EIPs](/eips/).
5050
- **Validators**: these people run nodes that can add new blocks to the Ethereum blockchain.
51-
- **Protocol Developers** (a.k.a. "Core Developers" ): these people maintain the various Ethereum implementations (e.g. go-ethereum, Nethermind, Besu, Erigon at the execution layer or Prysm, Lighthouse, Nimbus, Teku, Lodestar at the consensus layer). [More on Ethereum clients](/developers/docs/nodes-and-clients/).
51+
- **Protocol Developers** (a.k.a. "Core Developers" ): these people maintain the various Ethereum implementations (e.g. go-ethereum, Nethermind, Besu, Erigon, Reth at the execution layer or Prysm, Lighthouse, Nimbus, Teku, Lodestar at the consensus layer). [More on Ethereum clients](/developers/docs/nodes-and-clients/).
5252

5353
_Note: any individual can be part of multiple of these groups (e.g. a protocol developer could champion an EIP, and run a beacon chain validator, and use DeFi applications). For conceptual clarity, it is easiest to distinguish between them, though._
5454

0 commit comments

Comments
 (0)