Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: rupy on April 30, 2013, 02:11:11 PM



Title: Bitcoin with Raspberry Pi
Post by: rupy on April 30, 2013, 02:11:11 PM
Has anyone compiled bitcoind on the RPi already? Does it work well?


Title: Re: Compile bitcoind on Raspberry Pi
Post by: grue on April 30, 2013, 03:39:21 PM
see: https://bitcointalk.org/index.php?topic=169963.0


Title: Re: Compile bitcoind on Raspberry Pi
Post by: rupy on May 02, 2013, 12:00:32 PM
Howto compile bitcoind on raspberry pi:

> sudo apt-get install libboost1.50-dev libboost-filesystem1.50-dev libboost-system1.50-dev libboost-program-options1.50-dev libboost-thread1.50-dev libcurl4-openssl-dev libdb5.3++-dev libminiupnpc-dev
> wget https://github.com/bitcoin/bitcoin/archive/master.zip
> unzip master.zip
> cd bitcoin-master/src
> make -f makefile.unix bitcoind

Compilation takes about 1 hour, downloading the blockchain about 20 hours and the bitcoind executable is 43MB!

Other than that it runs really well compared to AWS micro instance, and since RPi colocation is free and AWS micro would be atleast 20$/month with horrible CPU IO wait; this is a nobrainer!

Goodbye AWS!


Title: Re: Compile bitcoind on Raspberry Pi
Post by: rupy on May 03, 2013, 06:10:44 AM
Ok, so bitcoin is terminated after 5 hours by the raspberry OS because of memory:

