Wednesday, 3 July 2013

RPiBTC is now available




RPiBTC Project 





Description


The aim of this project is to run the full Bitcoin client in a low cost Raspberry Pi model B. The Raspberry Pi is inexpensive, doesn't require much power to run, and best of all, it's tiny



Here below is a snapshot taken from a VNC viewer connected to the RPiBT :



The main issue that showed up in this project was the blockchain synchronisation of the Bitcoin client with the Bitcoin network. The synchronisation task requires a lot of read/write access, that the slow SD card can’t easily performs quickly.

To overcome the synchronisation issue, the full blockchain has been copied to the SD card. After the copy, the Raspberry Pi is able to catch up the blockchain synchronisation quickly.

As this was painful to do, I decided to share the RPiBTC image. Before making it public, I’ve added also some interesting features:
  • Remote desktop (VNC Viewer or Remote Desktop Connection)
  • uPNP support for the Bitcoin client.
  • Iptables for the protection

WARNING
Up to now, I don’t find my RPiBTC setup secure enough to hold my wallet. So I recommend you to the same.
WARNING

Installation

RPiBTC is based on Raspbian “wheezy”: 2013-05-25-wheezy-raspbian.zip
Download the image of the latest RPiBTC. The image can be found in the torrent. http://www.lakoco.net/RPI_BTC_V0.1.zip.torrent

Copy the image into a SD card. Currently, at least a 16 GB SD Card is required. For future proof it is better to use a 32 GB SD card. The blockchain’s size is increasing continuously.
Install the SD card in the Raspberry Pi and power up the Raspberry Pi connected to the internet!
After 5~10 minutes, the blockchain will be loaded, and Bitcoin daemon will start to respond. The full synchronisation depends on the delay between RPiBTC last block and Bitcoin current block.

Setup

The bitcoind client will start at boot time as user rpibtc.
You can login to the RPiBTC by a direct keyboard/mouse/screen connected to the RPiBTC or by a remote connection to if you now the IP address.
At first, login as a pi user with password raspberry. Then run the command sudo raspi-config and configure the Raspberry Pi to your flavour. (Keyboard mapping, time zone…)

Default login and password:

User rpibtc, password rpibtc!
User pi, password raspberry
I recommend you to change the password with the command passwd

The RPC login of the bitcoind client is RPiBTC and password is RPiBTC!
I warmly recommend changing it:
  • Login with rpibtc user, and nano ~/.bitcoin/bitcoin.conf
  • Edit rpcuser and rpcpassword values.
  • Login with pi user, and nano ~/.bitcoin/bitcoin.conf
  • Edit rpcuser and rpcpassword with same values as for rpibtc.

The VNCViewer passwd for the pi user is raspberry
I recommend you to change the VNC password vncpasswd

Network setup:

By default the IP address of the RPiBTC is given by DHCP server if there is one in the network. If you want to change the IP setting, visit the page http://www.raspberryshake.com/raspberry-pistatic-ip-address/

The Bitcoin client needs to be setup:
  • Log in as RPiBTC
  • Edit the Bitcoin.conf nano ~/.bitcoin/bitcoin.conf

The RPiBTC comes with some in building application:
VNCviewer and RDC: VNCviewer and RDC are remote desktop connection applications. The applications are installed, but might need some configuration. To configure them please visit http://www.ryukent.com/2013/04/setup-the-raspberry-pi-for-remote-access-with-rdp-or-vnc-and-a-static-ip/
Iptables: Iptables is a firewall. The application is installed, but might need some configuration. To configure it please visit http://virtualitblog.blogspot.be/2013/05/installing-iptables-on-raspberry-pi.html

What next ?

In the future, I might add some more support to RPiBTC
Install P2Pool client ?
Install Miners ?
Install RPC client to bitcoind?
Other ? Let me know what you want

How to use RPiBTC:

In the command line with bitcoind getinfo

To stop Bitcoin daemon: sudo /etc/init.d/bitcoin stop
To start Bitcoin daemon: sudo /etc/init.d/bitcoin start The start-up takes up to 10 min to load the database chains

It is possible to use the bitcoin-qt application. To do this:
  • Start a VNC server for RPiBTC user (Not started at boot in default)
  • Log in with VNCviewer as RPiBTC.
  • Inside a shell, Shutdown the daemon if running.
  • Inside a shell, Start bitcoin-qt

It is also possible to connect to the Bitcoin daemon by RPC, with JSON.

Questions and suggestions:

If comment, question or suggestion comes to mind, send me an email to nono242 [at] advalvas [dot] be

Donate:

If you like this work and want me to work more on it to improve it, don’t hesitate to make a small donation to: 1CAdRfey4Zp5TXLA5UHGmoa2akM1WwED4H

6 comments:

  1. Do you have the steps you did to install bitcoind etc?

    Thanks

    Mark.carline@btinternet.com

    ReplyDelete
  2. I've some hints gathered from some sites :
    Remote desktop :
    http://www.ryukent.com/2013/04/setup-the-raspberry-pi-for-remote-access-with-rdp-or-vnc-and-a-static-ip/
    uPNP : wget http://miniupnp.tuxfamily.org/files/miniupnpc-1.8.tar.gz
    Install bitcoind : http://www.raspberrypi.org/phpBB3/viewtopic.php?t=44225&p=359353
    http://refloop.com/2013/05/how-to-run-bitcoin-qt-on-the-raspberry-pi/
    iptables : http://virtualitblog.blogspot.be/2013/05/installing-iptables-on-raspberry-pi.html
    Make running at boot : http://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html

    ReplyDelete
  3. hi, My name is Ayal, i am running the bitcoin emBassy in Tel aviv.
    I am trying to run a node in the emBassy, and we want to do it with a RPi. your post was very helpful, yet i can't find a way to download the torrent [cause there are no seeders], is there a way i could get the file [do you think seeding it on the RPi running it is an option?]

    ReplyDelete
  4. There is a direct download link here : http://www.lakoco.net/RPI_BTC_V0.1.zip

    Unfortunately this link is 6 months old. It will take weeks to catch up with the blockchain.

    Since then, I've improved the memory managment and now there is no crash of RPi anymore. If I find some spare hours I will upload the new version with an uptodate blockchain.

    ReplyDelete
  5. This is very unique services that exkash is offering in the world ever. I am sure that you will enjoy about to hair that. Now suppose that you have money into your wallet and you want to change into real cash.
    Bitcoin to bank transfer || Bitcoin|| Bitcoin to Bank wire

    ReplyDelete