Bitcoin Forum
May 03, 2024, 10:34:52 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: bitcoind for ARM / Cubieboard / Raspberry Pi  (Read 6984 times)
gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
September 24, 2013, 11:50:50 AM
 #1

Dear all,

I've been experimenting with getting the official bitcoind client working on by Cubieboard (a bit like a Raspberry Pi but with SATA and more RAM).

After a fair bit of pain, I've successfully compiled this and am running it with no issues. When building the blockchain, RAM usage was above 512MB so it might not work perfectly on the Pi, but RAM usage after syncing is much lower.

I've targeted this for Debian Wheezy users but it might also work for Ubuntu users. It's compiled for armel so requires a relatively new ARM processor. The debs are basically recompiled (with dependencies slightly tweaked) source packages from Debian Wheezy and the Ubuntu ppa at https://launchpad.net/~bitcoin/+archive/bitcoin. The most difficult thing was getting db4.8 working for binary wallet.dat compatibility.

All non-repository .debs, including the bitcoind deb itself have been put up at https://bittylicious.com/downloads/.

Donations not necessary. If you like it, please feel free to link to Bittylicious or otherwise spread the word.

Marc
Make sure you back up your wallet regularly! Unlike a bank account, nobody can help you if you lose access to your BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714775692
Hero Member
*
Offline Offline

Posts: 1714775692

View Profile Personal Message (Offline)

Ignore
1714775692
Reply with quote  #2

1714775692
Report to moderator
1714775692
Hero Member
*
Offline Offline

Posts: 1714775692

View Profile Personal Message (Offline)

Ignore
1714775692
Reply with quote  #2

1714775692
Report to moderator
1714775692
Hero Member
*
Offline Offline

Posts: 1714775692

View Profile Personal Message (Offline)

Ignore
1714775692
Reply with quote  #2

1714775692
Report to moderator
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1129


View Profile
September 25, 2013, 08:46:04 PM
 #2

Nicely done. Showing that you can run full nodes on really cheap devices could lead to all kinds of interesting ideas.
gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
September 26, 2013, 07:51:41 AM
Last edit: September 26, 2013, 08:45:53 AM by gigatux
 #3

Thank you. And running the full client on a cheap node is also great for security - you can dedicate the Cubie/Pi to doing this one task alone. When you're storing dozens of Bitcoins, a tiny expense for a dedicated board makes a lot of sense.
cp1
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Stop using branwallets


View Profile
September 26, 2013, 08:12:20 AM
 #4

When I ran bitcoind on my raspberry pi it took 100% cpu and made the system unusable.  It might have been OK after syncing was over, but I didn't have the patience to wait.  Would be interesting to hear of some successes.

Guide to armory offline install on USB key:  https://bitcointalk.org/index.php?topic=241730.0
gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
September 26, 2013, 08:45:00 AM
 #5

With bitcoind just doing its thing (fully synced), here's an example of usage. It's switched between 1% and 30% each few seconds, so seems to average about 15% CPU.

Code:
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND 
 2649 bitcoin   20   0  367m 245m 4460 S  31.7 30.1 852:06.47 bitcoind

As said though, I did notice that bitcoind used more than 50% of the available RAM when syncing, and this is a 1 GB box so it might be too much for a Pi. I bet it would eventually sync though (maybe with swap on SSD?) and once it's synced I bet it'll run just fine.
gdassori
Hero Member
*****
Offline Offline

Activity: 980
Merit: 1002



View Profile
September 26, 2013, 09:29:40 AM
 #6

Hi, gigatux, I was always interested about running bitcoind on raspberrypi. I see you're using a Cubieboard but, maybe it's a first step, interesting too.
What about transaction processing, after synching? Is it fast and smooth or... what ? Did you tried transferring some satoshi?

Thank you!

gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
September 26, 2013, 09:57:22 AM
 #7

Hi, gigatux, I was always interested about running bitcoind on raspberrypi. I see you're using a Cubieboard but, maybe it's a first step, interesting too.
What about transaction processing, after synching? Is it fast and smooth or... what ? Did you tried transferring some satoshi?
It's all working just fine here. Transaction processing (after syncing) is pretty quick and seems to be within a second - this is on real Bitcoin coin sending.

Note that the speed is probably down to a combination of this all running from a SSD (the Cubieboard has a SATA port and bitcoind is I/O intensive) and the CPU being a bit quicker (1GHz vs 700MHz for the Pi). However, I can't see the Pi giving too much trouble.
lelantos
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile WWW
September 27, 2013, 08:34:36 PM
 #8


I think the main concern would be the available RAM. I've run bitcoind on VPS's with 512mb. They run slow, especially with updating the blockchain. I've also had bitcoind crash randomly every couple of hours, but as soon as I upgraded the ram to 2GB - no crashes.

The idea of a lowcost ARM bitcoind "appliance" would be better based off of something with a bit more power:

Another member's post about https://bitcointalk.org/index.php?topic=257438.msg2743058#msg2743058

http://images.gizmag.com/gallery_lrg/utilite-computer-3.jpg

They start at $99.

The other "small boxes" I've thought about running the bitcoind node (and tor gateway box) were:
http://media.memoryexpress.com/Images/Products/MX46361/0?Size=Large
BRIX Ultra Compact PC Kit w/ Core™ i3-3227U, HDMI, DisplayPort
Up in Canada the cost starts around $269+

Lelantos

maaku
Legendary
*
expert
Offline Offline

Activity: 905
Merit: 1011


View Profile
September 27, 2013, 08:45:44 PM
 #9

