TL;DR: How much would a Bitcoin node handling 1GB blocks cost today? I did some back-of-the-envelope calculations to attempt an educated guess. 1GB blocks would be able to confirm more than 5,000tx/s. That would be VISA-level scale (which handles, on average, 1,736tx/s). We often hear that we shouldn’t raise the blocksize because then nodes would become too expensive to run. But how expensive exactly?
How Much Would a Bitcoin Node Handling 1GB Blocks Cost Today?
We have the following costs to take into account: Storage, Bandwidth, CPU/Memory, Electricity. For now, I’m going to assume a non-pruned full node (i.e. a node that stores all transactions of the blockchain) for personal use, i.e. for a computer built at home.
I’ll add in the calculations for a pruned Bitcoin node at the end, which would likely be the prefered option for people who merely want to verify the blockchain for themselves. If you don’t care about the assumptions and calculations, you can just jump right to the end of this OpEd. If you spotted any error, please inform me and I’ll update my calculation.
There’s, on average, one block every 10 minutes, that is 144 every day and 4,320 blocks every thirty days. I was able to find a 3TB HDD for $4,750 on Amazon, that is $0.018/GB. Storing all blocks with all transactions of a month (4,320GB) would be $78.96/mo. Prices for storage halved from 2014 to 2017, so we can assume that to half in 2022, thus we can reasonably assume it’d cost around $40/mo in 2022.
But would such an inexpensive hard disk be able to keep up with writing all the data? I found a comparable cheap HDD which can write 127MB/s sequentially (which would be the writing mode of Bitcoin). That would be enough even for 76GB blocks!
Bandwidth is more complicated, because that can’t just be shipped around like HDDs. I’ll just take prices for my country, Germany, using the provider T-online, because I don’t know how it works in the US, for example. You can plug in your own numbers based on the calculations below.
1GB blocks/10 minute mean 1.7MB/s. However, this is an average, and we need some wiggle room for transaction spikes, for example at Christmas or Black Friday. VISA handles 150 million transactions per day, that is 1,736tx/s, but can handle up to 24,000tx/s. So we should be able to handle 13.8x the average throughput, which would be 1.7MB/s x 13.8 = 23.46M/s, or 187.68Mbit/s. The plan on T-online for 250Mbit/s would be 54.95€/mo (plus setup, minus a discount for the first 6 months. which seems to cancel out, so we’ll ignore it), which would be $61.78/mo. This plan is an actual flatrate, so we don’t have to worry about hitting any download limit.
Note, however, that we don’t order bandwidth for only our Bitcoin node, but also for personal use. If we only needed 2MB/s for personal use, the plan would be 34.95€, thus our node would actually only cost the difference of 20€ per month, or $22.50/mo. Nielsen’s Law of Internet Bandwidth claims that a high-end user’s connection speed grows by 50% per year. If we assume this is true for pricing too, the bandwidth cost for ~200Mbit/s/mo. would go down to 12.5% of its today’s cost by 2022, which decreases our number to $2.81/mo.
CPU/Memory will be bought once, and can then run for tens of years, so we’ll count these as setup costs. The specs needed, of course, depend on the optimization of the node software, but we’ll assume the current bottlenecks will have been removed once running a node actually becomes demanding hardware-wise.
Research established a 2.4GHz Intel Westmere (Xeon E5620) CPU can verify 71,000 signatures per second… which can be bought for $32.88 a pair on Ebay (note: this CPU is from Q1’10). We’d need to verify 76,659tx/s at spikes (taking the 13.8x number), so that pair of CPUs (handle 142,000tx/s) seem to just fit right in (given one signature per tx). We’d also have to account for multiple signatures per transaction and all the other parts of verification of transactions, but it seems like the CPU costs are negligible anyway if we don’t buy the freshest hardware available. ~$100 at current prices seem reasonable. Given Moore’s Law, we can assume that prices for CPUs half every two years (transistor count x1.4162), so in three years, the CPU(s) should cost around $35.22 ($100/1.4163).
For memory, we again have to take into account the transaction spikes. If we’re very unlucky, and transactions spike and there won’t be a block for ~1h, the mempool can become very large. If we take the factor of 13.8x from above, and 1h of unconfirmed transactions (20,000,000tx usually, 276,000,000tx on spikes), we’d need 82.8GB (for 300B per transaction).
I found 32GB of RAM (with ECC) for $106, so three of those give us 96GB of RAM for $318 and plenty remaining space for building hash trees, connection management and the operating system. Buying used hardware doesn’t seem to decrease the cost significantly (we actually do need a lot of RAM, compared to CPU power). Price of RAM seems to decrease by a factor of x100 every 10 years (x1.58510), so we can expect 96GB to cost around $79.89 ($318/1.5853) in 2022.
Of course, CPU and memory need to be compatible, which I haven’t taken into account. Chug a mainboard (~$150) and a power supply (~$50) into the mix, and the total would be just over $600 for today’s prices. Even if mainboard and power supply prices remain the same, we’d still only have to pay around $315 for the whole setup in 2022.
I found the following power consumptions: CPU requires 80W, Mainboard needs 40W, 3 memory modules with 9W, and I found a comparable hard drive with 6W. We need N*6W, where N is the number of hard drives (17.28 per year).
So we’d have 129W + N*6W. Electricity cost average at 12ct/kWh in the US, in Germany this is higher at 30.22ct/kWh. In the US, it would cost $11.14 + N*$0.52 (P*12ct/kWh / 1000 * 24h/day *30days / 100ct/$), in Germany 28.06€ + N*1.30€.
At the end of the first year, it would cost $20.12/mo in the US and between 50.52€/mo in Germany. At the end of the second year, it would cost $29.11/mo. for the US and 72.98€/mo for Germany. It increases by $8.98/mo per year in the US and by 22.46€/m. per year in Germany.
Electricity prices in Germany have increased over time due to increased taxation; in the US the price increase has been below inflation rate the last two decades. As it’s difficult to predict price changes here, I’m going to assume prices will remain the same.
In summary, we get:
Storage: $78.96/mo, $40/mo in 2022
Bandwidth: $22.50/mo, $2.81/mo in 2022
Electricity: $20.12/mo (1st year, US), $29.11/mo (2nd year, US); 50.52€/mo (1st year, DE), 72.98€/mo (2nd year; DE)
CPU: Initially $600, $315 in 2022
If we add everything up, for today’s prices, we get $130/mo (US), $183/mo (DE) for the second year and $71.92/mo (US), $115.79/mo (DE) in 2022.
It definitely is quite a bit of money, but consider what that machine would actually do; it would basically do the equivalent of VISA’s payment verification multiple times over, which is an amazing feat. Also, piano lessons cost around $50-$100 each, so if we consider a Bitcoin hobbyist, he would still pay much less for his hobby than a piano player, who’d pay about $400 per month. So it’s entirely reasonable to assume that even if we had 1GB blocks, there would still be lots of people running full-nodes just so.
How about pruned nodes? Here, we only have to store the Unspent Transaction Output Set (UTXO set), which currently clocks in at 2.8GB. If blocks get 1,000 times bigger, we can assume the UTXO set to become 2.8TB. I’ll assume ordinary HDD’s aren’t going to cut it for reading/writing the UTXO set at that scale, so we’ll take some NVMe SSDs for that, currently priced at $105/TB. Three of them would increase our setup by $315 to $915, but decrease our monthly costs. Even in the highest power state, the 3 SSDs will need only 18.6W in total, so we’ll get a constant 147.6W for the whole system.
In total, this is:
New Storage: $0/mo.
Bandwidth: $22.50/mo., $2.81/mo. in 2022 (same as above)
Electricity: $12.75/mo. (US), 32.11€/mo. (DE)
CPU: Initially $915
In total, this is $35.25/mo in the US and $58.57/mo in Germany for today’s prices, or $15.56/mo (US) and $38.88/mo (DE) in 2022’s prices. Which looks very affordable even for a non-hobbyist.
Originally posted as How much would a Bitcoin node handling 1GB blocks cost today? I did some back-on-the-envelope calculations (the comment section is well worth a read) by u/eyeofpython, who is also the creator of Memo.cash
CONTINUE THE SPICE and check out our piping hot VIDEOS. Our podcast, The CoinSpice Podcast, has amazing guests. Follow CoinSpice on Twitter. Join our Telegram feed to make sure you never miss a post. Drop some BCH at the merch shop — we’ve got some spicy shirts for men and women. Don’t forget to help spread the word about CoinSpice on social media.