Decentralization is a main characteristic of bitcoin. Due to decentralization, bitcoin has no single point of control or failure. Decentralization also means the need for as many full nodes as possible.
ForkLog has put together a step-by-step guide on how to set up a full bitcoin node using the Bitcoin Core network’s most popular client.
What is a full node and what is it for
We covered this question in an educational card, but let us remind you: a full node is any computer that is connected to the blockchain and fully synchronized with it. Full nodes store all blockchain data, starting with the genesis block.
Full nodes maintain the network for free, downloading and validating each block of transactions based solely on the consensus algorithm. They are completely independent. Full nodes reject blocks or individual transactions that contradict the consensus.
Any user with access to a computer with sufficient specs and an Internet connection can deploy a full node. As of May 20, 2020, the bitcoin network supported more than 10,000 nodes, most of which are deployed in North America and Western Europe.
Some may ask why install a full node when you can just use one of the many wallets available. The answers are several:
- You believe in bitcoin and want the network to grow and be successful. Each new node brings a future where people make bitcoin transactions and no government or third party can stop it.
- You plan to do a large number of transactions and you want to make sure that your transactions are verified. If you don’t run your own node, you trust someone else to verify your transactions. A full node provides full control over your personal finances.
- Finally, let’s not forget about the important aspect of privacy – though there is no anonymity of bitcoin transactions in the full sense of the word, managing a full node helps to solve this problem to some extent.
Minimum technical requirements
Before installing a full node, you need to make sure that your computer meets a number of minimum technical requirements. According to bitcoin.org, these are:
- A desktop or laptop computer with the latest versions of Windows, Mac OS X or Linux;
- 200 GB of free hard disk space with a minimum read/write speed of 100 MB/s;
- 2 GB of RAM;
- A broadband Internet connection with an upload speed of at least 400 Kb/s. It is also important that the connection is unrestricted and with high upload limits.
- Ideally, full node software should run 24/7, but that may not work for everyone, so a minimum of six hours per day is recommended.
Installing a full node
The props were a Dell Inspiron 15 3584 laptop (Core i3-7020U (2.30 GHz), DDR4 4GB, HDD 1TB) with Windows 10. Installing Bitcoin Core – the most popular network client, which is being worked on by a wide community of developers. As you’ll see below, it’s a fairly simple process, most of which comes down to installing the wallet itself.
We go to https://bitcoin.org/en/download, where we are greeted by Bitcoin Core 0.19.1, the latest version of the software released in March of this year.
By default there is a direct link to the .exe file, but you can also choose a .zip archive or download versions for other operating systems.
Having downloaded the installation file, we proceed directly to the installation. We are one step away from perhaps the most important decision of our lives!
The next step is to select the disk on which the program will be installed. By default the installer will ask you to choose drive C. This requires 52MB of free space, which we have:
Start the unpacking process:
After a short time, the unpacking is complete and Bitcoin Core is ready to work. Almost.
Next comes a very important step – you need to specify the disk where the blockchain data will be stored. And as you can see in the screenshot below, by today its full size has grown to 284 GB.
By default, the installer will offer to choose the C drive, but there may be situations where it does not have the necessary free space. This was the case for us too. We had to choose another disk.
As you can see, the developers warn that the process of initial synchronization will not be easy. You also need to be prepared for the fact that it will take a fair amount of time.
Moreover a firewall can get in the way, but this can be solved quickly and easily.
After all these actions we are in the client, which immediately starts the process of synchronizing the blockchain from the beginning of the bitcoin network. That is, the data of all the blocks, including the genesis block created by Satoshi Nakamoto, is loaded. The feeling of being a part of history is hard to convey with words!
As mentioned earlier, synchronization of blockchain data will take time, and while it is going on, you can take care of backing up the private keys. Methods for storing and securing them will not be discussed in this article.
Synchronization of data until the second half of 2015 was very fast – it took about three hours. However, the process slowed down considerably after that, which is explained by the increased average block size.
Anyway, after almost five days of uninterrupted laptop work and nervous waiting, the synchronization process was completed!
But it’s not enough to launch a full node yet – at this stage, the client acts solely as a wallet, and not the most convenient one in terms of speed.
Our task is to run a full node. To do that we need to carry out a few more actions. First of all, configure incoming connections through port 8333.
To do this, go to the tab Settings > Options, go to the network settings, check “Allow incoming connections” and manually enter the parameters of the port.
In theory this should be enough, but in order for the changes to take effect, you still need to restart the program. By the way, you should always shutdown Bitcoin Core via File > Close Program.
Rebooting the client, wait about 15-20 minutes, then go to https://bitnodes.io/, where you find the field to check the availability of node.
If you do this immediately after starting the program you will probably get a message that the node is not responding:
Our ultimate goal is to get the following result:
Sometimes just allowing incoming connections through port 8333 is not enough: not all routers support such automatic configuration and you will have to configure them manually.
More information on possible configuration problems can be found in a special section on Bitcoin.org, or you can seek help from specialists.
Nevertheless, with enough effort the issue is quite solvable, which means that launching a full node – the process is not as complicated as it may seem at first glance. And after its completion, you can brag that you are not just a bitcoin owner, but you are a bitcoin! Or at least a part of it.
Let’s add that a full node can also be deployed on a virtual server, which is a topic of a separate discussion, or you can try to install it on a separate physical device, which choice is getting wider and wider lately.