A full node is a software program that you must use to interact with the Bitcoin network. The client called Bitcoin Core is the most popular implementation but there are others too.
Every Bitcoin wallet needs to use a full node to interact with the Bitcoin network but unless you run one yourself, you are putting some trust in another party to run a full node for you in good faith.
Using a Bitcoin full node is the equivalent of being your own self-soverign central bank. It's the only way to fully benefit from using Bitcoin. If you aren't using a full node yourself, there is a certain level of trust you must place into the company being used whenever you transact with their wallet.
If you're new, you don't need to run a full node right this moment. Maybe you decide to never run one but it's important to learn the importance of a full node and that you should run one and use it.
Validates all the rules of Bitcoin - A full node ensures you are actually receiving the bitcoin you think you are. Not running a full node means you are outsourcing the truth from an external source. It's better to use the source of truth directly.
Increases privacy - If you don't use a full node your transactions need to be broadcasted by a third party meaning they could track transactions. A full node broadcasts transactions directly to the Bitcoin network. However, it could also reveal your public IP so you may want to take extra measures to help mitigate that by running the node over TOR.
It helps the network - Running a full node increases network decentralization which increases the security of the network as a whole. In addition, if you open port 8333, others will be able to download blockchain data from you.
Your voice - In the event of a hard fork, running a full node is the only sure way to know which network consensus rules you are following.
May take +1 days to sync the blockchain from scratch depending on your hardware specs.
Wallet's send function isn't fully functional until the blockchain is fully synced.
Must run online 24/7 to continuously sync new blockchain data or it will need to catch up once back online.
The blockchain uses +321 GB of hard drive space (as of Jun 19/2020) and grows roughly every 10 minutes.
Note: You can enable pruned mode to reduce the disk space required to as little as 2 GB. You can also save the blockchain data onto an external drive and transfer it to future Bitcoin Core installs (so that it doesn't all need to be downloaded from the internet).
The Bitcoin Core wallet backup options are limited to a digital backup file or individual private keys. There is no seed phrase backup option.
- Bitcoin Core could reveal your public IP address. You can help mitigate that risk by running Bitcoin Core over Tor.
- +321 GB (as of Jun 19/2020) of hard drive space for the standard full node or +10 GB for a pruned node.
- 2 GB of RAM or more.
- Internet plan that can accommodate the initial +321 GB (as of Jun19/2020) download of the entire blockchain and the +20 GB sync per month.
Note: If you open port 8333 your internet plan must accomodate the upload bandwidth used by others downloading data from your full node.
Let's go over the 3 ways you can utilize a full node:
Download the bitcoin core software and use the built in wallet to transact.
Use a wallet that supports connecting your full node to the wallet. You'll need to have Bitcoin Core installed and synced.
Use a wallet that auto-connects to a third party full node. Most light client wallets do this by default. This is convenient but the least desirable as it requires more trust in the company.
Running a full node yourself is easy and can be done on any computer:
- Download and install the Bitcoin Core software.
Note: You can download a full node on Android here.
- Open the program and let it sync the blockchain
Note: It may take a few hours or up to a day to sync and the wallet isn't usable until it's fully synced.
Optional: Port forward 8333 on your firewall if you want to help update other full nodes on the network. (Requires internet plan with high upload cap)