From c564686c16039c7db479aaba9a9401fd8d1b8609 Mon Sep 17 00:00:00 2001 From: Noah Page Date: Thu, 11 Aug 2022 15:32:13 -0400 Subject: [PATCH 1/5] Update index.md --- .../docs/nodes-and-clients/index.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/content/developers/docs/nodes-and-clients/index.md b/src/content/developers/docs/nodes-and-clients/index.md index adb52a6153d..bab9399198c 100644 --- a/src/content/developers/docs/nodes-and-clients/index.md +++ b/src/content/developers/docs/nodes-and-clients/index.md @@ -123,13 +123,13 @@ The Ethereum community maintains multiple open-source execution clients (previou 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. -| Client | Language | Operating systems | Networks | Sync strategies | State pruning | -| ----------------------------------------------- | -------- | --------------------- | ------------------------------------------ | ------------------- | --------------- | -| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Snap, Full | Archive, Pruned | -| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Görli, Ropsten, Rinkeby, and more | Fast, Beam, Archive | Archive, Pruned | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, Görli, and more | Fast, Full | Archive, Pruned | -| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Full | Archive, Pruned | -| [Akula](https://akula.app) | Rust | Linux | Mainnet, Görli, Rinkeby, Ropsten, and more | Full | Archive, Pruned | +| Client | Language | Operating systems | Networks | Sync strategies | State pruning | +| ----------------------------------------------- | -------- | --------------------- | ------------------------------------------ | ---------------------------- | ---------------- | +| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, Rinkeby | Snap, Full | Archive, Pruned | +| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, Rinkeby, and more | Fast, Beam, Archive | Archive, Pruned | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, Rinkeby, and more | Fast, Full | Archive, Pruned | +| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Rinkeby, Ropsten, and more | Full | Archive, Pruned | +| [Akula](https://akula.app) | Rust | Linux | Mainnet, Sepolia, Görli, Rinkeby, Ropsten | Full | Archive, Pruned | **Note that OpenEthereum [has been deprecated](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) and is no longer being maintained.** Use it with caution and preferably switch to another client implementation. @@ -257,13 +257,13 @@ There are multiple consensus clients (previously known as 'Eth2' clients) to sup [View consensus clients](/upgrades/get-involved/#clients). -| Client | Language | Operating systems | Networks | -| ----------------------------------------------------------- | ---------- | --------------------- | ------------------------------------- | -| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Beacon Chain, Prater | -| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Beacon Chain, Prater | -| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Prater, Pyrmont | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Beacon Chain, Prater | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Beacon Chain, Gnosis, Prater, Pyrmont | +| Client | Language | Operating systems | Networks | +| ----------------------------------------------------------- | ---------- | --------------------- | ----------------------------------------------- | +| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, and more | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, and more | +| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, and more | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, and more | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Görli, Ropsten, and more | ## Hardware {#hardware} From 3961690fbbbfd90ff070bc2c5e2851d68a3ca714 Mon Sep 17 00:00:00 2001 From: Noah Page Date: Thu, 11 Aug 2022 22:07:48 -0400 Subject: [PATCH 2/5] Update index.md --- .../developers/docs/nodes-and-clients/index.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/content/developers/docs/nodes-and-clients/index.md b/src/content/developers/docs/nodes-and-clients/index.md index bab9399198c..ff26465a288 100644 --- a/src/content/developers/docs/nodes-and-clients/index.md +++ b/src/content/developers/docs/nodes-and-clients/index.md @@ -23,7 +23,7 @@ A "node" is a computer running Ethereum client software. A client is an implemen You can see a real-time view of the Ethereum network by looking at this [map of nodes](https://etherscan.io/nodetracker). -Many [Ethereum execution clients](/developers/docs/nodes-and-clients/#execution-clients) and [consensus clients](/developers/docs/nodes-and-clients/#consensus-clients) exist, in a variety of programming languages such as Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim and Java. What these implementations have in common is they all follow a formal specification. These specifications dictate how the Ethereum network and blockchain functions. +Many Ethereum [execution clients](/developers/docs/nodes-and-clients/#execution-clients) and [consensus clients](/developers/docs/nodes-and-clients/#consensus-clients) exist, in a variety of programming languages such as Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim and Java. What these implementations have in common is they comply with the specifications for their client type. ([Execution specifications](https://github.com/ethereum/execution-specs) and [consensus specifications](https://github.com/ethereum/consensus-specs) These specifications dictate how clients operate with the Ethereum network. ![Coupled execution and consensus clients](./eth1eth2client.png) Simplified diagram of a coupled execution and consensus client. @@ -41,9 +41,13 @@ If you want to [run your own node](/developers/docs/nodes-and-clients/run-a-node ### Light node {#light-node} -Instead of downloading every block, light nodes download block headers. These headers only contain summary information about the contents of the blocks. Any other information required by the light node gets requested from a full node. The light node can then independently verify the data they receive against the state roots in the block headers. Light nodes enable users to participate in the Ethereum network without the powerful hardware or high bandwidth required to run full nodes. Eventually, light nodes might run on mobile phones or embedded devices. The light nodes do not participate in consensus (i.e. they cannot be miners/validators), but they can access the Ethereum blockchain with the same functionality as a full node. +- Stores just the headers of each block. (These headers only contain summary information about the contents of the block) +- Requests any other information it requires from a full node. +- Can independently verify the data it receives from full nodes against the state roots in the block headers it stores. +- Enables users to participate in the Ethereum network without the powerful hardware or high bandwidth required to run full nodes. +- Does not participate in consensus (i.e. they cannot be miners/validators), but they can access the Ethereum blockchain with the same functionality as a full node. -The execution client Geth includes a [light sync](https://github.com/ethereum/devp2p/blob/master/caps/les.md) option. However, a light Geth node relies upon full nodes serving light node data. Few full nodes opt to serve light node data, meaning light nodes often fail to find peers. There are currently no production-ready light clients on the consensus layer; however, several are in development. +Eventually, light nodes might run on mobile phones or embedded devices. The execution client Geth includes a [light sync](https://github.com/ethereum/devp2p/blob/master/caps/les.md) option. However, a light Geth node relies upon full nodes serving light node data. Few full nodes opt to serve light node data, meaning light nodes often fail to find peers. There are currently no production-ready light clients on the consensus layer; however, several are in development. There are also potential routes to providing light client data over the [gossip network](https://www.ethportal.net/). This is advantageous because the gossip network could support a network of light nodes without requiring full nodes to serve requests. @@ -77,7 +81,7 @@ Running your own node enables you to use Ethereum in a truly private, self-suffi A diverse set of nodes is important for Ethereum’s health, security and operational resiliency. - They provide access to blockchain data for lightweight clients that depend on it. In high peaks of usage, there need to be enough full nodes to help light nodes sync. Light nodes don't store the whole blockchain, instead they verify data via the [state roots in block headers](/developers/docs/blocks/#block-anatomy). They can request more information from blocks if they need it. -- Full nodes enforce the proof-of-work consensus rules so they can’t be tricked into accepting blocks that don't follow them. This provides extra security in the network because if all the nodes were light nodes, which don't do full verification, block producers could attack the network and, for example, create blocks with higher rewards. +- Full nodes enforce the consensus rules so they won't accepting blocks that don't follow them. This provides extra security in the network because if all the nodes were light nodes, which don't do full verification, block producers could attack the network and, for example, create blocks with higher rewards. If you run a full node, the whole Ethereum network benefits from it. @@ -103,8 +107,8 @@ If you're more of a technical user, learn how to [spin up your own node](/develo ### Resources {#resources} -- [Running Ethereum Full Nodes: A Complete Guide](https://www.coindesk.com/learn/ethereum-nodes-and-clients-a-complete-guide/) - [Running your own Ethereum node](/developers/docs/nodes-and-clients/run-a-node) +- [Running Ethereum Full Nodes: A Complete Guide](https://www.coindesk.com/learn/ethereum-nodes-and-clients-a-complete-guide/) - [Geth documentation](https://geth.ethereum.org/) - [How To Install & Run a Lighthouse Node](https://hackernoon.com/how-to-run-an-eth-20-beacon-node-using-the-lighthouse-macos-client-7t2u3wtv) - [Nimbus node quick-start guide](https://nimbus.guide/quick-start.html) @@ -119,7 +123,7 @@ On the other hand, if you run a client, you can share it with your friends who m ## Execution clients (formerly 'Eth1 clients') {#execution-clients} -The Ethereum community maintains multiple open-source execution clients (previously known as 'Eth1 clients', or just 'Ethereum clients'), developed by different teams using different programming languages. This makes the network stronger and more diverse. The ideal goal is to achieve diversity without any client dominating to reduce any single points of failure. +The Ethereum community maintains multiple open-source execution clients (previously known as 'Eth1 clients', or just 'Ethereum clients'), developed by different teams using different programming languages. This makes the network stronger and more [diverse](/developers/docs/nodes-and-clients/client-diversity/). The ideal goal is to achieve diversity without any client dominating to reduce any single points of failure. 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. From 3b4336927935c815f37323d28877274bd0f72dc7 Mon Sep 17 00:00:00 2001 From: Noah Page Date: Thu, 11 Aug 2022 22:31:33 -0400 Subject: [PATCH 3/5] Update index.md --- src/content/developers/docs/nodes-and-clients/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/content/developers/docs/nodes-and-clients/index.md b/src/content/developers/docs/nodes-and-clients/index.md index ff26465a288..66dde57c6a8 100644 --- a/src/content/developers/docs/nodes-and-clients/index.md +++ b/src/content/developers/docs/nodes-and-clients/index.md @@ -95,8 +95,6 @@ If you're more of a technical user, learn how to [spin up your own node](/develo ### Projects {#projects} -**Select a client and follow their instructions** - **ethnode -** **_Run an Ethereum node (Geth or OpenEthereum) for local development._** - [GitHub](https://github.com/vrde/ethnode) From c9e70fdc80364e2fcb31f9763553f9e51b0b1948 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Fri, 14 Oct 2022 20:48:31 -0600 Subject: [PATCH 4/5] Update src/content/developers/docs/nodes-and-clients/index.md --- src/content/developers/docs/nodes-and-clients/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/developers/docs/nodes-and-clients/index.md b/src/content/developers/docs/nodes-and-clients/index.md index db89b00e3d6..00771369d4e 100644 --- a/src/content/developers/docs/nodes-and-clients/index.md +++ b/src/content/developers/docs/nodes-and-clients/index.md @@ -78,7 +78,7 @@ If you want to [run your own node](/developers/docs/nodes-and-clients/run-a-node - Enables users to participate in the Ethereum network without the powerful hardware or high bandwidth required to run full nodes. - Does not participate in consensus (i.e. they cannot be miners/validators), but they can access the Ethereum blockchain with the same functionality as a full node. -Eventually, light nodes might run on mobile phones or embedded devices. The execution client Geth includes a [light sync](https://github.com/ethereum/devp2p/blob/master/caps/les.md) option. However, a light Geth node relies upon full nodes serving light node data. Few full nodes opt to serve light node data, meaning light nodes often fail to find peers. There are currently no production-ready light clients on the consensus layer; however, several are in development. +The execution client Geth includes a [light sync](https://github.com/ethereum/devp2p/blob/master/caps/les.md) option. However, a light Geth node relies upon full nodes serving light node data. Few full nodes opt to serve light node data, meaning light nodes often fail to find peers. There are currently no production-ready light clients on the consensus layer; however, several are in development. There are also potential routes to providing light client data over the [gossip network](https://www.ethportal.net/). This is advantageous because the gossip network could support a network of light nodes without requiring full nodes to serve requests. From b8d29b81c45752859c5ed73cbfaefc8c08210252 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Fri, 14 Oct 2022 21:51:50 -0500 Subject: [PATCH 5/5] Fix merge --- src/content/developers/docs/nodes-and-clients/index.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/content/developers/docs/nodes-and-clients/index.md b/src/content/developers/docs/nodes-and-clients/index.md index 00771369d4e..a546e18e8d0 100644 --- a/src/content/developers/docs/nodes-and-clients/index.md +++ b/src/content/developers/docs/nodes-and-clients/index.md @@ -72,11 +72,7 @@ If you want to [run your own node](/developers/docs/nodes-and-clients/run-a-node ### Light node {#light-node} -- Stores just the headers of each block. (These headers only contain summary information about the contents of the block) -- Requests any other information it requires from a full node. -- Can independently verify the data it receives from full nodes against the state roots in the block headers it stores. -- Enables users to participate in the Ethereum network without the powerful hardware or high bandwidth required to run full nodes. -- Does not participate in consensus (i.e. they cannot be miners/validators), but they can access the Ethereum blockchain with the same functionality as a full node. +Instead of downloading every block, light nodes download block headers. These headers only contain summary information about the contents of the blocks. Any other information required by the light node gets requested from a full node. The light node can then independently verify the data they receive against the state roots in the block headers. Light nodes enable users to participate in the Ethereum network without the powerful hardware or high bandwidth required to run full nodes. Eventually, light nodes might run on mobile phones or embedded devices. The light nodes do not participate in consensus (i.e. they cannot be miners/validators), but they can access the Ethereum blockchain with the same functionality as a full node. The execution client Geth includes a [light sync](https://github.com/ethereum/devp2p/blob/master/caps/les.md) option. However, a light Geth node relies upon full nodes serving light node data. Few full nodes opt to serve light node data, meaning light nodes often fail to find peers. There are currently no production-ready light clients on the consensus layer; however, several are in development.