This introduction to Bitcoin Nodes was originally published at Bruno’s Bitfalls website, and is reproduced here with permission.
You’ll often hear the word node thrown around in blockchain and cryptocurrency circles. If you’ve read our intro to blockchain (and we highly recommend you do that), one of the characters in the comic there that’s writing down transactions on a piece of paper is actually a node. That introduction is quite simplified, however — so let’s explain the concept of nodes in a bit more detail now.
One node is a computer running specific software. In the case of Bitcoin, one node is a Bitcoin program which connects to other Bitcoin nodes, i.e. other Bitcoin programs on the same machine, or on other machines which can be across the street or on the other side of the planet. There are several types and several versions of Bitcoin software. By picking a specific version of a specific Bitcoin program, a user “votes” for certain changes in the Bitcoin protocol. For example, if a bunch of users suggest the increase of 21 million total BTC to 42 million, the majority of the network is required to vote “yes” by installing the software implementing this change. Code changes are, thus, democratic.
Where this idea falls apart is in the fact that there are very few Bitcoin nodes out there — a mere 10000 currently.
In contrast, Ethereum — a cryptocurrency five years younger — already has twice as many:
Neither number is very impressive from a global perspective. According to some calculations, running a Bitcoin node on AWS (Amazon’s cloud service) costs around $10 per month. This means that taking over 10000 brand new nodes takes $100,000 per month, or only $1.2m per year — which is pocket change to any Bitcoin early adopter.
A list of node software you can install, along with their pros, cons, and special features, can be found here.
It’s important to note that validation nodes are purely an expense for the users running them. They give their users nothing. Bitcoin Core, for example, needs around 150GB of disk space, 2GB of RAM, and a fast and uncapped internet connection with at least 50KB of constant upload speed available just to run. It’s not uncommon to need to upload over 200GB of traffic per month when running a single node. Validation nodes are volunteer nodes and are useful for the system’s decentralization, but as they become ever more expensive to run, so too does the number of nodes drop. Add to that the mounting disillusion with Bitcoin’s theoretical decentralization due to the fact that bankers seem to have taken over the protocol’s development, and the fact that Bitcoin’s price is being pumped by crime syndicates, and it’s no surprise that the number of nodes dropped by 20% in a single month — from 12000 to 10000. As more nodes disappear, so does centralization. A hostile takeover becomes more and more probable.
A mining node is a validation node which also uses the hardware of your own or a rented machine to guess the combinations of numbers and letters needed to validate and verify a block. A mining node can team up with other nodes and send guesses to a common pool (pool mining) to increase chances of guessing, but then counts as only one node.
Because most new miners opt to join a powerful pool to maximize their chances of mining a block and getting rewards, we’re seeing a very serious technological centralization happening in which 20 of the most powerful pools are mining almost all the Bitcoin.
Here’s a list of the biggest mining pools. Notice that the first one mines 25% of all the Bitcoin in existence.
A mining node is the only bit of software which can “produce” new Bitcoin, and running one in a way that makes it worth your while requires either a very strong computer or free electricity. If you’d like to give mining a go, the list of BTC mining software can be found here.
A mining node is a node which contributes to the network by guessing the combinations needed to “seal” the blocks of transactions and thus confirm them, producing new Bitcoins in the process. A validation node is a node which validates this information, makes sure it’s true, and passes the information along to other nodes, thus enabling the transfer of monetary value from location A to location B. Mining nodes are a subset of validation nodes, because every mining node is also a validation node.
This difference is only manifested in the PoW consensus system and becomes technically unnecessary in PoS. With PoS, every node can be a validation node, and mining nodes as such no longer exist: new tokens are created based on another principle. For more about this, please read our PoW vs PoS article.
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers