By: Sameer Zubairi | 13/02/2019

How to Run Your Own Node

The word node gets thrown around a lot in the crypto universe, but what does it really mean? A node refers to any device or client connected to a blockchain network like Bitcoin, Ethereum or Ripple. The purpose of each node is to maintain a copy of the blockchain. For a device to act as a node, it must have an adequate amount of computing power and also connection to the internet. This means a node can be a laptop, phone or even a printer, as long as it has a unique IP address. The definition of node is quite broad, but not all nodes play equal roles.

Running a node usually refers to a full node. These are nodes that offer to store complete copies of the blockchain and validate transactions using the consensus protocol. Some nodes are even capable of providing computing power to produce hashes for new transactions that get added to the blockchain. This is known as mining or forging. However, mining refers to running the actual hashing algorithm which is different from running a node. To learn more about mining and hashing, check out our Mining Article

 


The point of a full node is to run the consensus protocol, a computer algorithm that consolidates the blockchain database from all nodes to validate transactions for you and your connected peers. 


Almost all miners also run full nodes since it is in their best interest to keep the blockchain network alive.

The existence of full nodes is essential for establishing a peer to peer network that allows the blockchain to run in a decentralized manner. Despite all the users of Bitcoin, only ten thousand full nodes exist, meaning validation of transactions and production of hash functions are controlled by a subset of people who own Bitcoin. All other Bitcoin investors are still in a client-admin type relationship with the blockchain network because they rely on a third party to verify their transactions.

Naturally, one may ask, what is the benefit of running a full node? Other than simply wanting blockchain technology to succeed, there are a few benefits to running a full node. For instance, you don’t have to rely on others to establish trust on the network. If a transaction is seeking validation, a full node essentially has veto power for allowing a transaction to process, even if every other node has validated it. Not to mention, the most obvious benefit of running a full node is being able to validate your own transactions.

On the other hand, there are a few cons associated with running a node. The most obvious ones being the computing power and energy costs required to keep it on. It can be beneficial for miners to maintain a full node as rewards from transaction fees they process can offset the energy costs, however, for someone who does not mine on the blockchain, it is not very cost effective. Running a full node can eat up a lot of disk space and RAM, not to mention the device must remain on and connected to the network at all times ; you can’t even let it fall asleep. Furthermore, running a full node also requires high bandwidth use and may be illegal in certain jurisdictions. Now that you’re informed about the pros and cons,let’s take a look at how you run a full node on the Bitcoin network.

STEP 1

To start off, make sure you have a dedicated device with strong processing power and adequate bandwidth to support the network. The minimum requirements for running a full node on the Bitcoin network are as follows (From Bitcoin.org: https://bitcoin.org/en/full-node#minimum-requirements):

  • Desktop or laptop hardware running recent versions of Windows, Mac OS X, or Linux.
  • 145 gigabytes of free disk space, accessible at a minimum read/write speed of 100 MB/s.
  • 2 gigabytes of memory (RAM)
  • A broadband Internet connection with upload speeds of at least 400 kilobits (50 kilobytes) per second
  • An unmetered connection, a connection with high upload limits, or a connection you regularly monitor to ensure it doesn’t exceed its upload limits. It’s common for full nodes on high-speed connections to use 200 gigabytes upload or more a month. Download usage is around 20 gigabytes a month, plus around an additional 140 gigabytes the first time you start your node.
  • 6 hours a day that your full node can be left running. (You can do other things with your computer while running a full node.) More hours would be better, and best of all would be if you can run your node continuously.

STEP 2

Download the software Bitcoin Core through this link. The site will automatically install the latest version of the software. Bitcoin Core is a software that will automatically sync your blockchain data with that of everyone else using a consensus based protocol. Bitcoin Core has “DNS seeds” hard coded to connect to other nodes on the network using their IPs. This allows the software to run its consensus protocol and validate transactions with nearby nodes.

STEP 3

Once you launch Bitcoin Core, it will give you the option to choose a location for your data directory. If you choose default, it will start downloading the full copy of the Bitcoin blockchain as well as a ‘wallet.dat’ file to store the contents of your personal wallet connected to the node. Beware that the Bitcoin blockchain is 155GB, so make sure you have enough space in the directory you choose to store the data.

Once these contents have been downloaded, you can run the program on its default settings. For further reading on program settings and functionality, please refer to https://bitcoin.org/en/full-node.

PEER SELECTION AND ENCRYPTION

For those seriously considering running their own node, it is important to consider some customizability and encryption options available. For example, the peers your node interacts and shares information with can be customized. If set to default, Bitcoin Core will choose eight random nodes for you. Furthermore, you can choose to enable incoming connections to provide the data for new peers to download the contents of the blockchain.

There are also many encryption and privacy options to consider when running a full node. For instance, it is important to encrypt your ‘wallet.dat’ file to prevent others from accessing its contents and controlling the Bitcoin in your wallet. To prevent your transactions from being tracked externally, you can choose to work on a Tor browser, which masks the IP address of your node. It is very important to do your homework on the technical details of this tech to customize it to your preferred type and level of encryption and privacy solutions.

All in all, running your own node can be a fun way of learning about blockchain technology and cryptocurrency. Nodes are foundational for the peer to peer structure that allows this tech to be so secure and efficient when it comes to processing transactions. Running your own node can be a great way of learning about blockchain technology, which can help you recognize profitable crypto projects.

Disclaimer: This is an informative article not meant to be taken as investment advice.

Make your first digital currency purchase today