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
Up to now, I don’t find my RPiBTC setup secure enough to hold my wallet. So I recommend you to the same.
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.
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
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
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