Episode 3 - Blockchain Node & Network
A blockchain has several core functions like storage, networking, consensus, etc. All these are coded and packaged together in the blockchain node software. This software is then distributed to the users willing to participate in the blockchain validation or mining process. Each such user runs this software on their physical or virtual machines.
Blockchain node software running on a physical or virtual machine and accepting connections is a blockchain node. So, it is not just the software, it is a node when is it running and accepting transactions and connections from users and other nodes.
The process of running the blockchain software with the needed configuration parameters is called running or hosting a node.
In general, each node stores all the state of the blockchain.
When several nodes connect with each other and exchange information like blocks and transactions, we get a blockchain network. So, in essence, a network is a collection of interconnected nodes.
Types of Blockchain Nodes
Miner and Validator nodes that participate in the block production process.
Archive nodes that keep all the historical state of the blockchain for storage and analysis purposes.
Non-Validator Full Nodes — Help with broadcasting tractions and store the state of the blockchain.
Light Nodes or light clients — Store only block headers to allow for easy verification of the state. They require fewer resources so they could run on mobile devices.
Chain Specification (Node Configuration)
To run a blockchain node, we need to provide it some basic configuration parameters like — the network to connect to (chain), which type of node to run (full, light, miner, archive, etc.) and a few other things. This configuration is called chain specification, or in short chain-spec.