As said though, I did notice that bitcoind used more than 50% of the available RAM when syncing, and this is a 1 GB box so it might be too much for a Pi. I bet it would eventually sync though (maybe with swap on SSD?) and once it's synced I bet it'll run just fine.

There's no reason you can't sync on a desktop and then copy the data directory over (or just the index files).

I'm an independent developer working on bitcoin-core, making my living off community donations.
If you like my work, please consider donating yourself: 13snZ4ZyCzaL7358SmgvHGC9AxskqumNxP
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4158
Merit: 8382



View Profile WWW
September 27, 2013, 09:55:34 PM
 #10

I know a number of people are running bitcoind on odroid U2 http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135341370451 quite successfully.  It's super fast (for an arm), easily 32x faster than the rpi on some workloads, and not terribly expensive either.  Quad core cortex-a9 1.7GHz, 2GB dram.

(Odroid now seems to have a new 4x A15 + 4x A7 system, but I've not yet talked to anyone that has one)
gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
September 27, 2013, 10:20:47 PM
 #11

It's interesting to know that some people have RAM issues. I also read about a few failed attempts with the Raspberry Pi.

Seriously, get the Cubieboard. A Raspberry Pi with 1 GB RAM (and a slightly faster processor, and SATA) for just a little bit more money makes a fantastic bitcoind server. This is what the .debs were built for, and I assure you it works well in production.
natbyte
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
September 27, 2013, 10:26:35 PM
 #12

Awesome, I have a cubieboard 2 I will give this a try many thanks for producing this  Smiley
K1773R
Legendary
*
Offline Offline

Activity: 1792
Merit: 1008


/dev/null


View Profile
October 02, 2013, 08:05:45 AM
 #13

be aware that this is a sure way to kill your SD Card

[GPG Public Key]
BTC/DVC/TRC/FRC: 1K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y ANC/XPM AK1773RTmRKtvbKBCrUu95UQg5iegrqyeA NMC: NK1773Rzv8b4ugmCgX789PbjewA9fL9Dy1 LTC: LKi773RBuPepQH8E6Zb1ponoCvgbU7hHmd EMC: EK1773RxUes1HX1YAGMZ1xVYBBRUCqfDoF BQC: bK1773R1APJz4yTgRkmdKQhjhiMyQpJgfN
gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
October 02, 2013, 08:07:39 AM
 #14

be aware that this is a sure way to kill your SD Card
Are you sure? Blockchain writes don't typically write over the same area of card. You'll record block information, and then just leave it sitting there.

I recommend running from a SSD anyway as they're so much quicker and more reliable.
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1129


View Profile
October 02, 2013, 03:01:01 PM
 #15

LevelDB is designed for hard disks, not SSDs. It's not only about writing blocks when they arrive but updating the databases too.
gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
October 02, 2013, 03:24:08 PM
 #16

LevelDB is designed for hard disks, not SSDs. It's not only about writing blocks when they arrive but updating the databases too.
So I imagine this is more of an issue with SD cards then? I think most SSDs have wear levelling (hence they're used for all sorts of IO intensive operations, and often for databases with few issues).
Ecurb123
Full Member
***
Offline Offline

Activity: 182
Merit: 100


View Profile
October 02, 2013, 06:40:08 PM
 #17

I am working a project like this too so I'd like to know if the SD card will be ok or not. Also how long will a 32Gb card last us with the growing blockchain?
K1773R
Legendary
*
Offline Offline

Activity: 1792
Merit: 1008


/dev/null


View Profile
October 07, 2013, 03:15:02 PM
 #18

LevelDB is designed for hard disks, not SSDs. It's not only about writing blocks when they arrive but updating the databases too.
So I imagine this is more of an issue with SD cards then? I think most SSDs have wear levelling (hence they're used for all sorts of IO intensive operations, and often for databases with few issues).
this is a issue of any NAND device so far, "wear levelling" is just a nasty workaround (which often dosnt work well)

[GPG Public Key]
BTC/DVC/TRC/FRC: 1K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y ANC/XPM AK1773RTmRKtvbKBCrUu95UQg5iegrqyeA NMC: NK1773Rzv8b4ugmCgX789PbjewA9fL9Dy1 LTC: LKi773RBuPepQH8E6Zb1ponoCvgbU7hHmd EMC: EK1773RxUes1HX1YAGMZ1xVYBBRUCqfDoF BQC: bK1773R1APJz4yTgRkmdKQhjhiMyQpJgfN
gigatux (OP)
Sr. Member
****
Offline Offline

Activity: 343
Merit: 250



View Profile
October 07, 2013, 08:15:22 PM
 #19

this is a issue of any NAND device so far, "wear levelling" is just a nasty workaround (which often dosnt work well)
Surely then you're just saying that using SSDs have no real use in the industry (considering that their real benefit is in random I/O, and wear levelling is similar to writes being spread over the disk)?

Either way, this is all a bit off topic now. All I can say is that good quality SSDs seem to work very well for databases in my professional (hosting services) capacity, and combined with a Cubieboard, it's been running very stable now with an uptime of two weeks and not a single issue.
jl2012
Legendary
*
Offline Offline

Activity: 1792
Merit: 1093


View Profile
October 27, 2013, 06:06:56 PM
 #20

I compiled it myself on the new cubieboard3 and is running now (I'm using BDB5.1 as I don't know how to do it with 4.8. I'm not using the wallet, anyway)

Donation address: 374iXxS4BuqFHsEwwxUuH3nvJ69Y7Hqur3 (Bitcoin ONLY)
LRDGENPLYrcTRssGoZrsCT1hngaH3BVkM4 (LTC)
PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!