Jak uruchomić pełny węzeł Bitcoin Cash (Bitcoin Unlimited) na Raspberry Pi?

1 100
Avatar for Telesfor
4 years ago

Dostępny również w: deutsch, english, italiano

Parę tygodni temu Jamie Redman napisał artykuł o pełnym węźle Bitcoin Cash. Wspomniał w nim o tym, że pełny węzeł Bitcoin Cash może być uruchomiony na Raspberry Pi. Ponieważ ja taki węzeł posiadam i pytano mnie o to jak to zrobić, zdecydowałem się o tym napisać, jak ja to robię.

Aby go uruchomić używam:

  • Raspberry Pi 3 (32 Bit, 1 GB RAM, 16 GB SD-Karte)

  • twardy dysk 1 TB USB

  • Bitcoin Unlimited Full Node Software

  • połączenie z internetem ↓ 90,0 Mbit/s ↑ 32,0 Mbit/s

Kupiłem Raspberry Pi z zainstalowanym systemem operacyjnym, więc nie musiałem go instalować. Jeśli chcecie go instalować sami, można tu przeczytać jak to zrobić.

Aby połączyć się z routerem używam kabla, ale można do tego celu również użyć WiFi.

Jak zainstalować Bitcoin Unlimited na Raspberry Pi, można przeczytać tutaj . Jaki rodzaj pliku (arm32 oder arm64) musi być pobrany, zależy od tego, jakiego systemu operacyjnago używacie. Ja używam systemu 32-bitowego.

Aby pobrać i zainstalować software użyłem następujących komend:

wget https://www.bitcoinunlimited.info/downloads/bch-unlimited-1.9.0.0-arm32.tar.gz
tar xvfz bch-unlimited-1.9.0.0-arm32.tar.gz
cd bch-unlimited-1.9.0.0/
sudo mv ./bin/bitcoind /usr/local/bin/bitcoind
sudo mv ./bin/bitcoin-cli /usr/local/bin/bitcoin-cli
sudo mv ./bin/bitcoin-miner /usr/local/bin/bitcoin-miner
sudo mv ./bin/bitcoin-tx /usr/local/bin/bitcoin-tx
sudo mv ./bin/bitcoin-qt /usr/local/bin/bitcoin-qt
sudo mv ./bin/testbitcoin /usr/local/bin/testbitcoin
sudo mv ./include/bitcoinconsensus.h /usr/local/include/bitcoinconsensus.h
sudo mv ./lib/libbitcoinconsensus.so /usr/local/lib/libbitcoinconsensus.so
sudo mv ./lib/libbitcoinconsensus.so.0 /usr/local/lib/libbitcoinconsensus.so.0
sudo mv ./lib/libbitcoinconsensus.so.0.0.0 /usr/local/lib/libbitcoinconsensus.so.0.0.0
sudo mv ./lib/libbitcoincash.so /usr/local/lib/.
sudo mv ./lib/libbitcoincash.so.0 /usr/local/lib/.
sudo mv ./lib/libbitcoincash.so.0.0.0 /usr/local/lib/.
sudo mv ./share/* /usr/local/share/.

Łączę się z Raspberry Pi zdalnie i nie podłączam do niej monitora.

Synchronizacja całego blockchaina na Raspberry Pi trwa długo, dlatego połączyłem twardy dysk do mojego peceta i zsynchronizowałem go tam. W tym celu zainstalowałem na moim pececie wersję windowsową Bitcoin Unlimited. Na twardym dysku utworzyłem dla blockchaina katalog "Bitcoin", ale można go nazwać dowolnie. Następnie uruchomiłem programm bitcoin-qt i podałem katalog "Bitcoin" jako katalog docelowy.

Synchronizacja blockchaina trwała ok. 22 godzin.

Po dokonaniu synchronizacji, zamknąłem program bitcoin-qt i połączyłem twardy dysk za pomocą kabla USB z Raspberry Pi. Trardy dysk został automatycznie rozpoznany i podłaczony jako /media/pi/Volume . Następnie musiałem w konfiguracji mojego węzła wpisać gdzie znajduje się blockchain. Aby to uczynić otwarłem plik bitcoin.conf za pomocą nano (jeśli tego pliku jeszcze nie ma musi zostać utworzony):

pi@raspberrypi:~ $ nano /home/pi/.bitcoin/bitcoin.conf

i wpisałem tam następującą linię:

datadir=/media/pi/Volume/Bitcoin

Teraz wystartowałem węzeł wpisując:

bitcoind -daemon

Jeśli węzeł jest aktywny można używać różnych komend aby się z nim porozumieć. Aby się dowiedzieć jakich komend można używać należy wpisać:

bitcoin-cli help

Jeśli się użyje parametru getinfo:

pi@raspberrypi:~ $ bitcoin-cli getinfo
{
  "version": 1070000,
  "protocolversion": 80003,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 611003,
  "timeoffset": 0,
  "connections": 21,
  "peersgraphene": 9,
  "peersxthinblock": 9,
  "peers_cmpctblock": 18,
  "proxy": "",
  "difficulty": 352048068313.6447,
  "testnet": false,
  "keypoololdest": 1574687063,
  "keypoolsize": 101,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "status": "ready",
  "errors": "",
  "fork": "Bitcoin Cash"
}

otrzyma się informacje ogólne o węźle. Jeśli się wpisze parametr getmempoolinfo:

pi@raspberrypi:~ $ bitcoin-cli getmempoolinfo
{
  "size": 313,
  "bytes": 105558,
  "usage": 268480,
  "maxmempool": 300000000,
  "mempoolminfee": 0.00000000,
  "tps": 0.17,
  "peak_tps": 7.83
}

otrzyma sie informacje o Mempool.

W firewallu na moim routerze otwarłem port 8333, aby mój węzeł był widziany z internetu. Mogę tutaj sprawdźić czy to się udało.

Prozes bitcoinid przy normalnym obciążeniu zużywa tylko ok. 5% CPU und 31% RAM.

top - 14:16:18 up 17:10,  3 users,  load average: 0,14, 0,14, 0,08
Tasks: 134 total,   1 running, 133 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,4 us,  0,4 sy,  0,0 ni, 98,2 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :    922,1 total,     37,1 free,    381,8 used,    503,2 buff/cache
MiB Swap:    100,0 total,     62,2 free,     37,8 used.    479,0 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  888 pi        20   0  625044 299700   3872 S   5,6  31,7  65:19.41 bitcoind
 2250 pi        20   0   10188   2796   2436 R   1,3   0,3   0:00.40 top

Mój Raspberry Pi (wraz z twardym dyskiem) zużywa ok. 5 bis 6 Watt.

Znaczy to, że używanie węzła kosztuje mnie mniej niż 1 € na miesiąc.

A ponieważ posiadam Raspberry Pi, mogę używać go również do innych celów. Mam na nim zainstalowany również program do blokowania reklam pi.hole .

PS

Zalecam wam od czasu do czasu sporządzanie kopii blockchaina.

2
$ 1.50
$ 1.00 from @btcfork
$ 0.50 from @Read.Cash
Avatar for Telesfor
4 years ago

Comments

Bardzo ciekawy i interesujący post. Bardzo mi pomógł ! :) Czekam na nowe artykuły od Ciebie, pracuj dalej !

$ 0.01
4 years ago