(1/16) @ethereum Basics: Nodes
At the end of the day, Ethereum is running atop IRL computers, each running the software that powers the World Computer. But what actually is a node? How does it relate to the different parts of Ethereum? How do all the pieces communicate?
(3/16) Think of a node as a physical computer in the real world. Many people, myself included, use a machine like this one.
(you can also run a node on a cloud provider, like AWS or Google Cloud, but they are indistinguishable for our purposes)
(4/16) A node is both computer and the atomic unit of the @ethereum network.
Once running, a node operator can stake $ETH, become a validator and participating in Proof of Stake (PoS). Staking is done in 32 $ETH increments, but a single node can support many validators.
(5/16) Zooming into the computer, the node is actually two independent pieces of software: a consensus client and an execution client.
There are 5 consensus clients and 4 execution clients, any combination will make a node.
(6/16) Before the Merge, you could think of @ethereum as two independent (closely tracking) blockchains: mainnet and the beacon chain.
Mainnet tracked all the changes within the EVM, and was previously secured by Proof of Work (PoW).
This chain was run by execution clients.
twitter.com/SalomonCrypto/status/1574618174879735808
(7/16) The beacon chain was launched in 2020, 5 years after the launch of @ethereum. Its purpose it to contain all the logic needed operate Proof of Stake (PoS).
This chain was run by consensus clients.
twitter.com/SalomonCrypto/status/1579594609855934465
(8/16) In mid-September 2022, the two chains of @ethereum went from "closely tracking" to one single chain. Mainnet (now called the execution chain) replaced the security guarantees offered by PoW for the security of the beacon chain.
And the beacon chain is secured by $ETH.
twitter.com/SalomonCrypto/status/1570307219027283969
(9/16) This is very much reflected in the @ethereum we have today. Each node runs two, independent, pieces of software.
These clients communicate directly with other like-clients in a peer-to-peer (P2P) network.
They communicate to each other within each node.
(10/16) In a P2P network, individual nodes are connected to each other (as opposed to a network where nodes connect to a centralized server).
Point is, under the hood @ethereum actually two networks... it just so happens that both networks exist between the same nodes.
(11/16) Within a node, the consensus and execution client communicate via a remote procedure call (RPC) protocol (specifically using the JSON data format, so JSON-RPC).
JSON-RPC is an API that defines both the data structures and the rules for processing them.
twitter.com/SalomonCrypto/status/1553804814508642304
(12/16) You may have seen the term JSON-RPC before, maybe while clicking through your crypto wallet. The interface by which consensus clients communicate with execution clients is the same interface by which your wallet interacts with the EVM in order to create a transactions.
(13/16) In fact that's exactly how you should understand your wallet. Today, it is (probably) communicating with a centralized service like @AlchemyPlatform or @infura_io.
These companies run nodes locally and then allow people to interact with them over the web.
(14/16) In summary, an @ethereum node is a real computer that runs two pieces of software: an execution client and a consensus client. The former is responsible for the EVM, the later for PoS. They communicate internally via an API, but work in their own P2P networks.
(15/16) Before you go, let's talk about the future. 4 months ago, an @ethereum node was just an execution client (and a lot more GPUs).
This version of a node isn't the final form... we are BARELY passed the Merge!
(16/16) @ethereum was born ~7 years ago. For you veterans, I understand how long that feels and how this sounds.
But here's the thing... we STILL are SO EARLY. Need reasons to believe? Let me show you what's coming.
Looking to build an empire? The node will be your platform!
twitter.com/SalomonCrypto/status/1589302062201700352