Archiv für den Monat: September 2017

Bitcoin Full Node on Raspberry Pi

Last week I bought a Raspberry Pi 3 (model B) to set up a proof of concept of a Blockchain connection to IoT devices (but that’s another story) …

Some time ago I read http://www.raspberrypifullnode.com/ and decided, to give it a try now.
This posting will not repeat everything from David’s article, just the changes from then (2014) to now (9/2017).

Micro SD card: The Bitcoin blockchain has a size of around 145 GByte at the moment, which leaves a 256 GB cards as an option, if you really want to store the complete blockchain …

Operating system: As I didn’t have NOOBS at hand, I downloaded the current version of Raspbian Stretch here and used Etcher to „burn“ the image to th SD card.

During the first boot, I connected a monitor and a keyboard, then configured the WiFi and activated the ssh deamon using

sudo raspi-config

After a

sudo reboot

I had a fully working system, which I could control with Putty (and WinSCP).

Now I followed David’s article, but had to apply some changes due to changes in the Bitcoin source. After updating and upgrading with

sudo apt-get update
sudo apt-get upgrade


I installed the dependencies …

sudo apt-get install build-essential autoconf libssl-dev libboost-dev libboost-chrono-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev libtool libevent-dev

… and then downloaded the current version (branch 0.15) of the Bitcoin source:

mkdir ~/bitcoin
cd ~/bitcoin
git clone -b 0.15 https://github.com/bitcoin/bitcoin.git
cd bitcoin/

The building took „some“ time …

./autogen.sh
./configure --disable-wallet
make
sudo make install

… but in the end everything was OK.

Remark: I chose to build the node with –disable-wallet, as I did not care to run a wallet on the system. See the discussion here concerning Berkley DB 4.8 and incompatible wallet formats …

After starting the deamon with

bitcoind &

it started to connect to other nodes and sync the blockchain …

Voilà – all up and running 😉

MultiChain – offene Plattform für Blockchain Anwendungen

Vor etwa eineinhalb Jahren hatte ich schon einmal das Vergnügen, die MultiChain Plattform des englischen Unternehmens Coin Sciences Ltd. zu evaluieren. Vor etwas mehr als einem Monat wurde die Version 1.0 offiziell gelauncht, siehe https://www.multichain.com/blog/2017/08/multichain-1-released-new-partners/.

Grund genug, die aktuelle Version anzutesten und … ich bin begeistert! Die stabile Plattform war ja schon zuvor als extrem flexibel bekannt, d.h. dass mit den vielfältigen Parametrierungsmöglichkeiten eine große Anzahl von Usecases (im Speziellen für permissioned Blockchains) abgedeckt werden kann.

Was weiters sehr gefällt, ist die extrem gute Dokumentation und das engagierte Entwicklerteam, welches bei eventuellen Fragen oder Problemchen stets flott weiterhilft.

Einen Schwerpunkt legte ich auf das Ausprobieren der APIs. Für alle möglichen Umgebungen stehen auf Github Libraries und Demos bereit, ich testete das PHP-API mit dem Web-Demo, siehe https://github.com/MultiChain/multichain-web-demo.

GUI MultiChain Demo / API Test

Das Web-Demo selbst ist zwar etwas verbesserungswürdig, was etwa den Umfang der Funktionen betrifft, die RPC Aufrufe des Deamons sind aber extrem performant. Kein Wunder, ist es doch eine native C/C++ Implementierung (auf Basis des Bitcoin Clients).

Die Argumentation der Entwickler, dass sich mit den in dieser Plattform eingesetzten „Assets“ und „Streams“ eine Vielzahl von Anwendungen realisieren lassen, für die man heutzutage (unnötigerweise?) Smart Contracts einsetzen würde, ließ mich dann auch noch schmunzeln.

Mal sehen, wie es weitergeht …