Compilazione bitcoind su Synology

Tempo di lettura:2 minuti

 

Possiedo un NAS Synology DS-211J. Questo ottimo prodotto possiede queste caratteristiche: Marvell Kirkwood mv6281 1.2Ghz ARM [email protected], 128MB of RAM. E’ acceso 24/24 in quanto lo utilizzo per backup e quant’altro e, qualche giorno fa, mi sono chiesto se fosse stato possibile compilarci bitcoind.

La sua compilazione, e ovviamente poi esguzione, mi sarebbe stata utile per eventuali progetti futuri. Lo scopo non è minare in quanto il processore ARM è così poco potente che per ricavare un bitcoin ci impiegherei forse 10 anni, ma bensì creare servizi web. Infatti la prima idea è stata crearmi un mio portafoglio virtuale sfruttabile in rete tramite la successiva installazione di qualche Gui-Web che sfrutta bitcoind.

All’inizio provai a compilare direttamente sulla piattaforma ma vuoi un po per la sua lentezza nella compilazione, vuoi per la difficoltà a trovare le librerie necessarie, ho deciso di compilare in Linux Debian in cross-compiling. Questa tecnica permette di compilare il codice sorgente su una macchina con architettura diversa da quella a cui si vuole destinare il programma. Il vantaggio sta anche nel fatto (nel mio caso) che sfruttavo un processore veloce rispetto al “povero” ARM.

Per fare questo ho dovuto procurarmi:

* Il corretto toolchain per il mio DS211J

http://pkgs.fedoraproject.org/repo/pkgs/openldap/db-4.8.26.tar.gz

* http://www.openssl.org/source/openssl-1.0.1c.tar.gz

* http://sourceforge.net/projects/boost/files/boost/1.49.0/boost_1_49_0.tar.bz2

Per prima cosa ho installato il toolchain (seguendo le istruzioni presenti nel pdf di Synology).

Ho creato una nuova cartella e ho depositato tutti i file elencati qui sopra. Ora vi scrivo i comandi passo per passo:

Installiamo le basi per compilare:

apt-get install git build-essential libncurses5-dev bison flex gettext texinfo libgmp3-dev libmpfr-dev

Scarichiamo dal git ufficiale di bitcoin la distribuzione

git clone https://github.com/bitcoin/bitcoin.git

Creiamo un file sh e incolliamoci dentro quanto segue:

export CC=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc
export CXX=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++
export LD=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-ld
export CFLAGS=-I/usr/local/arm-none-linux-gnueabi/include
export LDFLAGS=-L/usr/local/arm-none-linux-gnueabi/lib
export PATH=$PATH:/usr/local/arm-none-linux-gnueabi/bin
export CROSS_PREFIX=arm-none-linux-gnueabi
 
 
tar -xvzf db-4.8.26.tar.gz
cd db-4.8.26/build_unix
../dist/configure --enable-cxx --host=${CROSS_PREFIX} --prefix=/root/arm-libs &&
make &&
make install &&
cd ../..
 
tar -xvzf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c/
./Configure --prefix=/root/arm-libs dist &&
make &&
make install &&
cd ..
 
tar -xvjf boost_1_49_0.tar.bz2
cd boost_1_49_0/
echo "using gcc : arm : /usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ ;" >> tools/build/v2/user-config.jam
./bootstrap.sh
./bjam toolset=gcc-arm link=static
./bjam toolset=gcc-arm link=static --prefix=/root/arm-libs install
cd ..
 
export BOOST_INCLUDE_PATH=/root/arm-libs/include
export BDB_INCLUDE_PATH=/root/arm-libs/include
export OPENSSL_INCLUDE_PATH=/root/arm-libs/include
export BOOST_LIB_PATH=/root/arm-libs/lib
export BDB_LIB_PATH=/root/arm-libs/lib
export OPENSSL_LIB_PATH=/root/arm-libs/lib
 
cd /bitcoin/src/
 
make STATIC=1 -f makefile.unix bitcoind USE_UPNP=-
arm-none-linux-gnueabi-strip bitcoind

Dopo un po di tempo troverete il vostro eseguibile in bitcoin/src/

PRECISAZIONE:

Il vostro amato NAS utilizza una partizione di root con X mega. Di conseguenza quando avvierete l’eseguibile, il programma incomincerà a scaricarvi il blockchain in /root/.bitcoin/blockchain Questo sta a significare che la partizione root si riempierà in breve tempo (visto e conisderato che ormai il blockchain occupa circa 3 Giga). La soluzione è avviare il demone bitcoind con questo comando:

bitcoind -datadir=/volume1/.bitcoin/

In questo caso bitcoind considererà /volume1/.bitcoin/ la sua directory predefinita, sfruttando quindi le dimensioni della partizione più capiente.

 

Avatar

Mirko Feriotti aka Ziomik

Profeta del Bitcoin sin dagli esordi e fermamente convinto sulle potenzialità della moneta decentralizzata.


Accedi per lasciare un commento

Non perdere i nuovi articoli e le opportunità sulle criptovalute. Iscriviti alla newsletter!
Iscrizione
WP Twitter Auto Publish Powered By : XYZScripts.com