What are the minimal system requirements to run a full Bitcoin node?

17

2

I want to build a low profile system running as a full Bitcoin node, i.e. just running Bitcoin Core 0.9+ and pretty much nothing else. What is the minimal system (in terms of power consumption) that would be suitable for this task? Just bitcoind will do, no interface or visual interaction needed.

I'd really prefer something where I don't need to build all the software manually.

A simple small netbook would do, I guess. But could I even use something like a Raspberry Pi? Or perhaps some other single board computer?

I assume it'll need at least 20-30 GB disk space (for OS + Bitcoin Core with entire blockchain). Is there a minimum amount of RAM I'd need for bitcoind?

Curious to hear what kind of system and OS you guys would recommend for this!

(P.S. to avoid confusion: I just mean running a full Bitcoin node, not mining)

Monty Carlo

Posted 2014-04-08T23:36:31.107

Reputation: 303

Answers

9

Just some thoughts:

  • As of the time of writing the main net's full blockchain size is 21,670,092,800 bytes, a bit more than 20 GB, that is. So you should have way more disk space that just 20-30 GB.

  • A Raspberry Pi runs with an SD. SD is known for its limited rewriting capabilities (it's not a heavy duty storage solution, it will bite the dust after a while) and on top of that there's also the very important factor of the data transfer rate. SD's top model type (Class U3) maxs at 30 MB/s while a typical SATA-3 disk will max at 750 MB/s, which BTW can go as high as 2 GB/s with a SATA Express attached to a twin PCI Express 3.2 lane, but I guess this is not a low-spec computer any more. And yes, I know, you can mount an external USB HD to a R-Pi but even in this case you'll never get these speeds.

  • Some of the top single board computers could perform well, and I think this is the best solution for a low power-consumption full node. For example if you attach a SATA hard drive to IGEPv5 Full Version you will most probably get quite good performance at a very low cost, both of acquisition but operational as well.

  • A low-spec computer could deliver great results with some lightweight linux distributions, my personal favorite is Lubuntu that comes with an LX11DE UI and then bitcoin's installation would be as easy as:

    Menu > Accessories > LXTerminal > $

    • sudo add-apt-repository ppa:bitcoin/bitcoin
    • sudo apt-get update
    • sudo apt-get install bitcoind

Edit 1: Pictures speak louder than words (as a response to Jannes's comment, so I'm attaching a few performance screenshots from a full node running in Windows that just received a new block and a couple of minutes after that, as well as an analysis of the I/O index:

Verifying incoming block:

Verifying a block

One of the I/O spikes of the block verification at level 3 (default for all clients):

One of the I/O peaks

I/O analysis for the above graphs:

I/O analysis

George Kimionis

Posted 2014-04-08T23:36:31.107

Reputation: 2 854

I don't know that you need "way more" disk space. Besides the block chain, you should just need a few more GB for the operating system. I also don't think of a Bitcoin client as being particularly I/O intensive so an ssd or flash drive might be fine. Back up the wallet, of course. – Nate Eldredge – 2014-04-09T02:27:54.333

What is a SATA drive? SATA is an interface, you can connect hard drives and Solid state drives through SATA (or so I thought.) – ypercubeᵀᴹ – 2014-04-09T10:41:55.507

And SSD transfer rate is lower than HDD transfer rate? ...? – ypercubeᵀᴹ – 2014-04-09T10:48:08.963

4Warnings about rewrite limitations are for all normal practical purposes: FUD! In practice it's nothing to worry about unless you're doing heavy duty things. (FYI: bitcoin does not re-write the same block over and over!) Which brings me to the next critique of this answer: running a bitcoin node is nowhere near heavy duty. All those concerns about throughput are nonsense too. You don't need heavy duty harddisks to run a simple full node. – Jannes – 2014-04-09T12:07:32.493

@NateEldredge the blockchain today is 20 GB. Limiting your new computer to a total of say 30 GB will inevitably cause it to run out of space within the next few months and crash. Keep in mind that last year this very date the blockchain was about 3 times smaller in size. Then it's the O/S files and of course we shouldn't forget about the swap memory which particularly for Ubuntu clones should be at least 0.5 to 2 GB of hard disk space. – George Kimionis – 2014-04-09T12:45:48.373

@ypercube this is a board of sharing knowledge and exchanging opinions, so meaningless and sarcastic comments (like this one: http://bitcoin.stackexchange.com/questions/24434/minimal-system-to-run-a-full-bitcoin-node-netbook-raspberry-pi-etc/24435?noredirect=1#comment29356_24435) serve none of the community's purposes and bring zero value to our conversation. Regarding your second comment, yes, bitcoin deals with tiny amounts of bytes all the time and SSD's data transfer performance is known to significantly drop when lots of individual smaller SSD blocks are accessed at the same time.

– George Kimionis – 2014-04-09T13:00:19.043

1I never meant to be sarcastic. Sorry if my comment appears that way. – ypercubeᵀᴹ – 2014-04-09T13:08:15.483

And your answer does not mention low number of bytes or whether you are referring to read or write rates. Please clarify. Do you really mean that SSD transfer rates are in general lower than HDD rates? – ypercubeᵀᴹ – 2014-04-09T13:32:49.123

@ypercube thanks for making this clear. A bitcoin client processes a constant flow of ongoing transactions and runs LevelDB behind the scenes which filters its I/O through a zippy instance that constantly compresses and decompresses I/O data, thus making reads and writes even smaller in size. What I said was not that SSDs perform worst than HDDs but that their I/O performance significantly drops when they have to deal with many small blocks of data, this is mentioned in all latest benchmarks in the hardware-specific blogs as well as on wikipedia: https://en.wikipedia.org/wiki/Solid-state_drive

– George Kimionis – 2014-04-09T15:05:35.700

So you are saying that the implementation (LevelDB, compression) of the bitcoin clients/nodes cannot effectively use all the SSDs can offer, OK, it makes some sense then. – ypercubeᵀᴹ – 2014-04-09T15:24:03.993

@ypercube exactly, SSDs typically outperform HDDs in everyday operations, however in some cases such as the one described above this might not be the case. – George Kimionis – 2014-04-09T15:28:05.033

@Jannes I have added a few graphs from a full node to my answer. You say that our concerns about throughput are "nonsense", but I'm afraid numbers speak otherwise. SD's top model maxes at 30 MB/s but take a look at the second graph which is the node receiving a block, I/0 gets as high as 19 MB/s and this is just a random block in bitcoin's still-small blocks. So, in the end, I guess it all comes down to what we actually call a heavy duty I/O task. – George Kimionis – 2014-04-09T15:40:17.440

It should be sudo apt-get install bitcoind. – ike – 2014-11-12T16:03:45.327

@ike the packet name has changed name indeed since the time of the writing, updated my answer, thanks. – George Kimionis – 2014-11-12T19:08:46.097

7

You can run a Raspberry Pi with bitcoind no problem. I have several Pi's running bitcoind in various locations and some of them have over 100 connections. Use a 64GB flash card and make sure you have a 512MB swap file. The only limitation you will find is your broadband upload speed , the Pi or it's flashcard will not be the bottlekneck. Use a good quality flash card like Sandisk etc. Also tell your router to route incoming connections on port 8333 to your Pi's IP address. The reason the only limitation is your broadband upload speed is because of parasitic loads such as new users trying to upload the entire blockchain from your Pi. If you do this , try to set your Pi up with blockcahin already loaded onto flash or SSD otherwise it will take some time to synchronise.

PiLover

Posted 2014-04-08T23:36:31.107

Reputation: 71

The swap partition needs to be emphasized. Mine uses 900MB~ swap. – Tek – 2016-01-26T06:22:57.167