Due to the decentralized nature of Bitcoin, sometimes key terms or definitions may unintentionally be misconstrued by members of the community. This is particularly problematic for those who want to learn about Bitcoin because they may get confused by variant vocabulary. For example, a Full Bitcoin Node to one person may mean something slightly different to another. In light of this, I propose a list of terms below to help the community unify the language in regards to Bitcoin Nodes.
Before we talk about Bitcoin Nodes, let’s talk about nodes broadly within the context of a distributed network model. In a distributed network, the simplest way to define a node would be to say it is a point of intersection or connection with the network. It can act as both a redistribution point or a communication endpoint. This loose definition helps us better understand the different ways a Bitcoin Node functions within the Bitcoin Network. The following suggested definitions should all collectively be considered as Bitcoin Nodes.
A Full Node
A Full Bitcoin Node is an integral component of the Bitcoin Network because it validates the blockchain. It does this by downloading a copy of it. It is also capable of relaying transactions and recent blocks, but this isn’t required to be considered a Full Node. Now when you first open up a Full Node client like Bitcoin Core, most people are sitting behind a firewall. In this case, your Full Node is limited in the number of connections it can connect to (around 8) and only looks for Super Nodes a.k.a. Listening Nodes. The reason for this is because your Full Node isn’t publicly connectable yet.
A Super Node a.k.a. Listening Node
In a distributed network, a Super Node functions as a highly connected redistribution point as well as a relay station. Therefore this would be an appropriate term to describe a publicly connectable Full Bitcoin Node. This means many nodes can connect to it to obtain relayed transactional data and blockchain history. This may require more bandwidth and CPU than a Full Node because of all the extra work it’s doing. These Super Nodes are normally on 24/7 and are reliable focal points for other nodes to connect to. In order to activate this within a Bitcoin client functioning as a node, you must make it publicly connectable. One way to do this is to bypass any potential firewalls and/or setup port forwarding. Some manuals suggest running bitcoind(bitcoin daemon) in the background instead of Bitcoin-Qt, but this isn’t necessary.
A Miner’s Node
Today, miners utilize mining programs separate from Bitcoin Core to mine Bitcoin blocks. Some miners choose to solo mine and therefore use their own Full Node to maintain a full copy of the blockchain via bitcoind. Others choose to pool mine and work together to solve blocks. In this case, the admin of the pool maintains a Full Node while pool miners contribute their hashpower. A third method, though highly discouraged and harmful to the network, is to SPV mine by mining on top of blocks before fully validating them. These SPV pool miners typically trust another mining pool’s Full Node as a reference to build on top of. In light of this, a Miner’s Node can be further subcategorized as either a Solo Miner’s Full Node or a Pool Miner’s Full Node.
A Simplified Payment Verification(SPV) Client a.k.a. Light Wallets
SPV clients like Breadwallet (the Bitcoin App for smartphones) are not Full Nodes because they don’t download the blockchain. SPV clients do this by ensuring your transactions are put in a block and then confirm that other blocks are being added to it. Therefore in the loosest sense, an SPV Client may fit the criteria of a node. However, they don’t do much to support and validate the distributed trustless ledger of Bitcoin. Instead, they store just copies of all the headers of all the blocks in the blockchain that are taken from other Super Nodes. Therefore, SPV clients are unable to verify any transactions in the chain because they don’t have access to it. In this way, they function as communication endpoints as they are are unable to relay transactions or blockchain data. Additionally, it is important to put your own full nodes behind them to securely use SPV clients as wallets.
Above, I’ve briefly described the various roles a Bitcoin Node can have. I’ve also hinted at the necessary steps a user would need to take in order to function in those roles. Hopefully by utilizing this list of terminology, Bitcoin users will be empowered to understand what exact role they are playing on the Bitcoin Network and be informed of the steps they can take if they want to perform a different one.
*Special thanks to Luke-Jr. for reviewing this article.
Remember to give me claps to the left, donations below, and share with your friends! Until next time, onwards and upwards. 😁