Bitcoin, the world’s first decentralized cryptocurrency has been functioning properly without getting hacked for almost ten years now. One of the biggest reasons that Bitcoin can ensure this high level of security is because of its decentralization. Bitcoin mining already suffers from a lot of centralization due to cheap ASICS and electricity available to some miners. Therefore, with increased decentralization in the Bitcoin network, it is important that more and more people run their own Bitcoin Node to be able to validate blocks independently. Let’s take a look at how an average user can help make the Bitcoin network more secure.
What is a Bitcoin Full Node?
A Bitcoin Full Node, as defined by the Bitcoin wiki, is any computer program that fully validates transactions and blocks. To function, the full node must store the entire blockchain locally and always be connected to the Bitcoin network. That means, almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes. Note that running a full node is not the same as mining Bitcoin. However, running full nodes still helps the network because it allows users to validate transactions independently. Therefore, running a full node is highly recommended to any businesses who want to accept payments in Bitcoins as it allows them to validate their transactions on their own without relying on third parties.
There are two main types of full nodes – individual full nodes and cloud-based full nodes. As the name suggests, individual full nodes can be set up by almost anyone in the world and require only modest hardware to work. According to the Bitcoin wiki, the current minimum requirements are (a) computer hardware running Windows, Mac OS X, or Linux. (b) 145 GB of hard disk space. (c) 2 GB of RAM (d) unmetered broadband Internet connection with upload speeds of at least 400 kilobits per seconds as a full node could use up to 200 GB of data every month. Additionally, the hardware needs to remain online for the majority of the time in order to help the network. So while the hardware required to run a full node is widely available, most people struggle with 100% uptime required for the full node. Therefore, many people choose to run their full nodes on cloud services like Google Cloud or Amazon Web Services. In effect, both the individual and cloud-based nodes are identical.
Bitcoin Node on Google Cloud
Google Cloud offers a $300 credit for 365 days for signing up for their Google Cloud trial program. This will allow users to run a Bitcoin Node on Google’s servers for several months for free. After setting up a Google Cloud account, follow these instructions to set up a free Bitcoin Node.
- Create a new Virtual Machine in the VM Instances tab. Since a Bitcoin Node is not very resource intensive, you can choose a simple Ubuntu installation with about 2.5 GB of RAM and 1vCPU. For the hard disk space, you should allocate at least 200 GB to be able to store the entire blockchain.
- Set up the Firewall rules for TCP ports 8332 and 8333. Port 8333 is used to communicate with other nodes via the Bitcoin protocol, and port 8332 is used for JSON-RPC communications. On Google Cloud, this can be done via the Network Interfaces page.
- Install Bitcoin Core. This is the main program that will download the entire blockchain and listen for new transactions and blocks. While building from source is always recommended, bitcoind is the easiest way to set up the Core client by running bitcoind -daemon. This will allow the daemon to start downloading the blockchain. Note that it could take several days before the blockchain is fully synchronized. You can also run bitcoin-cli getnetworkinfo in the VM to see how many total connections your node has.
- After the VM instance is fully synced, you can verify it’s connectable to the https://bitnodes.21.co/ site by checking for the VM IP down near the bottom of the page. Once the VM instance appears in the list, that means that your Bitcoin Node is fully up and running!