What are nodes?
Nodes are computers that run software that can verify blocks and transaction data. Since blockchain is a network of nodes, where each computer runs the software to maintain the state of the Ethereum network.
On the technical side, a node is any instance of Ethereum client software that is connected to other computers also running Ethereum software, forming a network.
Is the Ethereum client software the same as the EVM(Ethereum Virtual Machine)?
No, they are two completely different pieces of software, each having different functionality.
Ethereum Client :
Ethereum Virtual Machine (EVM):
A node to run has 2 clients:
Remember, a client is just a piece of software, so this software can be written in different programming languages by different companies. This helps in reducing the network's dependency on a single codebase, eliminating the single point of failure. At the end of the day, this software has to follow a single specification that dictates how the Ethereum network functions and blockchain works.
Can we run both clients on the same computer?
Yes, both the clients can be run on the same computer.
For a computer to be called a node, it needs to run only 1 of these clients. Based on what type of clients a node is running, they can be categorized into different types of nodes. Each type of node consumes data differently.
They also synchronize at different speeds which refers to how quickly a particular node can be up-to-date with the state of the Ethereum network.
Recommended by LinkedIn
Types of Nodes
1. Full Nodes
These types of nodes do a block-by-block validation of the blockchain by downloading and verifying the block body and state data for each block.
They run both execution clients and consensus clients.
Some full nodes start from the genesis block and verify every single block in the history of the blockchain, while other full nodes start their verification from a more recent block that they trust to be valid. Either way, for a node to be qualified as a full node, it needs to store the most recent 128 block's data.
Older blocks of data can be deleted to save disk space and this can also be regenerated when needed.
2. Archive Nodes
Archive nodes are full nodes that verify every block from Genesis and never delete any of the downloaded data.
These nodes store data in sizes of terabytes, which makes it less attractive for average users but can be handy for services like block explorers, wallet vendors, and chain analytics.
3. Light Nodes
Light nodes store only the block headers instead of storing the whole block. Headers only store the summary of the block information. If any other information is needed, it will request the data from the full nodes.
Light nodes can independently verify the data they receive from the block headers from the state root(The state root is a cryptographic hash (usually a Merkle tree root) that summarizes the entire state of the blockchain at a specific point in time).
They contain execution clients only. So they do not participate in consensus but they can access the Ethereum blockchain with the same functionality and security guarantees as a full node.