Don't trust, verify.
Episode 3. Block height: 765000. Running your own Bitcoin node is as important as storing your own Bitcoin keys. A step-to-step guide to more self sovereignty.
Bitcoin and Macroeconomics summarized:
Inflation: Turkey cuts benchmark rate to single digits despite inflation hitting more than 85% as President Erdoğan prioritizes economic growth and jobs over price stability ahead of a general election next June.
Interest rate: THE FED discussed the need to slow rate increases soon at their last meeting, while signaling that they are likely to raise borrowing costs higher.
US Treasury market: The yield curve for US treasuries is now deeply inverted. Three months rates are well above ten year yields on U.S. government debt, indicating a recession.
Buy Bitcoin: It makes sense for many central banks to hold a small amount of Bitcoin under normal circumstances, and much more Bitcoin if they face sanction risks, concludes a working paper from Harvard.
Crypto exchanges: Apple seeking the rights to the FTX story by “The Big Short” author Michael Lewis. They now can include BlockFi, which field for bankruptcy this week. Self-Custody your Bitcoin and get your popcorn ready.
In the last episode "Take back control over your Bitcoin", we looked at the very important topic of Bitcoin self-custody. Shortly after that, Michael Saylor started a Twitter survey, and I was surprised to find out that there seem to be a lot of Bitcoiners who don't run their own Bitcoin node. Due to the survey, only 16% run their own node AND hold their own keys.
As you will see, running your own node is at least as important as holding your own Bitcoin keys. It is also much easier than many think. In this episode, I will explain why it is important and how you can do it without barely any technical knowledge. I have to admit, though, that I am not an expert on the technological side myself. I am sure that there are countless other (maybe cheaper and easier) ways to run a Bitcoin node. I'll show you my, non-techie. At the end of the day, we all try to do our part and learn from each other.
Come on, who would not run his own bank for $200?
A Bitcoin Node
A key feature and a main value proposition of Bitcoin is that you don't have to trust anyone to use the network. The basis to make it happen is information, more specific, distributed information. A trustless system only works properly if everyone has all the information of the network at all times. Only then is it possible for network participants to verify all network activities themselves, independently of trusting others. To ensure this, there are so-called Bitcoin nodes. A Bitcoin node is nothing more than a computer running a special Bitcoin software
You can envision nodes as electronic mailmans that store, validate and distribute the Bitcoin ledger to the Bitcoin network participants in a Peer to Peer fashion. This allows each participant to check in real time whether the Bitcoin network is working according to the established rules, and all players of the network play by those rules.
Beside storing the entire blockchain and distributing it to the network participants, Bitcoin full nodes also validate each block and each transaction before adding them to the Bitcoin blockchain, thus serving as arbiters of the Bitcoin network, setting and enforcing the rules about which transactions and blocks are valid and which are invalid.
As we will see, with running your own node, you contribute to the greater good, but it is also self-serving. The following reasons are not conclusive, but in my opinion very important. Let’s have a deeper look.
Keep Bitcoin decentralized
Because each bitcoin full node has the entire Bitcoin blockchain stored, another node means another copy of the Bitcoin ledger and a further distribution of the Bitcoin code. The more individual copies exist and the wider those copies are spread around the globe, the harder it is to turn Bitcoin off. In fact, in order to kill Bitcoin, every single copy of the Bitcoin ledger must be destroyed.
This means that your copy alone (your node) could carry the idea of Bitcoin forward if all other copies were burned. In this context, I always have to think of the book burning of the Germans in the Second World War, where numerous literary works critical to the Nazi ideology were destroyed forever. A copy beyond the reach of the people in power would have been enough to allow the idea expressed in the books to live on. With your own node, you yourself guarantee that the Bitcoin idea will be carried forward. Each node therefore counts.
One node, one vote
In the Bitcoin network, every participant is treated equally, regardless of status or Bitcoin ownership. Nodes ensure compliance with the rules in the Bitcoin network. You vote with the version of Bitcoin software you are running on your node. In the event of disagreement, the majority principle decides. The more Bitcoin nodes there are, the more difficult it is for bad participants to assert themselves and change the network rules against your will. It also makes it therefore less vulnerable for fraudulent actors to harm the network by running fraudulent software.
For example: If a group of "powerful" people band together, as they did in 2017, and decide to try to change the rules of how Bitcoin works (for example, by increasing the block size), you can choose to not upgrade your node to the new changed code. This will result in a pool of people running the unchanged Bitcoin core code and a pool of people running the changed version - a fork. This is exactly how Bitcoin Cash was born. If you weren’t running your own node at the time, you had no voice in this war.
Imagine if your wallet might have been connected to a node, that changed to the new version, and now runs Bitcoin Cash, and then someone might have paid you in Bitcoin Cash instead of Bitcoin. Thus, you might trade goods in exchange for coins that you didn’t want in the first place.
Don’t trust, verify
All information of the Bitcoin Network is stored in the Bitcoin ledger, which in turn is stored on nodes. One therefore needs a Bitcoin node to access this information. If you do not operate your own node, you are again dependent on a third party that operates a node and provides you with this information. You trust this node that the information provided is correct. Above that, with connecting your wallet to another node, personal information can be compromised.
For example, when your wallet tells you your bitcoin balance, it asks a random public Bitcoin node what balance each of your addresses contains. It then gives you the results, and you see your total amount of Bitcoin in that wallet, but you don't know if that amount is true or fake. In exchange, this third party can also receive private information like your transaction history, your IP address, your physical location, all of your current and future addresses you'll use within that wallet, your bitcoin balance, and your financial counterparties. And yea, I am pretty sure, that there are nodes run by surveillance companies and/or governments.
Be your own bank
But that's not all. Every Bitcoin transaction needs to be distributed to the Bitcoin network, so that the transactions can be validated by other nodes and included in the blockchain. Those nodes check for example if you have enough balance in your wallet, to prevent double spending or similar. This also means that if you don't run your own node, you will have to rely on another node to propagate your transaction across the Bitcoin network. The third party could even block your access to the Bitcoin network altogether by not forwarding your transaction to other nodes at all.
You can imagine the whole thing like this: In our traditional financial system, we rely on banks. We register by giving up a lot of private information and log into our online banking to initiate a transaction. Before the bank approves the transaction, it checks it against certain criteria. If inconsistencies arise, the bank can block the transaction by not forwarding it to the financial counterparty. Your position in the Bitcoin network is similar if you do not run your own node because you are reliant on someone who is running the node and publish your transaction to the network.
As we have seen, like self-custody, running your own node is also a very important step to become independent of third parties. Unfortunately, many still think that running a Bitcoin full node is complicated and requires deep technical knowledge. This is not the case. Here is a step-to-step guide for running your own Bitcoin node.
A step-by-step guide
Right off the bat, you can actually run your Bitcoin node on your laptop or personal computer. Basically, you just need to download the Bitcoin core software (see Step 2). Just keep in mind that a Bitcoin full node should run at least 6 hours a day, the more the better. Therefore, in my opinion it is better to build a separate node computer, which will cost you about +/- EUR200, but saves you energy costs in the future and allows you to run your node 24/7.
Also keep in mind that your Bitcoin node will require constant internet connectivity over which, especially when you first download the Bitcoin ledger, larger data will run. It would therefore be advantageous if you had a reliable internet plan with unlimited data volume.
The minimum requirements to run a Bitcoin node summarized:
Desktop or laptop hardware running recent versions of Windows, Mac OS X, or Linux
At least 600 GB of free disk space, accessible at a minimum read/write speed of 100 MB/s
2 GB of memory (RAM)
A broadband Internet connection with upload speeds of at least 400 kilobits per second
An internet plan with high up- and download limits. It’s common for full nodes on high-speed connections to use 200 GB upload or more a month. Download usage is around 20 GB a month, plus around an additional 500 GB the first time you start running your node.
Your node should run at least 6 hours a day, the more, the better.
Step 1: Get the Hardware
If you don't want to run your node on your laptop or PC, you can build your own node computer with the following hardware components. As mentioned in the beginning, there are many (possible cheaper or simpler) options, but here is my approach:
Raspberry Pi 4 (4 GB or 8 GB RAM recommended)
Raspberry Pi power supply
Raspberry Pi case
16 GB microSD (The microSD card is only used for running the Bitcoin software)
You can buy those items directly from Raspberry-PI partners around the world in one (cheaper) bundle: Europe or US. In addition, you need the following:
Once you have everything, it is basically plug and play. Put the Raspberry Pi 4 in your Raspberry Pi Case. Put the SSD in your enclosure. Connect the SSD via USB to your Raspberry Pi and connect your Raspberry Pi with the Ethernet Cable to the internet. No need to power it up yet. Keep the MicroSD close, we will need it in the next step.
Step 2: Download the Software
The vast majority of Bitcoin nodes use Bitcoin Core, the reference implementation of Bitcoin, the Bitcoin source code so to speak. This means all other implementations look to Bitcoin Core for guidance on maintaining consensus and upgrading. You can simply download and access Bitcoin Core directly to run your node. For this, though, a bit of technical knowledge is required.
However, many projects exist to help users run a Bitcoin node with barely any technical knowledge. Most of these projects offer additional features, such as block explorers or wallets. Using that software is easier and more convenient than running Bitcoin Core directly, in my opinion. Just make sure you are using open-source software. Here are some projects I would recommend:
Umbrel: Umbrel is an open source software, enabling users to easily launch a Bitcoin and Lightning Node. Umbrel also comes with a Bitcoin app store, allowing users to install other Bitcoin applications to bolster their privacy and security.
MyNode: MyNode offers free, open source software which allows users to easily install Bitcoin Core, Lightning, and many other Bitcoin applications, including Samourai Whirlpool, Lightning and BTCPayServer.
Citadel: Take back control of your data with running citadel, which enables you to run your personal server, together with a Bitcoin lightning node.
This is by no means an exhaustive list. There is so much good node software out there. If you have a recommendation, feel free to share it in the comments. My node runs with Umbrel, so I'll explain how to set up the node step-by-step using the Umbrel software. For all other node software packages, i am sure you can find all this information on their respective websites.
3. Step: Set-it-up
Check out umbrel.com for in depth guidance. Here is a short summary:
Download Umbrel OS
Download Balena Etcher (Required to flash the Umbrel OS file onto the microSD card)
Plug the microSD card in your computer
Flash Umbrel OS (Open Balena Etcher and flash the downloaded Umbrel OS zip file on the microSD card).
Insert the microSD card in your Raspberry Pi
Power up your Raspberry Pi and check that all is connected (SSD and Ethernet cable)
That’s it! Welcome on board, you are now running your own Bitcoin full node. After 5 minutes, your Umbrel will be accessible at “http://umbrel.local” on any device that’s connected to the same network as the Raspberry Pi.
Once the node is running, you have to wait, because your node is now connecting to other nodes in order to download the entire Bitcoin blockchain. The Bitcoin blockchain currently has about 500GB, so this may take some time depending on your internet speed and the write speed of your hard drive. For me, it took about a week until the entire Bitcoin blockchain was downloaded. You can follow the process at ‘http://umbrel.local’.
However, the first thing I did when my node was up and running was to open the Memepool and watch the Genesis block directly. Definitely better than a lot of Tinder dates or watching random things on Netflix.
Be your own bank
Once your node is up-to-date, there is only one important step left: Connecting your Bitcoin node to your own Bitcoin wallet. Here's where it gets a little complicated, because it depends on what node software and hardware wallet you're using. Thus, I will explain it to you using my setup, namely the BitBox from ShiftCrypto plus Umbrel. Again, you find this information directly on the umbrel forum. Here is a short summary:
Go to the Umbrel App store and install ‘Electrs’
Make sure Tor is up and running on your system. You find a Step-to-Step guide here
Open the BitBox desktop App
Go to Settings > Enable Tor proxy
Check Enable tor proxy and enter: 127.0.0.1:9050
Click Set proxy address and restart the BitBoxApp
Go to Settings > Connect your own full node
Remove existing third-party servers
In the Endpoint, enter <Electrum Remote URL>: 50001
Click check to verify if BitBoxApp is able to connect to your Umbrel
Click Add and restart the BitBoxApp
Congrats! You now run your own bank and no one can hinder you to broadcast to or receive transactions from the Bitcoin network. Besides that, you also contribute to the broader distribution of the Bitcoin ledger. Welcome to the “Running bitcoin” family.
The End
In the end, unfortunately, it got a bit technical. But you can find all the information about the individual Bitcoin node software providers and how to connect your node to your wallet on the various provider pages.
My goal was to show you the importance of running your own node and give you an idea of how to do it step-by-step. Reach out if you have any further questions, I will try my best to answer them. As usually, comments and feedback is always appreciated.
That's it for this episode. Thanks for reading and see you hopefully in the next one. Until then, remember: Running bitcoin matters. ₿ critical, ₿ informed, ₿ prepared.
This is a truly excellent article, I would call this required-reading.
Can a Bitcoin Full Node be run on Android Phones?