Code:
May  2 22:19:17 raspberrypi kernel: [46311.694148] net_ratelimit: 422920 callbacks suppressed
May  2 22:19:19 raspberrypi kernel: [46312.180357] kworker/0:0 invoked oom-killer: gfp_mask=0x102d0, order=3, oom_adj=0, oom_score_adj=0
May  2 22:19:19 raspberrypi kernel: [46312.180439] [<c0013a7c>] (unwind_backtrace+0x0/0xf0) from [<c0395134>] (dump_header.isra.15+0x74/0x1a0)
May  2 22:19:19 raspberrypi kernel: [46312.180490] [<c0395134>] (dump_header.isra.15+0x74/0x1a0) from [<c0091364>] (oom_kill_process+0x294/0x418)
May  2 22:19:19 raspberrypi kernel: [46312.180520] [<c0091364>] (oom_kill_process+0x294/0x418) from [<c00918cc>] (out_of_memory+0x1cc/0x29c)
May  2 22:19:19 raspberrypi kernel: [46312.180547] [<c00918cc>] (out_of_memory+0x1cc/0x29c) from [<c0094c98>] (__alloc_pages_nodemask+0x608/0x63c)
May  2 22:19:19 raspberrypi kernel: [46312.180581] [<c0094c98>] (__alloc_pages_nodemask+0x608/0x63c) from [<c00bc7f8>] (cache_alloc_refill+0x338/0x6a0)
May  2 22:19:19 raspberrypi kernel: [46312.180605] [<c00bc7f8>] (cache_alloc_refill+0x338/0x6a0) from [<c00bcc24>] (__kmalloc+0xc4/0x11c)
May  2 22:19:19 raspberrypi kernel: [46312.180636] [<c00bcc24>] (__kmalloc+0xc4/0x11c) from [<c02e6db8>] (__kmalloc_reserve+0x1c/0x64)
May  2 22:19:19 raspberrypi kernel: [46312.180661] [<c02e6db8>] (__kmalloc_reserve+0x1c/0x64) from [<c02e7740>] (__alloc_skb+0x74/0x158)
May  2 22:19:19 raspberrypi kernel: [46312.180683] [<c02e7740>] (__alloc_skb+0x74/0x158) from [<c02e89b0>] (__netdev_alloc_skb+0x98/0xd0)
May  2 22:19:20 raspberrypi kernel: [46312.180712] [<c02e89b0>] (__netdev_alloc_skb+0x98/0xd0) from [<c026aacc>] (rx_submit+0x1c/0x1f8)
May  2 22:19:20 raspberrypi kernel: [46312.180736] [<c026aacc>] (rx_submit+0x1c/0x1f8) from [<c026b184>] (kevent+0x210/0x27c)
May  2 22:19:20 raspberrypi kernel: [46312.180761] [<c026b184>] (kevent+0x210/0x27c) from [<c0035024>] (process_one_work+0x150/0x40c)
May  2 22:19:20 raspberrypi kernel: [46312.180784] [<c0035024>] (process_one_work+0x150/0x40c) from [<c0035604>] (worker_thread+0x150/0x498)
May  2 22:19:20 raspberrypi kernel: [46312.180815] [<c0035604>] (worker_thread+0x150/0x498) from [<c003a7c8>] (kthread+0x88/0x94)
May  2 22:19:20 raspberrypi kernel: [46312.180850] [<c003a7c8>] (kthread+0x88/0x94) from [<c000e9fc>] (kernel_thread_exit+0x0/0x8)
May  2 22:19:20 raspberrypi kernel: [46312.180861] Mem-info:
May  2 22:19:20 raspberrypi kernel: [46312.180869] Normal per-cpu:
May  2 22:19:20 raspberrypi kernel: [46312.180879] CPU    0: hi:  186, btch:  31 usd:   0
May  2 22:19:20 raspberrypi kernel: [46312.180903] active_anon:41475 inactive_anon:41483 isolated_anon:0
May  2 22:19:20 raspberrypi kernel: [46312.180903]  active_file:112 inactive_file:181 isolated_file:0
May  2 22:19:20 raspberrypi kernel: [46312.180903]  unevictable:12 dirty:0 writeback:7317 unstable:0
May  2 22:19:20 raspberrypi kernel: [46312.180903]  free:30314 slab_reclaimable:457 slab_unreclaimable:4189
May  2 22:19:20 raspberrypi kernel: [46312.180903]  mapped:100 shmem:0 pagetables:415 bounce:0
May  2 22:19:20 raspberrypi kernel: [46312.180954] Normal free:121256kB min:8192kB low:10240kB high:12288kB active_anon:165900kB inactive_anon:165932kB active_file:448kB inactive_file:724kB unevictable:48kB isolated(anon):0kB isolated(file):0kB present:487680kB mlocked:48kB dirty:0kB writeback:29268kB mapped:400kB shmem:0kB slab_reclaimable:1828kB slab_unreclaimable:16756kB kernel_stack:1288kB pagetables:1660kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:8387 all_unreclaimable? yes
May  2 22:19:20 raspberrypi kernel: [46312.180968] lowmem_reserve[]: 0 0
May  2 22:19:20 raspberrypi kernel: [46312.180985] Normal: 11514*4kB 6410*8kB 1461*16kB 1*32kB 0*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 121256kB
May  2 22:19:20 raspberrypi kernel: [46312.181029] 7639 total pagecache pages
May  2 22:19:20 raspberrypi kernel: [46312.181037] 7346 pages in swap cache
May  2 22:19:20 raspberrypi kernel: [46312.181046] Swap cache stats: add 43265, delete 35919, find 2742/2832
May  2 22:19:20 raspberrypi kernel: [46312.181052] Free swap  = 0kB
May  2 22:19:20 raspberrypi kernel: [46312.181059] Total swap = 102396kB
May  2 22:19:20 raspberrypi kernel: [46312.208849] 122880 pages of RAM
May  2 22:19:20 raspberrypi kernel: [46312.208874] 30560 free pages
May  2 22:19:20 raspberrypi kernel: [46312.208882] 2558 reserved pages
May  2 22:19:20 raspberrypi kernel: [46312.208888] 4654 slab pages
May  2 22:19:20 raspberrypi kernel: [46312.208894] 221 pages shared
May  2 22:19:20 raspberrypi kernel: [46312.208900] 7346 pages swap cached
May  2 22:19:20 raspberrypi kernel: [46312.208909] [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
May  2 22:19:20 raspberrypi kernel: [46312.208963] [  142]     0   142      720        2       5      133         -1000 udevd
May  2 22:19:20 raspberrypi kernel: [46312.208983] [  248]     0   248      719        2       5      137         -1000 udevd
May  2 22:19:20 raspberrypi kernel: [46312.209003] [  270]     0   270      719        2       5      135         -1000 udevd
May  2 22:19:20 raspberrypi kernel: [46312.209020] [ 1411]     0  1411      436       12       4       16         -1000 ifplugd
May  2 22:19:20 raspberrypi kernel: [46312.209037] [ 1440]     0  1440      436       12       5       16         -1000 ifplugd
May  2 22:19:20 raspberrypi kernel: [46312.209055] [ 1684]     0  1684     6992       64       7       49             0 rsyslogd
May  2 22:19:20 raspberrypi kernel: [46312.209071] [ 1716]     0  1716     1223       39       7      391         -1000 dhclient
May  2 22:19:20 raspberrypi kernel: [46312.209088] [ 1764]     0  1764      948       11       5       31             0 cron
May  2 22:19:20 raspberrypi kernel: [46312.209105] [ 1806]   104  1806      794       39       5       34             0 dbus-daemon
May  2 22:19:20 raspberrypi kernel: [46312.209123] [ 1843]   102  1843     1377       29       6       70             0 ntpd
May  2 22:19:20 raspberrypi kernel: [46312.209140] [ 1872]     0  1872     1552       20       6       88         -1000 sshd
May  2 22:19:20 raspberrypi kernel: [46312.209157] [ 1900] 65534  1900      503        6       6       26             0 thd
May  2 22:19:20 raspberrypi kernel: [46312.209173] [ 1911]     0  1911      935        1       6       32             0 getty
May  2 22:19:20 raspberrypi kernel: [46312.209190] [ 1912]     0  1912      935        1       6       32             0 getty
May  2 22:19:20 raspberrypi kernel: [46312.209207] [ 1913]     0  1913      935        1       5       32             0 getty
May  2 22:19:20 raspberrypi kernel: [46312.209223] [ 1914]     0  1914      935        1       5       32             0 getty
May  2 22:19:20 raspberrypi kernel: [46312.209240] [ 1915]     0  1915      935        1       6       32             0 getty
May  2 22:19:20 raspberrypi kernel: [46312.209257] [ 1916]     0  1916      935        1       5       32             0 getty
May  2 22:19:20 raspberrypi kernel: [46312.209286] [ 1917]     0  1917      515        1       4       31             0 getty
May  2 22:19:20 raspberrypi kernel: [46312.209306] [ 1923]     0  1923     6886       80      11      199             0 console-kit-dae
May  2 22:19:20 raspberrypi kernel: [46312.209323] [ 1990]     0  1990     5836       82       9       44             0 polkitd
May  2 22:19:20 raspberrypi kernel: [46312.209342] [ 7086]     0  7086      438        1       6       25             0 mysqld_safe
May  2 22:19:20 raspberrypi kernel: [46312.209359] [ 7437]   107  7437    81073      245      42     6951             0 mysqld
May  2 22:19:20 raspberrypi kernel: [46312.209377] [ 7438]     0  7438      836        1       5       20             0 logger
May  2 22:19:20 raspberrypi kernel: [46312.209394] [ 7810]     0  7810     2451       43       8      118             0 sshd
May  2 22:19:20 raspberrypi kernel: [46312.209410] [ 7817]  1000  7817     2451       75       8      106             0 sshd
May  2 22:19:20 raspberrypi kernel: [46312.209427] [ 7818]  1000  7818     1421      190       6      139             0 bash
May  2 22:19:20 raspberrypi kernel: [46312.209456] [13583]     0 13583      420       18       4        3             0 minissdpd
May  2 22:19:20 raspberrypi kernel: [46312.209476] [14084]  1000 14084   124336    74874     209    16776             0 bitcoind

Is there something one can do to work around this?


Title: Re: Compile bitcoind on Raspberry Pi
Post by: gmaxwell on May 03, 2013, 08:11:42 AM
Add more swap, run bitcoind from git.


Title: Re: Compile bitcoind on Raspberry Pi
Post by: rupy on May 03, 2013, 08:29:31 AM
Add more swap, run bitcoind from git.


Doesen't swap wear the SD card?

How do you mean "run bitcoind from git"?

I just built picocoin https://bitcointalk.org/index.php?topic=128055.msg2014606#msg2014606 (https://bitcointalk.org/index.php?topic=128055.msg2014606#msg2014606):

> sudo apt-get install libevent-dev libjansson-dev automake libglib2.0-dev
> wget https://github.com/jgarzik/picocoin/archive/master.zip
> unzip master.zip
> cd picocoin-master
> ./autogen.sh
> ./configure
> make

It doesn't have payment yet, so hold your horses but this could be what I'm looking for!


Title: Re: Compile bitcoind on Raspberry Pi
Post by: behindtext on May 04, 2013, 12:35:52 AM
Add more swap, run bitcoind from git.


good point in the other thread about faster arm SoCs.

Quote
A semi-ontopic aside:   If you were thinking about getting a rpi to run bitcoin you will be infinitely happier with a odroid u2: http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135341370451  it's much faster than an rpi, _far_ more than just the clockspeed and core count implies.  Failing that, a beaglebone: http://beagleboard.org/Products/BeagleBone%20Black is still close in price and should be more than twice the speed of an rpi while drawing a lot less power.  The rpi is a really handicapped arm, and Bitcoind/bitcoin-qt is designed to be a _full_ participant in the bitcoin network, it's not really meant for small systems. You don't really want to skimp on the cpu power if you don't have to.

due to the hw constraints, maybe try copying the db files, etc, to the rpi from a more powerful machine. that way your disk won't get beat up as badly.


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: rupy on May 04, 2013, 12:48:12 PM
I'm just adding tutorials on how to build stuff for the RPi here:

Here's BFGMiner for ASICMiner/BFL:

> sudo apt-get install autoconf libtool libncurses-dev yasm curl libcurl4-openssl-dev pkg-config git libjansson-dev uthash-dev libevent-dev
> git clone git://github.com/luke-jr/bfgminer.git bfgminer
> cd bfgminer
> ./autogen.sh
> ./configure
> make

> ./bfgminer -o stratum+tcp://stratum.bitcoin.cz:3333 -O user:pass -S icarus:/dev/ttyUSB0

I'm going to try and run both my SC 60GH on one RPi, will be interesting to see if it works!


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: bukaj on May 04, 2013, 10:38:08 PM
Try archlinux on RPi, but AFAIK don't expect spectacular hashrates.


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: rupy on May 06, 2013, 09:31:33 PM
Just FYI, since picocoin is not ready for prime time (and I think most projects will never be ready for prime time except the satoshi client; because nobody, and I mean NOBODY, wants to be responsible of erasing real money)...

This is insane though, individuals will probably never run this thing... I mean 10GB and lots of CPU/memory...


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: Aido on May 09, 2013, 12:23:19 AM
Howto compile bitcoind on raspberry pi:

> sudo apt-get install libboost1.50-dev libboost-filesystem1.50-dev libboost-system1.50-dev libboost-program-options1.50-dev libboost-thread1.50-dev libcurl4-openssl-dev libdb5.3++-dev libminiupnpc-dev
> wget https://github.com/bitcoin/bitcoin/archive/master.zip
> unzip master.zip
> cd bitcoin-master/src
> make -f makefile.unix bitcoind

Compilation takes about 1 hour, downloading the blockchain about 20 hours and the bitcoind executable is 43MB!


The strip command may help reduce the size of the  bitcoind executable.

Here's my procedure for building bitcoind on a Raspberry pi:

  • wget -O - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download | zcat - | tar xvf -
  • cd bitcoin-0.8.1-linux/src/src
  • make -f makefile.unix USE_UPNP= USE_IPV6=1
  • strip bitcoind

Code:
root@pi:/var/tmp/bitcoin-0.8.1-linux/src/src# ls -lh bitcoind
-rwxr-xr-x 1 root root 42M May  8 23:19 bitcoind
root@pi:/var/tmp/bitcoin-0.8.1-linux/src/src# strip bitcoind
root@pi:/var/tmp/bitcoin-0.8.1-linux/src/src# ls -lh bitcoind
-rwxr-xr-x 1 root root 2.5M May  8 23:38 bitcoind

You can see that the strip command reduced the binary from 42MB to 2.5MB

Also to reduce SD card wear I use the -printtoconsole option to stop constant writing to the debug.log file.

I may also link some of the other log files to /dev/null


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: rupy on May 09, 2013, 12:50:32 AM
Ok, but what about RAM memory running out? How do you "fix" that, reboot every 12 hours?


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: Aido on May 09, 2013, 10:35:42 AM
Ok, but what about RAM memory running out?

I have removed all unnecessary packages (e.g. ALL graphical stuff as my pi is headless). Although I have added a few others like tor and clamav.

I have one of the newer 512MB pi's. Shortly after a reboot it has about 68MB free memory.

KiB Mem:    448776 total,   378504 used,    70272 free,    28172 buffers
KiB Swap:   102396 total,        0 used,   102396 free,   264292 cached


This reduces over time and settles between 10MB and 20MB free. Analysis of memory management is a bit of a black art.

I currently have 64MB allocated to GPU. Given my headless setup this is excessive and I can reduce it if necessary making more memory available to CPU.


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: rupy on May 09, 2013, 06:33:11 PM
No I meant with bitcoind, it runs out of memory after 4-5 hours... no matter what you do.


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on May 22, 2013, 10:37:43 AM
FYI: If you wan't to recursively both power the RPi with the hub and control the hub with your RPi at the same time just cut the red wire in the uplink cable.

Code:
-P +-------+
 | |       |
 | c       |
 | |       |
+-------+  |
|  hub  |  | < SOLUTION: Cut the red wire here!
+-------+  |
 | | | |   |
 p o o o   |
 |         |
 | +-----+ |
 +-| RPi |-+
   +-----+

o = other "power hungry" devices
P = PSU power
p = USB power
c = hub controller

For my part o = 1xBE USB and 2x50GH BFL, I hope the RPi will be able to run them!


Title: Re: Bitcoin with Raspberry Pi
Post by: qualalol on May 22, 2013, 02:17:42 PM
FYI: If you wan't to recursively both power the RPi with the hub and control the hub with your RPi at the same time just cut the red wire in the uplink cable.

Code:
-P +-------+
 | |       |
 | c       |
 | |       |
+-------+  |
|  hub  |  | < SOLUTION: Cut the red wire here!
+-------+  |
 | | | |   |
 p o o o   |
 |         |
 | +-----+ |
 +-| RPi |-+
   +-----+

o = other "power hungry" devices
P = PSU power
p = USB power
c = hub controller

For my part o = 1xBE USB and 2x50GH BFL, I hope the RPi will be able to run them!
That shouldn't be necessary -- both my RPIs are powered from the hub they control without any issues so far. (Although that might depend on the hub...) I've never heard of anyone having to cut wires for this sort of thing to work.


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: maqifrnswa on May 22, 2013, 02:19:50 PM
No I meant with bitcoind, it runs out of memory after 4-5 hours... no matter what you do.

I got a pi up and running as a bitcoind node just to try it out once, and it was working with the old leveldb and only 256 MB memory.

I bootstrapped the blockchain:

-loadblock=<file>

from
http://eu2.bitcoincharts.com/blockchain/

and set
  -checkblocks=<n>       How many blocks to check at startup (default: 288, 0 = all)
  -checklevel=<n>        How thorough the block verification is (0-4, default: 3)

to smaller numbers (don't remember what, specifically)


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on May 22, 2013, 02:59:29 PM
That shouldn't be necessary -- both my RPIs are powered from the hub they control without any issues so far. (Although that might depend on the hub...) I've never heard of anyone having to cut wires for this sort of thing to work.

Hm, interesting! I just feel a bit uneasy about feeding the routers "own" power back into it.

Feels like it might work fine until there is a spike in the grid and then: poof your hub/pi is toast, and if you're unlucky your house burns down with it...

Do you know what the USB spec. says about this?

Edit: Please see this quote from a moderator on the raspberry forum:

Quote
If you leave the red wire intact, (and are thus "back-feeding" the PI, as its commonly called) you are in fact bypassing the PI's F3 polyfuse.

There is one single case I am aware of where this caused trouble when that user also used a badly designed power supply to feed the hub. The power supply wasn't properly regulated, and unloaded it outputted more than six volt! When he plugged it in it triggered the over-voltage protection diode of the PI (which triggers at about six volt) the resulting short circuit current though the diode, unimpeded by any fuse, overheated the diode so much that it melted a hole in the enclosure of his PI!

Its thus much better to "cut the red wire", and not to back-feed the PI!


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: rupy on May 22, 2013, 03:14:24 PM
No I meant with bitcoind, it runs out of memory after 4-5 hours... no matter what you do.

I got a pi up and running as a bitcoind node just to try it out once, and it was working with the old leveldb and only 256 MB memory.

Ok, but I need it to run 24/7 stable...


Title: Re: Bitcoin with Raspberry Pi
Post by: Deafboy on May 22, 2013, 03:44:52 PM
Just make it restart every hour, or put it in the loop so it will start up right after the crash. I have solved my electrum server stability issues with that and I was never woken up by alert from monitoring again. :)


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on May 22, 2013, 03:48:55 PM
Yeah, but you can't run anything professional with a bitcoind that is restarted every hour.

I think the bitcoin community really needs to move out of the garage; if we're ever going to get this thing going.


Title: Re: Bitcoin with Raspberry Pi
Post by: Aido on May 22, 2013, 04:42:08 PM
I had bitcoind 0.8.1 running on a Raspberry Pi and performance was terrible.....very high CPU usage and too many r/w operations.

Jeff Garzik, one of the core bitcoin developers, is writing a lightweight C library called libccoin (https://github.com/jgarzik/picocoin) and a client called picocoin (https://github.com/jgarzik/picocoin).

When finished this should be suitable for running on low powered devices like a Raspberry Pi.

Although I am concerned about running any client that will store the entire blockchain on an SDCard as it would significantly reduce the cards lifespan.


Title: Re: Bitcoin with Raspberry Pi
Post by: qualalol on May 22, 2013, 04:48:28 PM
Yeah, but you can't run anything professional with a bitcoind that is restarted every hour.

I think the bitcoin community really needs to move out of the garage; if we're ever going to get this thing going.
You can't go professional running anything on a Raspberry Pi. It's not designed as a professional piece of equipment. Especially something as memory/storage intensive as bitcoin.

Ps. you should probably look at http://binerry.de/post/28263824530/raspberry-pi-watchdog-timer for making sure you can deal with your Pi locking up (never happened to me, but I don't push mine very hard) if you are using it for something important.

Quote
Hm, interesting! I just feel a bit uneasy about feeding the routers "own" power back into it.

Feels like it might work fine until there is a spike in the grid and then: poof your hub is toast, and if you're unlucky your house burns down with it...

Do you know what the USB spec. says about this?

Edit: Please see this quote from a user on the raspberry forum:

Quote
If you leave the red wire intact, (and are thus "back-feeding" the PI, as its commonly called) you are in fact bypassing the PI's F3 polyfuse.

There is one single case I am aware of where this caused trouble when that user also used a badly designed power supply to feed the hub. The power supply wasn't properly regulated, and unloaded it outputted more than six volt! When he plugged it in it triggered the over-voltage protection diode of the PI (which triggers at about six volt) the resulting short circuit current though the diode, unimpeded by any fuse, overheated the diode so much that it melted a hole in the enclosure of his PI!

Its thus much better to "cut the red wire", and not to back-feed the PI!
http://raspberrypi.stackexchange.com/questions/4880/powered-hubs-backfeeding-and-safety has some more useful info. But basically unless you've cheaped out on an unregulated USB hub you won't cause damage, and in most cases things will just work without problems. Neither of my PIs has failed yet, the one which I have always-on hasn't crashed once. (48 days uptime ATM, i.e. since the last time I was rearranging cabling and had to unplug it.) If you're really interested I reccomend looking at some USB hub circuits online...

// Edit: and for some more detail look at http://www.raspberrypi.org/phpBB3/viewtopic.php?f=26&t=17560


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on May 22, 2013, 09:25:40 PM
You can't go professional running anything on a Raspberry Pi. It's not designed as a professional piece of equipment.

I'm building a PaaS on a cluster of RPi's, so I obviously think you are wrong here.

I'm going to modify one of these, I mean why risk it?

http://img1.wmxstatic.com/DataImage.ashx/8043473/190/142


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: razorfishsl on May 22, 2013, 11:16:17 PM
Ok, but what about RAM memory running out? How do you "fix" that, reboot every 12 hours?

Don't try and run such software on shitty little cutter CPU's, go HERE:

http://www.hardkernel.com/renewal_2011/main.php

Get a U2.... 4 CPU & 2GB FAST memory, I've had one on line since Jan......7/24
More importantly the 10/100 & the 'other' USB ports are split out onto SEPARATE USB channels back to the chip, so... no bottle neck.

But as with ANY small Flash card based system you really need to watch your write caches.

Only had one issue , where I shorted the power and had to pull the SDcard to FSchk it on a 'real' computer. (two if you count the PSU of the shitty china telicom ADSL blowing up..)

Just wish they were a bit cheaper...... but they ARE worth the money.....
Really am happy with my purchase.



Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on May 23, 2013, 12:01:21 AM
There is no free hosting for these afaik, and the linux on RPi is stable because the community is huge.

And as I said, I now run the bitcoind on another server, so I already solved this problem.

I will use battery backup and RUT-500 redundant 3G to handle fiber/power failures for uptime at home.


Title: Re: Bitcoin with Raspberry Pi
Post by: ct1aic on May 23, 2013, 07:02:07 PM
Greetings.

Did you tried minepeon? I have it running in 3 Raspberry Pi's and they are stable for many days, 24/7.

Site: http://minepeon.com/index.php/Main_Page (http://minepeon.com/index.php/Main_Page)

Best regards.


Title: Re: Bitcoin with Raspberry Pi
Post by: tingwahk on May 27, 2013, 04:35:10 PM
Greetings.

Did you tried minepeon? I have it running in 3 Raspberry Pi's and they are stable for many days, 24/7.

Site: http://minepeon.com/index.php/Main_Page (http://minepeon.com/index.php/Main_Page)

Best regards.

Here's the thread the developer of MinePeon uses:
https://bitcointalk.org/index.php?topic=137934.0 (https://bitcointalk.org/index.php?topic=137934.0)



Title: Re: Bitcoin with Raspberry Pi
Post by: Chaoskampf on June 25, 2013, 05:37:37 PM
Does anyone know the status of picocoin? I can't wait for a stable version. It would help my project immensely.


Title: Re: Compile bitcoind on Raspberry Pi
Post by: peapodamus on June 26, 2013, 11:28:53 PM
Add more swap, run bitcoind from git.


Doesen't swap wear the SD card?

(snip)
If you are concerned about swap wearing the SD card, just use a USB thumb drive or something to hold a swapfile instead.


Title: Re: Compile bitcoind on Raspberry Pi
Post by: qualalol on June 27, 2013, 06:49:24 AM
Add more swap, run bitcoind from git.


Doesen't swap wear the SD card?

(snip)
If you are concerned about swap wearing the SD card, just use a USB thumb drive or something to hold a swapfile instead.
I've worn out a few thumb-drives doing that back in the days when I used Knoppix (but those were fairly cheap thumb drives), better bet is a hard drive or ssd (not sure how good an idea the latter is) -- not as fast, but the RPi isn't that fast either.


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: runeks on June 27, 2013, 10:56:28 PM
No I meant with bitcoind, it runs out of memory after 4-5 hours... no matter what you do.
I've had bitcoind running for 19 days straight on my Raspberry Pi. I had to add a swapfile for it to not run out of memory, but version 0.8.2 uses a lot less memory than previous versions (like 500MB vs 1.5GB), so use the newest version you can.

The bitcoin data directory is on a 16 GB USB stick, along with the swap file. I don't know how long it will last until it wears out, but these sticks are cheap as hell anyways, even the ones with good random read performance like the Corsair Flash Voyager.

bitcoind is currently using 71.7% of the 512 MB of memory (less the 16MB allocated for the GPU) on my Pi, so it's not like it has to use the swap file all the time, only occasionally. I have nginx, php5, varnish and mysqld running as well, serving a Wordpress blog (runeks.dk), and it's fairly responsive.


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on June 27, 2013, 11:05:05 PM
ok, but 16GB is only going to last you a couple of months at this rate, the block chain grows roughly 1 GB per month. I got a 56GB ssd for the blockchain, if they haven't added proper pruning to the satoshi client by when that runs out; I'm selling all my BTC and ejecting.

btw, bitcoind 0.8.2 uses 1.1 GB RAM on my atom server, so still memory hog, that's not a problem when you have 4GB though...


Title: Re: Bitcoin with Raspberry Pi
Post by: MWNinja on June 27, 2013, 11:37:58 PM
It will eat SD cards like there is no tomorrow; the Pi really isn't a very good target for running bitcoind.  The Cubieboard is in this same class of hardware (uses an Allwinner A10 ARM) and has a sata connector to allow for better storage options.  It's much better suited for running bitcoind.


Title: Re: Bitcoin with Raspberry Pi
Post by: runeks on June 27, 2013, 11:40:17 PM
ok, but 16GB is only going to last you a couple of months at this rate, the block chain grows roughly 1 GB per month. I got a 56GB ssd for the blockchain, if they haven't added proper pruning to the satoshi client by when that runs out; I'm selling all my BTC and ejecting.
Yeah, I'll need to upgrade to a 32 GB stick in a while. But it's like $25 so no problem. I can even add those 32 GB to my 16 GB, if I use RAID 0.

It will eat SD cards like there is no tomorrow; the Pi really isn't a very good target for running bitcoind.  The Cubieboard is in this same class of hardware (uses an Allwinner A10 ARM) and has a sata connector to allow for better storage options.  It's much better suited for running bitcoind.
Use something disposable then, and cheap. $25 for a 32 GB USB stick isn't much if it'll last you a year at least. And by then, you can probably get 64 GB for the same price as 32 GB costs now.

According to this data (http://www.mkomo.com/cost-per-gigabyte), storage space per dollar doubles every 14 months. So you can probably get by just by buying for $25 worth of storage every year or two.


Title: Re: Bitcoin with Raspberry Pi
Post by: Oliverdjob on June 28, 2013, 12:59:45 AM
Ive seen it run before. Someone a while back posted a picture of them running a Jalapeņo with a Pi and it had extremely low power usage to maximize the income of the miner. Its a pretty neat little gadget and would love to get my hands on one soon!


Title: Re: Bitcoin with Raspberry Pi
Post by: runeks on June 28, 2013, 01:19:08 AM
Ive seen it run before. Someone a while back posted a picture of them running a Jalapeņo with a Pi and it had extremely low power usage to maximize the income of the miner. Its a pretty neat little gadget and would love to get my hands on one soon!
Beware that the Pi is slow. And just just slow, but slow slow. As I mentioned, it took roughly a week for it to build the transaction database from a complete blockchain that was already on disk. I'd say the CPU is probably 10 times slower than a single core of my Core 2 Quad 2.83 GHz CPU in my PC. Also, it has problems with USB. I can't get a SATA-to-USB device to work with it, even though it works fine with my PC.


Title: Re: Bitcoin with Raspberry Pi
Post by: peapodamus on June 29, 2013, 03:33:15 AM
If an RPI can power a USB HDD, why not just use something like this:
http://www.bestbuy.com/site/WD+-+My+Passport+1TB+External+USB+3.0/2.0+Portable+Hard+Drive+-+Black/4911796.p;jsessionid=07E5A29C98026DB4AABC33D835F2FF79.bbolsp-app04-153?id=1218575757942&skuId=4911796


That would solve the problems with crashing(put a swap partition on the drive) and space(which hasn't come up yet, but Bitcoind takes up lots of space for the blockchain)


Title: Re: Bitcoin with Raspberry Pi
Post by: runeks on June 29, 2013, 04:27:46 AM
The Pi can't power an external hard drive. So you'll have to get a powered USB hub. But otherwise, it should work, although it won't necessarily, because the Pi has problems with its USB interface, for some reason (as demonstrated by my SATA-to-USB HDD enclosure not working).

Also, as per my calculations above, it might even be cheaper to just go for the USB stick, and upgrade as necessary.


Title: Re: Bitcoin with Raspberry Pi
Post by: asc366 on July 02, 2013, 12:09:42 PM
I'm just finished compiling bitcoind 0.8.3 on my RPi, running pidora (instead of, what most people seem to run, raspbian).
I too feared the SD card wearing out pretty quickly so I expored a little iSCSI LUN from my Synology NAS to the Pi and put the whole bitcoin datadir on that LUN. This can also be done using NFS or Samba of course, YMMV.

You can even put your swap on the exported LUN. I'm not sure which is faster, but it at least doesn't wear my SD card out this way!

I'm now downloading the bootstrap.dat to see if I can use that as a "kickstarter".


Title: Re: Bitcoin with Raspberry Pi
Post by: anonymous_acc on July 05, 2013, 05:37:37 AM
http://learn.adafruit.com/system/assets/assets/000/009/195/medium800/PiMiner-Screen1a.jpg?1371926445

http://learn.adafruit.com/piminer-raspberry-pi-bitcoin-miner?view=all (http://learn.adafruit.com/piminer-raspberry-pi-bitcoin-miner?view=all)



http://learn.adafruit.com/system/assets/assets/000/009/122/medium800/PiMiner-Screen1.jpg?1371626551


Title: Re: Bitcoin with Raspberry Pi
Post by: super3 on July 11, 2013, 01:56:27 AM
I've seen a few people with electrum running on their Pi's. Bitcoind is just not going to cut it for a Pi.


Title: Re: Bitcoin with Raspberry Pi
Post by: buyer99 on September 24, 2013, 06:09:11 PM
I still don't understand..... Why not just store the datadir and swap on a thumb drive or on an external usb drive (w powered hub)? Isn't the solution really that simple?


Title: Re: Bitcoin with Raspberry Pi
Post by: super3 on September 24, 2013, 10:24:12 PM
I still don't understand..... Why not just store the datadir and swap on a thumb drive or on an external usb drive (w powered hub)? Isn't the solution really that simple?
Sure you could, but that would require a few days to sync and a dozen steps to get working. Would probably run pretty poorly too.


Title: Re: Bitcoin with Raspberry Pi
Post by: rini17 on November 19, 2013, 02:09:44 AM
Can confirm Electrum works fine, although slowly - creating a transaction may take tens of seconds depending on number of inputs. What's interesting, under PyPy interpreter it runs even slower (commandline only, PyQt won't work with PyPy).

Swap is not necessary, but I'm using zram (swapping to compressed memory). Aside from saving sd card also prevents accidental write of sensitive data there. To enable it, you have to keep original raspbian kernel, not install from rpi-update.


Title: Re: Bitcoin with Raspberry Pi
Post by: crazy_rabbit on January 07, 2014, 09:19:51 AM
I'm thinking about running a full node on Raspberry Pi with a web interface that looks like blockchain or Coinbase so that you could have a 'home server' that was secure and that supported the network. With so many thin clients running we're really losing a lot of Nodes.


Title: Re: Bitcoin with Raspberry Pi
Post by: rini17 on January 18, 2014, 12:49:07 PM
I'm thinking about running a full node on Raspberry Pi with a web interface that looks like blockchain or Coinbase so that you could have a 'home server' that was secure and that supported the network. With so many thin clients running we're really losing a lot of Nodes.
It plainly won't work on Pi. Even if it would sync eventually, it would be so slow that it'd provide no added value to your nor to the network. Just stop dreaming and build yourself $150 celeron miniitx system + some > 100GB HDD from drawer. It would also easily support additional p2p goodies you'll want to try some other day.

For example I'm using this one as all-in-one bitcoind, electrum server, litecoind, freenet, home router, print server, anything: http://www.mini-itx.com/store/~GA-C847N


Title: Re: Bitcoin with Raspberry Pi
Post by: Zelek Uther on January 19, 2014, 07:40:56 PM
Are there updated instructions on how to run bitcoind on a Raspberry Pi? I'm trying to get the latest bitcoind working (0.86), and it requires different installation steps to what is in this thread.

I've fudged my way through, and now need to install Berkeley DB 4.8... unsure how to proceed.

Also, how do you store the blockchain on a different directory to the default?


Title: Re: Bitcoin with Raspberry Pi
Post by: Michail1 on January 31, 2014, 02:04:37 AM
Are there updated instructions on how to run bitcoind on a Raspberry Pi? I'm trying to get the latest bitcoind working (0.86), and it requires different installation steps to what is in this thread.

I've fudged my way through, and now need to install Berkeley DB 4.8... unsure how to proceed.

Also, how do you store the blockchain on a different directory to the default?

The issue is that the master doesn't have the .unix file in src anymore.
So, download the 0.8.6.zip file.

> sudo apt-get install libboost1.50-dev libboost-filesystem1.50-dev libboost-system1.50-dev libboost-program-options1.50-dev libboost-thread1.50-dev libcurl4-openssl-dev libdb5.3++-dev libminiupnpc-dev
> wget https://github.com/bitcoin/bitcoin/archive/0.8.6.zip
> unzip 0.8.6.zip
> cd bitcoin-0.8.6/src
> make -f makefile.unix bitcoind


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on April 08, 2015, 10:31:40 AM
Anyone tried bitcoind on a Raspberry Pi 2?


Title: Re: Bitcoin with Raspberry Pi
Post by: GoingAround on April 08, 2015, 03:16:11 PM
Anyone tried bitcoind on a Raspberry Pi 2?

It should work as usual, the only issue its the ram once again, and I'm not sure if the compilation process takes in fact that its a quadcore processor now instead of a single core for b+.


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on April 08, 2015, 05:20:28 PM
Ok, so 1 GB not enough!


Title: Re: Bitcoin with Raspberry Pi
Post by: doof on April 08, 2015, 11:41:55 PM
I documented how to do it here https://github.com/bitcoinbrisbane/10000nodes


Title: Re: Bitcoin with Raspberry Pi
Post by: doof on April 08, 2015, 11:42:49 PM
Are there updated instructions on how to run bitcoind on a Raspberry Pi? I'm trying to get the latest bitcoind working (0.86), and it requires different installation steps to what is in this thread.

I've fudged my way through, and now need to install Berkeley DB 4.8... unsure how to proceed.

Also, how do you store the blockchain on a different directory to the default?

See move blocks step https://github.com/bitcoinbrisbane/10000nodes


Title: Re: Bitcoin with Raspberry Pi
Post by: doof on April 08, 2015, 11:44:10 PM
I'm thinking about running a full node on Raspberry Pi with a web interface that looks like blockchain or Coinbase so that you could have a 'home server' that was secure and that supported the network. With so many thin clients running we're really losing a lot of Nodes.

I've started a project called 10,000 node project.  www.10000nodes.com to do just that.  PM if your interested in helping.


Title: Re: Bitcoin with Raspberry Pi
Post by: rupy on April 09, 2015, 10:14:23 PM
I don't think there is only 7.000 nodes, do you mean open nodes with port 8333 accessible?


Title: Re: Bitcoin with Raspberry Pi
Post by: pazor_true on May 27, 2015, 05:05:51 PM
hi there,

may be the following start script can someone help to start and run a bitcoind (0.10.x) on a RPi 1 Model B(+) (512MB RAM)

/usr/local/bin/bitcoind -datadir=/opt/bitcoin -dns -noupnp -maxconnections=10 -timeout=5000 -noirc -gen=0 -maxorphantx=25 -maxorphanblocks=25 -server -rpcuser=user-rpcpassword=mypass -rpcallowip=192.168.1.0/255.255.255.0 -rpcbind=192.168.1.1 -rpcport=8332 -dbcache=25 -daemon -checkblocks=25 -maxreceivebuffer=1250 -maxsendbuffer=250 -disablewallet
renice 20 `pidof bitcoind`> /dev/null


somethink more on
https://bitcointalk.org/index.php?topic=1062396.msg11465182#msg11465182

pazor


Title: Re: Bitcoin with Raspberry Pi
Post by: TierNolan on May 27, 2015, 07:19:11 PM
hi there,

may be the following start script can someone help to start and run a bitcoind (0.10.x) on a RPi 1 Model B(+) (512MB RAM)

/usr/local/bin/bitcoind .... -maxconnections=10 ....

This is a very low value for connections.

The shortage on the network is mostly peers that accept incoming connections.  If you run a peer, then you use up 8 of those slots.

With 10 connections, you only have 2 left for incoming connections.

A 16 connection limit means that you use up 8 slots but give back 8 slots.  This means that you are helping as much as you are consuming.

24 connections would mean that you consume 8 and give back 16, so you are helping the system.


Title: Re: Bitcoin with Raspberry Pi
Post by: pazor_true on May 27, 2015, 10:01:36 PM
thank you for your comment.
i will try to run the RPi 1 bitcoin node with 16 connections.


Title: Re: Bitcoin with Raspberry Pi
Post by: pazor_true on May 28, 2015, 04:48:56 PM
i have tried and it (RPi 1 B(+)) works fine with 16 connections.


Title: Re: Compile bitcoind/bfgminer on Raspberry Pi
Post by: rupy on June 11, 2015, 10:38:42 PM
I'm just adding tutorials on how to build stuff for the RPi here:

Here's BFGMiner for ASICMiner/BFL:

> sudo apt-get install autoconf libtool libncurses-dev yasm curl libcurl4-openssl-dev pkg-config git libjansson-dev uthash-dev
> git clone git://github.com/luke-jr/bfgminer.git bfgminer
> cd bfgminer
> ./autogen.sh
> ./configure
> make

> ./bfgminer -o stratum+tcp://stratum.bitcoin.cz:3333 -O user:pass -S icarus:/dev/ttyUSB0

I'm going to try and run both my SC 60GH on one RPi, will be interesting to see if it works!

Sorry about the necro and bit offtopic, but my win7 machine suddenly can't mine with the Monarches any more, but my RPi 2 with this works fine!

100% dunno why, the win machine spouts:

Code:
[2015-06-11 19:34:43] BFL 0aa: Failed to send queue
[2015-06-11 19:34:43] BFL 0aa: Received unexpected queue result response:
[2015-06-11 19:34:43] BFL 0aa: Error: Get temp returned empty string/timed out


Title: Re: Bitcoin with Raspberry Pi
Post by: cryptotipz on June 15, 2015, 02:10:30 PM
btc on the raspberry pi is very slow and laggy compared to a normal laptop. Only run lightweight wallets on the raspberry pi.


Title: Re: Bitcoin with Raspberry Pi
Post by: tspacepilot on June 16, 2015, 03:31:39 AM
btc on the raspberry pi is very slow and laggy compared to a normal laptop. Only run lightweight wallets on the raspberry pi.

I think he said it's working fine on his pi2 and failing on windoze.

@rupy, I know nothing of windows, can't help you.  But as you said, since this thread is about bitcoin on raspberry pi, maybe you should start a new thread.


Title: Re: Bitcoin with Raspberry Pi
Post by: cryptotipz on June 18, 2015, 04:53:20 AM
btc on the raspberry pi is very slow and laggy compared to a normal laptop. Only run lightweight wallets on the raspberry pi.

I think he said it's working fine on his pi2 and failing on windoze.

@rupy, I know nothing of windows, can't help you.  But as you said, since this thread is about bitcoin on raspberry pi, maybe you should start a new thread.

it keeps crashing on mine tho :/, running latest raspbian


Title: Re: Bitcoin with Raspberry Pi
Post by: tspacepilot on June 18, 2015, 05:42:23 AM
btc on the raspberry pi is very slow and laggy compared to a normal laptop. Only run lightweight wallets on the raspberry pi.

I think he said it's working fine on his pi2 and failing on windoze.

@rupy, I know nothing of windows, can't help you.  But as you said, since this thread is about bitcoin on raspberry pi, maybe you should start a new thread.

it keeps crashing on mine tho :/, running latest raspbian

Right, I sholuld admit, I saw a post from gmaxwell in another thread talking about how bitcoin-core is probably not going to run well even on the pi2.  This is above and beyond all the disk writes to your sandisk.  I haven't tried it myself.  Out of curiosity, though, what's the error you're getting on the crash?


Title: Re: Bitcoin with Raspberry Pi
Post by: iram66680 on June 18, 2015, 06:01:53 AM
btc on the raspberry pi is very slow and laggy compared to a normal laptop. Only run lightweight wallets on the raspberry pi.

I think he said it's working fine on his pi2 and failing on windoze.

@rupy, I know nothing of windows, can't help you.  But as you said, since this thread is about bitcoin on raspberry pi, maybe you should start a new thread.

it keeps crashing on mine tho :/, running latest raspbian

Right, I sholuld admit, I saw a post from gmaxwell in another thread talking about how bitcoin-core is probably not going to run well even on the pi2.  This is above and beyond all the disk writes to your sandisk.  I haven't tried it myself.  Out of curiosity, though, what's the error you're getting on the crash?
I saw people running Bitcoin Core in Pi Ver. B with no issue but a hard drive have to be attached. The write speed of SD cards are very slow depending on your grade. You can easily attached it to a old hard disk with sufficient space though. You can try a few commands (https://bitcointalk.org/index.php?topic=765934) to reduce the load. The minimum requirement of Bitcoin Core should be around 1GB.


Title: Re: Bitcoin with Raspberry Pi
Post by: bitnanigans on June 18, 2015, 08:15:05 AM
btc on the raspberry pi is very slow and laggy compared to a normal laptop. Only run lightweight wallets on the raspberry pi.

I think he said it's working fine on his pi2 and failing on windoze.

@rupy, I know nothing of windows, can't help you.  But as you said, since this thread is about bitcoin on raspberry pi, maybe you should start a new thread.

it keeps crashing on mine tho :/, running latest raspbian

Right, I sholuld admit, I saw a post from gmaxwell in another thread talking about how bitcoin-core is probably not going to run well even on the pi2.  This is above and beyond all the disk writes to your sandisk.  I haven't tried it myself.  Out of curiosity, though, what's the error you're getting on the crash?
I saw people running Bitcoin Core in Pi Ver. B with no issue but a hard drive have to be attached. The write speed of SD cards are very slow depending on your grade. You can easily attached it to a old hard disk with sufficient space though. You can try a few commands (https://bitcointalk.org/index.php?topic=765934) to reduce the load. The minimum requirement of Bitcoin Core should be around 1GB.

Alternatively, you can use a board which supports mSATA like the Banana Pi or Hummingboard, which enables you to plug in an mSATA SSD for more storage. SSDs are very cheap now compared to the earlier years.