Full nodes are ledgers in a blockchain network. They keep and have every single transaction ever made on the record. Before continuing, I want to clarify these ledgers (full nodes) are not specific to Bitcoin and is essential to ANY cryptocurrency that defines itself as decentralised.
But for the sake of this article and easy-understand, I will talk only about the Full Nodes of the Bitcoin network, however, keep in mind that for the most part, full nodes in any cryptocurrency blockchain work pretty much the same way.
Full nodes form the backbone of the Bitcoin network, but for most people who are just starting to learn about Bitcoin, it’s rarely the first topic that comes up. One could be a reason for this is that a lot of the time, full nodes go hand in hand with miners and their Bitcoin mining, as miners are usually required to run their own full node, essentially making them full nodes that do something extra.
This means the topic of running a full node gets swept aside and the talk of mining comes into the fore.
Another reason is that there is no monetary incentive for running a full node like there is for Bitcoin mining, but that shouldn’t stop you from taking a further look at nodes.
As of writing this article, there are 11,056 reachable nodes
“People focus a lot on mining, which has a fundamental role in the network but is not necessarily the most interesting feature of the constellation of technologies involved.” – Andreas M. Antonopoulos
So, what is a fully validating node (Full node) and why should you care?
A full node is a ledger. More specifically, it is a program and in the Bitcoin peer-to-peer system, serves the most important purpose. Every one of these full nodes acts as an authoritative verifier of every single transaction and block. They help the network by doing the validations of the transactions and blocks and then relaying them to further full nodes so that they can then do the same.
First, the very un-detailed quick difference between the roles of mining and running a full node.
Let’s start with mining. Miners essentially are constantly listening for new transactions. Such as (X wants to send BTC to Y).
So when X does actually send BTC to Z, the new transaction is received, miners then collect this information and then places it into a block. They do this until that 1 block is full of transactions from different users (not just X and Y) and once it’s full, it is then sent over to the Nodes for validation.
Nodes receive the blocks and goes through the list of transactions within. It checks the transaction between X and Y, and then double checks X’s wallet and details before double checking Y’s wallet and details. It moves down the list, making sure to check all the transactions, doing the same and going through the same protocol as it did when checking X and Y. And once this Node is done, it then passes it to another node to verify and do the same thing.
The entire protocol goes something like this:
Miner: “Hey Node! Here’s a bitcoin transaction that’s going on right now on the bitcoin network.”
Node: “Hmmm…Okay, hand it over. Let me just double check this transaction.”
The full node takes the block and independently verifies every aspect of that transaction. The full node then reconciles the transaction with its own copy of the ledger to determine if this new transaction is legit, and there has been no double spending or any errors.
Node: “Alright, cool. This block is legit, let me send it over to another node and have him take a look at it as well.”
However, should the block not pass the nodes verification protocol, it reacts differently and does not relay the block to another node. It stops all communication with the rejected block and waits for a new block to start a new validation process again.
And that basically is the role of full nodes!
Bitcoin core client synchronising with the network
So, what are the benefits of running a full node?
For the network
As already said in this article, full nodes form the backbone of the Bitcoin network. But as there are no incentives of earning some extra bitcoin here and there, why should you bother?
Let’s start with what’s arguably the most important reason: Running full nodes means you keep a copy of the entire ledger. This helps to keep the entire system decentralized.
They help the network and in some ways, are even more important than mining. By running a full node, you are helping the decentralisation of the Bitcoin network. Being the authoritative verifier, full nodes will always follow their protocol. Even with longest Proof-of-work chains, full nodes will still verify and determine if the said chain follows the rules and whether the said chain is valid, or not.
And for the most part, anyone with a stake in Bitcoin should want to help make the network as robust and smooth as possible for everyone.
Gives you voting power
Another reason is to make sure you have voting power, and check that miners are being honest whenever there is a fork. Running a full node of the client that you support is also a way of voting indirectly. How and why? By running a full node and keeping a copy of the ledger yourself. You are subtly saying; “I support this particular blockchain!”
Safe and private
Running a full node, you can also use its wallet to store your bitcoins.
The difference between running a full node and any other kind of Bitcoin wallet is that with other Bitcoin wallets you need to place your trust in their service. These wallets and other companies and service providers will be running their own nodes, and using their services requires you to trust them.
Running your own full node will also always be more private. Only you and your node are broadcasting the transactions, and you not relying or trusting another party to do so on your behalf.
It’s really easy and not as pricey as mining!
Anyone who’s heard about Bitcoin has heard about Bitcoin mining. And once you learn about mining, starting and getting into it, can be quite daunting. First, you need enough space for your mining rig, and then you have to fork up quite a fair amount of money to get the necessary hardware for you to even begin. Add on the electric and power consumption costs, and the fact that it has to be kept cool and running on full power 24/7 if you hope to see a return on your investment, it all quickly builds up. Sure, there are mining pools but that still requires you to have a somewhat powerful GPU.
Running a full node, however, is the complete opposite!
So long as your computer has at least 150gigs of free disk space, 2gigabytes of RAM and decent internet connection, you can run your own full node. Just about every modern computer in people’s homes right now will have at least 2gigabytes of ram (I believe the standard has risen to 4gigabytes) and will an internet connection. But 150gigs of free space on your hard drive is quite a lot! Why is so big? Well, that’s because running a full node means you literally have a ledger that holds the entire history of that blockchain. Every transaction, every block. Congratulations, you’re now a digital book-keeper test
Here’s the quick list of minimum requirements for using a full Bitcoin node (List provided by Bitcoin.org at https://bitcoin.org/en/full-node#what-is-a-full-node):
- Desktop and laptops running any recent versions of Windows, Mac OS, or Linux.
- 145Gb of free disk space
- 2 Gb of ram.
- An Internet connection with upload speeds of at least 400 kilobits (50 kilobytes) per second
- An unmetered connection, a connection with high upload limits, as it is common for full nodes good connections to use around 200 Gb upload or more a month. Download usage is only around 20 Gb a month plus around the additional 150 Gb the first time you download and run your node.
- 6 hours per day that your full node can be left running in the background. (Running a full node doesn’t completely seize your computer, you’ll still be able to use it.) But the longer you can run your full node continuously, the better.
You can view the rest of the guide and other information in much more detail at the following link:
To conclude, if you want to truly be a part of the Bitcoin network, download (https://bitcoin.org/en/download) and run a full node and be a part of the thousands of people who are already doing so!
Citations and awesome links: