How to install a full or a pruned Bitcoin node
Are you interested in becoming a part of the Bitcoin community? Or maybe you want to support the project in general? While many believe that in order to do so you need to spend a fortune on mining rigs and additional equipment, that is not the case.
There are a plethora of other ways that you can support the project with one of the simplest being a Bitcoin node configuration. The process can be relatively time and resource consuming, but it does not require that much technical background and expertise. Let’s dive right into it!
What exactly is a Bitcoin node?
A very good question! While some believe this to be a very sophisticated term, it is actually a machine, in most cases - a computer, that is capable of running a Bitcoin implementation while also being able to read and store the whole blockchain.
Each node manages to validate every transaction and subsequently-generated block, which is stored in the entirety of the blockchain. Because of this, these nodes act as a governing body in respect to the whole of the Bitcoin network, as they are essentially determining the rules and regulations surrounding the validity and the legitimacy of the blocks that carry the transaction information.
Additionally, it is also important to note that nodes communicate between each other and because of this, they are capable of keeping all of the data on each member of the blockchain relevant and timely.
Differences between a full and a pruned Bitcoin node
The main distinction between these two types of nodes lies in the size of the blockchain that they are capable of running on a given machine.
What is a ‘full node’?
Running a full Bitcoin node essentially means downloading and storing the entire blockchain locally on a particular machine, be it a computer, laptop or a server. While useful, setting up, running and maintaining a full node can be quite the cumbersome process due to the incredibly large size of the blockchain. Given that the cryptocurrency has been circulating for more than 10 years at this point, along with the fact that interest in the field has been steadily growing, reaching quite a substantial rate over the last few years, it does not come as a surprise that the database is quite humongous in size, nearly reaching around 500GB. That is a huge number when you consider that you need to be able to keep it all on your machine!
Because of this, you would need to have around 550GB of unused disk space on your server or machine to be able to download and store all of the blockchain. However, that is not the only problem. There are many more transactions made each and every day, meaning that the blockchain is constantly growing. Consequently, this means that you will need to have additional space on your machine in order to accommodate this growth and store the new blockchain information, not to mention that you are also in need of space for your operating system and other files that are essential for running a machine or a server!
What are the advantages of running a full node?
While having the entire blockchain on a single machine can be a daunting and unfeasible task for some, others relish this opportunity as there are quite a number of benefits to it. Here are some examples:
- You are capable of processing all Bitcoin transactions along with being able to verify them if necessary, due to the fact that you have the entirety of the blockchain stored locally on your machine or server.
- Your machine or server can be used to obtain information about the blockchain, ultimately resulting in you being a starting or reference point for any new nodes that will be appearing on the network. This happens because the Bitcoin network uses peer-to-peer technology to get this initial required information in order to set up, update or maintain other nodes and the blockchain.
- In a very unrealistic scenario, a full node can also serve as a restoration block for the whole blockchain because it contains all of the information of every transaction ever made. This means that if the Bitcoin network happens to get completely wiped (which is highly unlikely), any full Bitcoin node can be utilized to restore the information successfully.
- Whenever you are making a transaction that will be stored in the blockchain and want to obtain some information about it, you are essentially using another Bitcoin node to make the request. This can lead to your IP address being leaked or recorded, which can damage your privacy and potentially expose you to more threats online. However, if you implement your own full node, you will not have to utilize other nodes to get information as you can do that by yourself, which ultimately results in better privacy protection and greater security.
- With your own Bitcoin node implementation, you will never have to use third-parties ever again to get any information as you will be able to check everything by yourself in your own node. This again also guarantees better security and privacy.
What are the additional drawbacks?
As we already mentioned, the amount of available free space is probably the greatest setback that you will encounter when running a full Bitcoin node. Additionally, the sheer volume of the network and the blockchain database would mean that you will also need to spend quite some time downloading it as well. Trying to host this in the cloud would also be incredibly expensive.
What is a ‘pruned’ Bitcoin node?
The difference between this type and the full node is the fact that the pruned option only has a given section of the blockchain at its disposal. It has essentially been reduced and ‘trimmed down’ substantially in order to have it contain only a small segment of the entire database. However, these nodes are also quite important in the grand scheme of things, in spite of not having all of the blockchain information. This is quite beneficial as running a pruned node does require substantially less free space - around 5-10GB, which is something that most users can easily afford to dedicate.
Benefits and setbacks of a having a pruned node
In contrast to the full nodes, required space and download time are the most obvious advantages that running such a node can exhibit. Moreover, this also allows you to host and manage your pruned node in the cloud, making it substantially less expensive. Furthermore, what you will also be doing is expanding and strengthening the network in itself, meaning that you are contributing to the community, even though you are only running a pruned node.
In terms of disadvantages, we already mentioned that a pruned node’s biggest setback is the fact that it does not hold an entire copy of the blockchain. This means that some information will be missing and other data will be trimmed in order to accommodate the lower disk space requirements. Additionally, in the case of a total wipeout (which we want to again iterate - is highly unlikely to happen), such a node cannot be used to restore the blockchain as it does not contain all of the transaction information necessary to recover the database.
How to install a Bitcoin node?
While most believe this to be a complicated process, it is actually relatively straight-forward. All you need to do is to just follow these basic steps and you will be good to go!
In order to configure any type of Bitcoin node, you will need the following:
- A server or machine running Linux (for this tutorial we are going to be making use of Debian 11)
- Your server or machine is required to have a minimum of 2-4GB of RAM
- Between 500-550GB of available disk space if you want to run a full node or around 30GB if you are intending to run a pruned node
Firstly, navigate to the Bitcoin website - https://bitcoin.org/en/download and download the latest version:
After downloading the file, you will need to extract its content:
Next, execute the following command in order to begin the installation process:
cd bitcoin-22.0/bin && install -m 0755 -o root -g root -t /usr/local/bin *
Now comes the most integral part - choosing whether you want to run a full or a pruned Bitcoin node. To run the full version you can simply type the following command, which will begin synching with the blockchain:
Depending on your connection’s speed and the size of the database at the time of you downloading it, the process might take up to a number of days, given that the blockchain is constantly expanding.
If, however, you would like to run a pruned node, you will have to create a special configuration file, which you can do with this command:
Next, open the newly generated file in any text editor and insert the following line:
Do not forget to save the file! After that you can again begin to sync with the blockchain using the same command as that for a full node:
Additionally, you can check and monitor how the syncing process is going with this command:
bitcoin-cli getblockchaininfo | grep verification
You will be presented with something that will look like so:
Remember that the ‘verificationprogress’ parameter does not need to reach 1.0000, as a value close to 0.9999 would indicate that the node is already synced.
That's it! You should now have a fully functional Bitcoin node!