-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation for Ethereum execution clients #309
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this one as well! I think it's a great shape now, only some info on clients to be edited
| [Nimbus](https://github.com/status-im/nimbus-eth1) | Nim | Nimbus | Development | | ||
| [Silkworm](https://github.com/erigontech/silkworm) | C++ | Erigon | Development | | ||
| [JS Client](https://github.com/ethereumjs/ethereumjs-monorepo) | Typescript | Paradigm | Development | | ||
| [Akula](https://github.com/akula-bft/akula) | Rust | Akula Developers | Deprecated | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe I would split the table here to have clear overview of current and historical clients. At first glance it just feels weird to have it all in one place but maybe it works just with Status column, I'll let others comment on this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Btw there is also a rust execution client in development by lambdaclass https://github.com/lambdaclass/ethereum_rust
|
||
The overwhelming majority of node operators are currently using Geth as an Execution Client. | ||
In the interest of supporting the health of the Execution Layer (formerly ETH1), it is recommended to use different clients. | ||
[Why?](https://clientdiversity.org/#why) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be directly in the text with link over [client diversity] or so. There is also a great ethereum.org page on client diversity
|
||
### Besu | ||
Developed by the Hyperledger Foundation in Java, Besu (Hyperledger Besu) is distinguished for its enterprise-grade features and compatibility with various Hyperledger projects. | ||
It supports both public and private networks such as Rinkeby, Ropsten, and Goerli, offering robust command-line tools and a JSON-RPC API. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all of these testnets are deprecated, it shouldnt even mention them :) I would update this and maybe remove the line about testnets altogether
|
||
### Erigon | ||
Initially a fork of Geth (Go Ethereum), Erigon focuses on optimizing performance, fast synchronization capabilities, and reducing disk space usage. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the original name was turbo-geth, worth mentioning here
|
||
### Erigon | ||
Initially a fork of Geth (Go Ethereum), Erigon focuses on optimizing performance, fast synchronization capabilities, and reducing disk space usage. | ||
Erigon's architecture allows it to complete a full archive node sync in under three days with less than 2 TB of data storage, making it ideal for resource-efficient node deployments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the 2tb is old information, now it's almost 3. Also the 3 days are subjective because it depends on the machine. In this part, I would highlight that erigon came up with a new generation of handling MPT archive which enables modern archive nodes to take much less data. With some links to resources on their approach
|
||
### Geth | ||
As the official Go implementation of Ethereum, Geth (Go Ethereum) enjoys widespread adoption among developers and users alike. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's called 'official' sometimes but I would avoid this term here, I think it doesnt really makes sense in ethereum context. But it could be mention it's one of the original implementation, therefore the oldest currently maintained EL
## Clients in development | ||
Noteworthy Features: | ||
- [Private Networks](https://docs.nethermind.io/fundamentals/private-networks) | ||
- [Prometheus and Grafana](https://docs.nethermind.io/monitoring/metrics/grafana-and-prometheus) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know about metrics being a higlight here, every single client supports it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
they have plugin system, snap support, bunch of cool features
|
||
### Reth | ||
Reth (Rust Ethereum) is a modular and efficient Ethereum client designed for user-friendliness and high performance. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here I would put emphasis on the performance and it's inspiration from erigon architecture
|
||
### Silkworm | ||
|
||
Modular C++ implementation by Erigon team. Also called Erigon++. | ||
Silkworm is a C++ implementation of the Ethereum Execution Layer protocol, aiming to be the fastest Ethereum client. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it aiming to be fastest? I think their sales pitch is modularity
|
||
### JS Client | ||
The TypeScript-based JavaScript client by Paradigm, part of the EthereumJS monorepo, offers flexibility and ease of integration for Ethereum's execution layer functionalities. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
js client is not from paradigm lol. At least afaik? It was always developed by EF, led by Holger..
The highlight is that they implement EIPs very soon before hardfork and give people opportunity to test stuff
Updated the documentation to include an overview table, noteworthy features of production clients, distribution insights, and additional resources