18

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)

2 Answers 2

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

14
  • 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. Apr 9, 2014 at 2:27
  • What is a SATA drive? SATA is an interface, you can connect hard drives and Solid state drives through SATA (or so I thought.) Apr 9, 2014 at 10:41
  • And SSD transfer rate is lower than HDD transfer rate? ...? Apr 9, 2014 at 10:48
  • 4
    Warnings 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
    Apr 9, 2014 at 12:07
  • 1
    I never meant to be sarcastic. Sorry if my comment appears that way. Apr 9, 2014 at 13:08
6

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.

1
  • The swap partition needs to be emphasized. Mine uses 900MB~ swap.
    – Tek
    Jan 26, 2016 at 6:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.