Generally, there are three distinct types of nodes – miner nodes, full nodes, and light nodes. Miner nodes can propose blocks and have the complete history of the blockchain. Full nodes have the complete history of the blockchain but cannot propose new blocks and light nodes rely on full nodes for blockchain’s history.
A key feature which has touted blockchain as a revolutionary ledger-based technology is the ability for the network to operate in a decentralised form. In a typical public permissionless blockchain, there is no single point of authority or an overall server which dictates the actions of the rest of the network. Instead, blockchain networks rely on an overall consensus which is critical to the validity and security of the data held on the network. The consensus is a mandate of standards each block on the network must adhere to. Readers who are interested in finding more about how consensus is achieved can refer to our previous bridge here. This data is held on the network through a series of nodes. In popular blockchains like the Bitcoin network, it is typical for three types of nodes to operate on the network namely: full nodes, light nodes and mining nodes. Full and light nodes share similar responsibilities of holding and further securing data on a network, mining nodes, however, are associated with the creation of new blocks to a blockchain.
Before we explore the role of nodes, it is important to identify a blockchain is essentially an open ledger of data transactions. Anyone can view the information and different nodes types may contribute to the expansion, maintenance and/or security of data held on the network.
What is a node?
Any device connected to the blockchain can be classed as a node and examples include: servers, computers, laptops, online or desktop wallets and mobile phones. All of the nodes are connected to the blockchain in some way and are constantly updating each other with the latest information being added to the blockchain. Nodes are a critical component to the infrastructure of a blockchain. They act as further validation for the ledger and allow anyone to transparently view transactions or data conducted or held on the network. The core benefits of nodes are to ensure the data being held on the blockchain is valid, secure and accessible to authorised parties.
An example of an end-to-end working node transaction
A user has 5 ETH and they would like to transfer 2.5 ETH to a different wallet. The full nodes on the sending wallet will confirm the user has the coins available to send. Once this has been validated (by the receiving full nodes), miners will create a block and likely verify the transaction through a proof of work.
What is the role of a node?
The objective of nodes is to maintain the reliability of the data stored on a blockchain. The reality is that an entire blockchain history can be stored with a single full node running it. The more nodes a blockchain has, the more decentralised it becomes and thus becoming resilient to threats such as system failures or power outages. When a new piece of data (block) is added to a blockchain, a node will communicate the block to other nodes on the network. Based on the validity of the new block and the type of node, full nodes can reject or accept the block. Once a new block is accepted by the node, the information is stored and saved on top of the pre-existing blocks.
To summarise the role of a node is to:
- Validate a new block
- Store and save the transaction history of a block
- Update other nodes in the blockchain to ensure all nodes on th blockchain have the latest information
What are the different types of Nodes?
Nodes are typically classified into two categories: full nodes and light nodes (also known as lightweight or Simple Payment Verification (SPV) nodes). Full nodes comprise a single copy of an entire blockchain history including transactions, timestamps and all created blocks. For example, a full Bitcoin node would host all information regarding every single transaction since the start of the Bitcoin network to the present day.
Light nodes or SPV nodes are typically downloaded wallets and are connected to full nodes to further validate information stored on the blockchain. They are much smaller in size and only hold information about partial blockchain histories.
Full and Super Nodes
A full node stores all information held on a blockchain and acts a core server across decentralised blockchain networks. Each block in a blockchain is verified, authenticated and stored by all the full nodes in a network.
Figure 1: Example of Full Nodes on a Decentralised Blockchain
In the above illustration, we illustrate a typical blockchain network connected by six full nodes. Each full node will store a copy of all blockchain transactions which means full nodes are data-heavy. Due to this, they require more advanced computing power and energy and thus, are expensive. It’s estimated that the Bitcoin network has over 10,000 operational full nodes.
Full nodes are essential to the overall security and validity of a blockchain network and have specific responsibilities which differentiate them from other types of nodes. Two key differentiating features include:
- Validation of signatures in each block transaction: once a new block is being added to a blockchain, a full node inspects each digital signature to authenticate the transaction. A digital signature is usually the private key the sender of a transaction uses to sign each transaction.
- Key decision enforcer of consensus rules: full nodes have the authority and decision making influence to reject new transactions or blocks. This includes if other nodes on the network have validated the incoming node. Reasons for rejecting newly formed transactions could include incorrectly formatted blocks or a duplication of a transaction (potentially fraudulent transactions).
Full nodes are often run by volunteers or associated stakeholders who create full nodes to further decentralise blockchains. Running full nodes allows users to validate incoming transactions as opposed to relying on others to validate for them. It is unlikely for users who operate full nodes on popular blockchains (such as Bitcoin) to receive rewards for doing so (unlike miner nodes).
Light nodes (also known as lightweight or thin nodes)
Light nodes have a similar purpose to full nodes however instead of holding a complete history of a blockchain, they typically hold a block header which seeks to support and query the validity of previous transactions. The block header is a detailed summary of a specific block and includes information relating to a particular previous block it is connected to. Information stored in the block header include: the timestamp of the block and a unique identifying number (also known as a nonce).
Figure 2: A Network of Full Nodes Linked With Light Nodes
As illustrated in Figure 2, light nodes are connected to full nodes (commonly referred to as their parent nodes) and allow access for light nodes to verify transactions which have been included in a specific block. Unlike full nodes, light nodes do not store a copy of a blockchain fully history and rely totally on full nodes to provide them with validated data.
Using light nodes supports a blockchain to further decentralise and grow a network. As light nodes hold and process less data than full nodes, they require much fewer resources to maintain and run. This allows a blockchain network to grow more sustainably compared to full nodes. Examples of light nodes include desktop or online wallets.
Mining nodes are nodes which produce blocks for the blockchain. You may be familiar with the term “bitcoin miners”; miners are classified as nodes. The role of these miners is to complete an action such as finding a nonce that satisfies for the current network difficulty (typically done through the brute force use of high-performance computer equipment). The first to broadcast their results and have attained validation from the full nodes is granted the right to add to the block to the blockchain. Readers can revisit how mining works in our previous article here.
In response to solving cryptographic problems, the miner is typically rewarded through the issuance of cryptocurrencies or tokens.
Mining nodes are only responsible for creating blocks to add to the blockchain, they are not responsible for the maintenance or validity of future blocks (unlike full nodes). Mining nodes offer users the opportunity to work with others and increase the rate of receiving rewards over a period of time.
It is worth mentioning that the process of mining consumes energy and miners typically have high start-up costs in purchasing the computer power required. This has led to the popularity of mining pools which exists to pool hashrate from multiple sources/users.
Figure 3: Full, Light and Mining Nodes illustrated on a Blockchain
Key differences between mining nodes and full nodes
When discussing the role of full nodes we mentioned that users who run full nodes are not rewarded. Instead, they are incentivised on preserving and further decentralising the blockchain. This is different to users who mine and are typically rewarded through coinbase rewards of native tokens (such as bitcoinbitcoinlink1).
Another key difference between mining and running a full node is that a miner is required to run a full node to identify the criteria (consensus) for valid transactions. Without this information, a miner would be unable to add the correct blocks to a network and be rewarded. On the other hand, a full node does not require a miner to exist. A device (such as a computer or server) has the ability to store and receive data without being able to propose new blocks.
We have explored roles played by different types of nodes as part of the core infrastructure of a blockchain. Nodes have the ability to validate a blockchain and follow strict criteria for new blocks to join.
Nodes are crucial for secure and trusted blockchain transactions. Figure 4 outlines the core features of the node types we have discussed and the key characteristics which make them an essential part of a blockchain network.
Figure 4: Key Characteristics of Node Types