How to run a node
What you'll learn
- What a node is & why they are important
- The difference between a full & light node
- The basic technical requirements are for running a node
- A high-level step-by-guide to enable for running a node
Learn Crypto's section on using cryptocurrency has so far covered the basics from the perspective of someone wanting to enjoy the utility of crypto as a new form of internet money, investing in its properties as store of value, or directing speculating on crypto as a tradable asset.
There is however, one use case we haven't covered yet, which is arguably the most important, and that is actively supporting blockchains by running a node.
Crypto is predicated on the exponential strength of network effects, and can provide contribute to the power of the network by helping run it.
You can choose any blockchain support depending on how you value their use case, but for this example we are going to look at how to run a Bitcoin Node.
We're going to keep things relatively simple, giving you enough knowledge to understand the process but would recommend that you do further research before jumping in, as Learn Crypto is focused on users just beginning their journey into crypto.
What is a Node?
In the context of the Bitcoin blockchain, a Node is a program supporting the key functions of Bitcoin - validating transactions and blocks that store transactions. Validated blocks are added to blockchain, which continues to grow. So running a Node helps support and grow Bitcoin.
Nodes act either as a communication endpoint or as a redistribution point that may perform different functions.
Any device that connects to the cryptocurrency's interface may be called a node in the sense that they communicate with each other through the blockchain network.
Nodes can also transmit information about blocks and transactions within the blockchain network of devices by using Bitcoin's p2p2 protocol.
Each node has its predefined functions, therefore different types of Bitcoin nodes exist.
Full Node
A full node is responsible for verifying, authenticating, and storing all transactions occurring on a blockchain network and acts as a core server, which means it is data-heavy. Given the data load a full node can be expensive to run and requires advanced computing power and energy. As per Datalight's research, over 10,000 full nodes are operating on the Bitcoin network.
In addition to the overall security and validity of a Bitcoin network, a full node has other specific responsibilities that make it different from other nodes. Two important distinguishing features are:
- A full node is responsible for inspecting the authenticity of each digital signature before adding a new block to the blockchain.
- A full node has the authority to reject transactions or blocks that don't follow the protocol.
Lightweight Node
Unlike full nodes, Lightweight nodes do not contribute to the security of the Bitcoin network as they don't record transactions.
Also known as Simplified Payment Verification clients, these nodes enable users to check if transactions were included in a block or not, without requiring a user to download the whole copy of the blockchain. Essentially, lightweight nodes participate in the network as communication endpoints.
Miners are Not Nodes
While a full node verifies all the transactions and has a complete copy of the blockchain, a miner creates the blocks which the nodes keep. A miner works on a transaction for about 10 minutes to solve a cryptographic puzzle and comes up with the best combination to store that data.
On the other hand, nodes record that result forever after verifying the data. So, miners are completely different from nodes but the interchangeable language of Bitcoin as meant that sometimes the two things are conflated..
Benefits of Running a Bitcoin Node
Running a full bitcoin node doesn't have any coin rewards, however, it comes with its intangible benefits. They include:
- Direct Access to Transaction Data: Running a full bitcoin node increases the security of a transaction. If you carry out multiple BTC transactions a day, you can access updated information regarding your transactions directly from Bitcoin's blockchain.
- Strengthening the Bitcoin Network: By running a full node, you can enforce Bitcoin's consensus rules and have the authority to reject a transaction that breaks the rules. Plus, the more copies of the Bitcoin blockchain exists, the more resilient the platform is. So, you're not just helping to improve the security but also strengthening the Bitcoin network.
- Proprietary Knowledge: If you are a trader or holder, you can monitor for large transactions that can move the market. In fact, a research paper published by Lennart Ante recommends that traders should run a Bitcoin node themselves to assess the market.
- Privacy: Outside of Nodes, Bitcoin transactions are processed through a third party. People who are very concerned about their privacy should run Bitcoin nodes of their own to take full advantage of Bitcoin's privacy system.
- Governance: In the event of a hard fork, bitcoin full nodes have the option to choose which chain to join. So, if you run a full Bitcoin node, you can get involved in the governance of the Bitcoin protocol. Read more about forks here.
Instruction for running a Bitcoin Node
By running a Bitcoin node you can actively participate in the crypto revolution helping shape an alternative monetary system. Before you start with the process, you need to know the risks and requirements associated with running a Bitcoin node. Let's dive into that-
1. Secure Your Client/Wallet
When running a Bitcoin node, you need what is called a client. Since Bitcoin's inception until today, the most common client is called Bitcoin Core. It is a software you must install on your device. You can also store your Bitcoins in the Bitcoin Core wallet, however; take safety measures as you would for running any other crypto wallet.
2. Minimum Requirements for a Full Node
- Desktop or laptop with updated versions of the operating software
- 200 GB of free disk space, with a minimum read/write speed of 100 mb/s.
- 2 GB of random access memory
- A fast internet connection with a minimum speed of 500 kb/second
- An unmetered connection or a connection with high upload limits, as well as one that does not have any upload limits.
- A minimum of six hours a day for your node to run.
Note: Ensure your laptop or desktop is running at optimal condition since most of the operating systems allow your computers to enter a low-power mode as soon as the screensaver activates. This will halt or slow down the traffic.
3. Problems You May Encounter
- Legal: Ensure your country hasn't banned Bitcoin.
- Bandwidth Limit: Check the data bandwidth of your internet connection with your service provider. The goal is to keep the Bitcoin node running.
- Firewall Access: Like any blockchain, spammers try to malign the Bitcoin blockchain, too. But, rest assured that the Bitcoin network is safe and won't affect your hardware. Some antivirus programs may make it difficult to run the Bitcoin node, so check antivirus software in your system before you begin with the process.
- Target Risks: Hackers or spammers who wish to undermine the Bitcoin network are on a constant lookout to attack a full bitcoin node. So, take extra precautions to ensure your hardware doesn't get attacked.
4. Options to Run the Bitcoin Node
There are three options to run a Bitcoin full node:
- Run it on a virtual private network
- Run it on an 'out of the box' solution, like Lighting In A Box, Raspiblitz, Nodl, Casa Node, etc.
- Run it on a customised solution, like Raspberry PI 4, a mini-computer that has the capacity to run full nodes on the Bitcoin network.
5. Run a Bitcoin Node on a VPN
We're going to focus on the first option, which is running a node on a Virtual Private Network.
Step 1: The first step is to get your hardware ready to run the Bitcoin node.
Step 2: Choose the operating system you wish to use to run the Bitcoin node. Some options are Windows (7,8, or 10), Linux (Debian, Ubuntu, etc), and Mac OS. If you choose a customised solution like Raspberry Pi you can use Umbrel.
Step 3: Install Bitcoin on your hardware using these step-by-step instructions.
Step 4: Follow these steps to configure your router to allow port 8333:
a) Login to your router, and look for the port forwarding (Virtual Server) section. You'll find it under the "NAT" section.
b) Input your IP address..
c) Type '8333' on both Internal Port Start and External Port Start.
d) Select TCP/UDP in the "Protocol" section.
e) Click Apply/Save
6: Check Node Is Reachable
Verify with websites like "earn.com" to ensure your Bitcoin node is reachable.
Doing your bit
Full nodes are essential to ensure Bitcoin does as Satoshi intended, functioning as a decentralised peer-to-peer cash system.
There are no direct financial rewards for running a node but it is a great way to improve your knowledge of how Bitcoin works. You may benefit as a business that accepts bitcoin, or as a trader who can derive value from the data running a node puts at your fingertips.
You'll also enjoy the kudos of knowing that you are helping support and grow an entirely new inclusive financial system without borders or restrictions that can give people a new kind of financial freedom.
Alternative Bitcoin clients
As mentioned above, Bitcoin Core is the definitive client that the majority of Bitcoin nodes use. It was the original client used by satoshi to launch Bitcoin. It is the client that core developers generally use, and is the most mature of all the clients, constantly updated and patched.
On the other hand, there are also good reasons to use other clients -- client diversity is one. Client diversity ensures that Bitcoin as a network can still operate if a critical failure were to hit Bitcoin Core. Being the dominant client, Bitcoin Core theoretically makes the network vulnerable to a single-client failure as it holds undue influence over upgrades or consensus rules.
As of July 2024, Bitcoin Core makes up a staggering 98% of clients in the entire node population. There are alternatives to consider if you are thinking of setting up a Bitcoin node: