As the present happenings seem to be taking us to an almost inevitable bitcoin hard fork, it is pivotal now to point out to bitcoin enthusiasts, that running a full node today will have positive influence on the bitcoin ecosystem during the upcoming critical period in the history of bitcoin.
As an experienced bitcoiner, I would recommend starting a full bitcoin node via running the traditional Bitcoin Core Client. Keep away from Bitcoin Unlimited (BU), if you plan on running a full node, as until now, two major bugs have been discovered in its code; one of them was exploited by a malicious user which allowed him to take down a large number of Bitcoin Unlimited (BU) nodes. Another bug was discovered which led to mining of an invalid block whose size was larger than 1 MB. Moreover, I would not trust any solution that receives support from Gavin Andersen; the guy who helped seed the bitcoin community with birdwatchers.
The number of Bitcoin Core full nodes and that of Bitcoin Unlimited will determine the outcome of the hard fork, if it ever happens, and will also dictate the percentage of coins on each of the yielded child chains. After the recent discovery of the Bitcoin Unlimited bugs, the number of BU full nodes declined dramatically and today, more than 85% of all full nodes on the bitcoin network are Bitcoin Core nodes.
Throughout this tutorial, I will show you how to setup a full bitcoin node on Windows, but let’s start by understanding what a full node is:
What is a Full Bitcoin Node?
A full bitcoin node is a piece of software that validates generated blocks and transactions. Full nodes also support the network via verifying blocks and transactions from other full nodes, validating these blocks and transactions, and then relaying, or routing, them to other full nodes across the network.
On the other hand, the greater portion of full nodes acts as lightweight bitcoin clients which enable users to broadcast their transactions to the network and also notify them when transactions are sent to their wallets. If there is no sufficient number of full nodes to play this role, clients would not have the ability to connect via the peer-to-peer (P2P) network; they will have to rely on centralized wallet services instead.
Many bitcoin enthusiasts donate their spare computing power and bandwidths to run full nodes, yet more nodes are still indispensable if bitcoin is to be adopted on a massive global scale.
Minimum system requirements:
There are minimum requirements for running a Bitcoin Core full node. If you attempt running your node using weaker hardware, it might work, but it will be rather slow. The following are the minimum system requirements for running a Bitcoin Core full node, according to info from Bitcoin.org:
- A Windows 7 OS or later versions.
- 125 GB of free hard disk space.
- 2 GB of RAM.
- An internet connection with an upload speed of at least 400 kilobits/second.
- An internet connection with unrestricted uploads. Usually, full nodes run using high speed internet connections, upload around 200 GB of data per month, yet download usage is usually around 20 GB per month, in addition to around 100 GB the first time you run your node (this amount represents the whole blockchain).
- You have to leave your full node running for at least 6 hours per day, yet more time is always better and best of all is to keep it running 24/7.
Installing Bitcoin Core:
This will explain how to install Bitcoin Core 0.13.1 on Windows 8.
1. Point your browser to the official page for downloading Bitcoin Core and verify that your connection is secure (via seeing a padlock on the left side of the address bar).
2. Click the blue “Download Bitcoin Core” button to start downloading the installer.
3. After the download if complete, run it as the system’s administrator, by right clicking the installer’s icon and choosing the “run as administrator” option. The installer will ask you about your destination installation folder, I recommend using the default destination folder.
4. To continue on, you will have to choose one of two options:
i. Use the Bitcoin Core Graphical User Interface (GUI).
ii. Use the Bitcoin Core daemon (bitcoind), which would be an ideal option, especially if you are an advanced user or a coder.
For the sake of this tutorial, I will show you only how to set up a full node via installing the Bitcoin Core GUI.
Installing the Bitcoin Core GUI:
1. Press the Windows button, on the bottom right corner of your Windows 8 desktop screen and then type “bitcoin” in the search box. The Bitcoin Core icon will show up, so click on it.
2. A prompt screen will appear asking you to select a directory for storing bitcoin’s blockchain and your wallet’s data. I recommend using the default destination folder, but you can store both wherever you want on your machine’s hard disk.
3. Occasionally, your Windows firewall will block Bitcoin Core from creating outbound connections. Allow the client to communicate on all networks; it is safe. Note that you still need to set configurations for inbound connections, as we will explain later on.
4. The Bitcoin Core GUI will now start downloading the blockchain. This will usually take a few days, yet it may take much more time if you are using a slow internet connection or a slow machine. The client will use the most of your connection’s bandwidth during the download process, yet you can stop it at any time by closing it; it will continue on the download process from where it stopped the next time you run it.
5. After the whole blockchain is downloaded successfully, you can use it as your bitcoin wallet, or just leave it running to support the bitcoin network. Congratulations, you are now running a full bitcoin node.
6. Optionally, you can set your node to start automatically each time you start your computer, which renders it easy to start supporting the bitcoin network. After running the Bitcoin Core GUI, click on the “Settings” button on the top bar and then choose “Options”. As shown on the below screenshot, click on the “Main” tab and then click the checkbox marked “Start Bitcoin on system login”, then click the Ok button in order to save your new settings. Now, the next time you start Windows, the client will automatically run minimized in your desktop’s task bar.
Important Note: To prevent data loss or corruption, never force system shutdown via the Windows shutdown screen, whenever the Bitcoin Core GUI client is running.
To support bitcoin’s network, you have to allow inbound connections. When Bitcoin Core GUI runs, it creates 8 outbound connections with other full nodes, in order to download the latest transactions and blocks. If you want to just use your full node as a bitcoin wallet, you needn’t more than these 8 connections, yet if you aim at supporting other full nodes and lightweight clients across the network, you have to allow inbound connections.
Servers with direct connections to the internet won’t usually need any special network configurations. You can just refer to the testing instructions below to make sure that your server based full node allows inbound connections. On the other hand, home connections usually have connection restrictions via a modem or a router. Bitcoin Core GUI will require your router to configure itself automatically to allow inbound internet connections on port 8333; bitcoin’s port. However, some routers don’t permit automatic configuration, so you have to manually allow inbound connections to port 8333 on your router and firewall.
BitNodes offers an online tool that allows you to test whether or not your full node allows inbound connections. To use this tool, run the Bitcoin Core GUI client, leave it running for 10 minutes, then visit the service’s page. The tool will try to automatically detect your IP address, yet if it can’t guess it, you will need to enter it manually., as shown on the below screenshot.
Now, press the “Check Node” button and the tool will prompt you whether the tested port is open (green box) or closed (red box). If you are prompted with a green box, you are set and you have confirmed that you are accepting inbound connections. If you are prompted with a red box, then you have to recheck your router’s and firewall’s settings.
You can use Bitcoin Core GUI to confirm that you are actively accepting inbound connections. Bitcoin Core GUI cannot inform you directly whether or not you are accepting inbound connections, yet it can inform you whether or not you have any active inbound connections in real time. If your full node has been running for at least 30 minutes, then it will definitely have established inbound connections.
This was a concise tutorial that will help you start a full bitcoin node. I will be glad to answer your questions, if you have any. Just add them in the comments’ section below.