
KÄ uzstÄdÄ«t Kubuntu 19.10 kopÄ ar pilnu bitkoina nodi (pilnu mezglu) lietotÄjiem bez jebkÄdas darba pieredzes ar Linux. OriÄ£inÄls ir publicÄts Hackernoon, blogeris StopAndDecrypt. PiedÄvÄjam jums tulkojumu, kas pavisam noteikti noderÄs cilvÄkiem, kuriem ir interese par Bitcoin tehnoloÄ£isko pusi un kuri grib griezt pilno Bitcoin nodi mÄjÄs.
PriekÅ”vÄrds
Nesen es uzmontÄju jaunu SSD disku savam portatÄ«vajam datoram (tÄpÄc man nebija jÄapgriež nodes lielums klÄpjdatorÄ) un nodomÄju, ka varu uzrakstÄ«t instrukciju.
Nekad neesat izmantojuÅ”i Linux? Vai jÅ«s nezinÄt, ko nozÄ«mÄ āapgriezt nodiā? Labi. Å is raksts domÄts jums. Es gribu, lai jÅ«s pÄrslÄdzaties uz Linux operÄtÄjsistÄmu, un Bitcoin jÅ«s motivÄtu to darÄ«t. TÄ ir Linux rokasgrÄmata, un bitkoina nodes noregulÄÅ”anas rokasgrÄmata. Ja nevÄlaties lasÄ«t visu Å”o tekstu, varat vienkÄrÅ”i kopÄt komandas paÅ”Ä apakÅ”Ä.
Es domÄju, ka jÅ«s zinÄt, kÄ lejupielÄdÄt un samontÄt ISO-failu. Es neizdarīŔu nekÄdas izmaiÅas noklusÄjuma iestatīŔanas konfigurÄcijÄ, izÅemot visa diska Å”ifrÄÅ”anu, kÄ arÄ« darbvirsmas un dizaina iestatÄ«jumu importÄÅ”anu. Es negrasos uzstÄdÄ«t kaut ko citu, izÅemot bitkoina nodi.
1. daļa. KonfigurÄÅ”ana
Izlaidiet Å”o sadaļu pilnÄ«bÄ, ja jums jau ir Linux.
LejupielÄdÄt ISO Kubuntu
Kubuntu ir Ubuntu, tikai skaistÄka. PÄdÄjais LTS ā 19.10.
InstalÄjiet ISO USB vai CD
Sekojiet un izpildiet to, kas rakstÄ«ts Windows Ubuntu vai macOS oficiÄlajÄ instalÄÅ”anas rokasgrÄmatÄ.
OS uzstÄdīŔana
Iestatiet datora nosaukumu, lietotÄjvÄrdu un paroli. Mans vÄrds Å”ajÄ instrukcijÄ bÅ«s Satoshi, un datora nosaukums – nNakamoto. PÄc instalÄÅ”anas un pieteikÅ”anÄs jÅ«su darbvirsmai jÄizskatÄs Å”Ädi:
Paskatieties kÄ viss strÄdÄ, ejiet uz Pielikumiem un palaidiet terminÄļa emulatoru (Konsole). LielÄko daļu laika mÄs strÄdÄsim Å”ajÄ vienÄ«gajÄ logÄ, bet vispirms atvÄrsim failu pÄrvaldnieku (Dolphin), kÄ arÄ« importÄsim darbvirsmas tÄmu un iestatÄ«jumus.
Pirms mÄs ieiesim terminÄlÄ«, paskatÄ«simies uz to, ko mÄs jau redzam. TerminÄla loga augÅ”ÄjÄ daÄ¼Ä redzams uzraksts Konsole. Å is ir tikai programmatÅ«ras nosaukums, kas raksturÄ«gs Å”ai darbvirsmas videi (citi nosaukumi ā Terminal, Command Line u.c.). KÄ Satoshi (lietotÄjvÄrds) Nakamoto (datora nosaukums) jÅ«s tiksiet parÄdÄ«ts jebkurÄ tÄ«klÄ, ar kuru varat izveidot savienojumu.
Starp ā:ā un ā$ā jÅ«s redzÄsiet ā~ā. Å Ä« ir abreviatÅ«ra jÅ«su mÄjas direktorijai /home/ ./home/ ir lÄ«dzÄ«ga mapei āMani dokumentiā Windows sistÄmÄ.
satoshi@nakamoto:~$
satoshi@nakamoto:/home/satoshi$
2. daļa. SagatavoÅ”anÄs
KopÄjiet komandas no sadaļas vai no raksta beigÄm, ja jau esat Ā LinuxÄ.
Vispirms mÄs pÄrbaudÄ«sim, vai terminÄlÄ« nav atjauninÄjumu. Ievadiet nÄkamo komandu un nospiediet taustiÅu Enter (pa ceļam jums tiks piedÄvÄts ievadÄ«t āyā un āyesā un jÅ«su paroli):
satoshi@nakamoto: ~ $ sudo apt-get update
sudo dažreiz sauc par superlietotÄju (superuser do). Komanda ir lÄ«dzÄ«ga Windows administratoram. TÄ ir nepiecieÅ”ama tÄpÄc, ka nÄkoÅ”Äs komandas izmantos superlietotÄja piekļuves lÄ«meni.
apt-get ļauj sazinÄties ar pieejamajÄm programmatÅ«ras bibliotÄkÄm, lai jÅ«s varÄtu lejupielÄdÄt programmatÅ«ru tieÅ”i no terminÄļa.
update ir viena no vairÄkÄm komandÄm, kurÄm jÄseko apt-get. ViÅa pÄrbauda, vai nav atjauninÄjumu visÄm jÅ«su instalÄtajÄm pakotnÄm.
Tad mÄs uzstÄdÄ«sim Git. TÄ ir plaÅ”i izmantota programmatÅ«ra ar atvÄrtu kodu, kas paredzÄts darbam ar citiem projektiem ar atvÄrtu (un slÄgtu) kodu. MÄs izmantosim Git, lai piekļūtu Bitcoin repozitorijam un ielÄdÄtu tÄ kodu.
satoshi@nakamoto: ~$ sudo apt-get install git
Komandai install jÄbÅ«t saprotamai; tÄ ir kÄ update, bet konkrÄtai pakotnei. Lai to palaistu, ir nepiecieÅ”ams pakotnes nosaukums.
Git ir Git pakotnes nosaukums, ko atzÄ«st par vienu no avotiem (source), uz kuriem attiecas apt-get komanda. PÄc instalÄÅ”anas arÄ« darbosies kÄ komanda.
Tagad mÄs izveidosim mapi mÅ«su mÄjas direktorijÄ un pÄriesim uz Å”o direktoriju, lai kopÄtu vajadzÄ«gos failus. MÄs varam to kopÄt uz jebkuru vajadzÄ«go mapi (vienkÄrÅ”i esmu izvÄlÄjies tieÅ”i tÄdu ceļu). Vispirms ievadiet Å”Ädu rindu:
satoshi@nakamoto: ~$ mkdir p bitcoin-source && cd bitcoin-source
Tam jÄizskatÄs tÄ:
satoshi@nakamoto:/home/satoshi/bitcoin-source$
mkdir izveido direktoriju. Tas ir kÄ klikŔķis ar peles labo pogu uz darbvirsmas un izvÄlieties Izveidot > mapi.
-p ir karogs. KarodziÅi ir komandrindas iestatÄ«jumi un sÄkas ar Ā –Ā . Katrai komandai (piemÄram, mkdir) ir savs parametru kopums, tÄpÄc -p var izdarÄ«t vÄl kaut ko citai komandai. Å ajÄ gadÄ«jumÄ -p ignorÄ dažas kļūdas, kuras var rasties, mÄÄ£inot izveidot direktoriju. Ja vÄlaties izveidot direktoriju /test1/abc123/haha bez – p, sistÄma domÄs, ka vÄlaties izveidot /haha, un jÅ«s saÅemsit kļūdas ziÅojumu, kas norÄda, ka /test1 un /abc123 nepastÄv. Ar -p Ŕī kļūda tiek ignorÄta un tiek izveidotas abas vecÄkÄs direktorijas, kuras ānepastÄvā.
bitcoin-source ir tikai direktorija/mapes nosaukums, ko mÄs grasÄmies izveidot.
&& dod iespÄju izpildÄ«t otro komandu tajÄ paÅ”Ä rindiÅÄ ar nosacÄ«jumu, ka pirmÄ nebija kļūdaina vai nenobruka.
cd mainÄ«s paÅ”reizÄjo direktoriju uz to, ko norÄdÄ«jÄt. Å ajÄ gadÄ«jumÄ tÄ mainÄ«sies uz direktoriju /bitcoin-source, ko jÅ«s tikko izveidojÄt.
PÄc tam ievadiet:
$ git clone https://github.com/bitcoin/bitcoin.git
git clone kopÄ bitkoina repozitoriju no Github.com uz direktoriju, kurÄ jÅ«s bijÄt, kad ievadÄ«jÄt komandu. TÄ kÄ esat bijis ~/bitcoin-source, komanda izveidos katalogu ~/bitcoin-source/bitcoin un izvietos visus nepiecieÅ”amos failus.
Varat pÄrbaudÄ«t failu instalÄÅ”anu, izmantojot komandu ls vai doties uz Å”o direktoriju failu pÄrvaldniekÄ.
$ ls bitcoin
ls izved visas atvÄrtÄs mapes direktorijÄ, kurÄ atrodaties.
ls bitcoin meklÄs mapi /bitcoin direktorijÄ (kurÄ atrodaties), un pÄc tam rÄdÄ«s visas atvÄrtÄs mapes Å”ajÄ direktorijÄ.
ls-a izvada visas mapes, ieskaitot slÄptÄs mapes (ja tÄs pastÄv). SlÄptÄs mapes sÄkas un izskatÄs Å”Ädi: /home/satoshi/.abc123
PÄrejiet uz Å”o mapi. JÅ«s redzÄsiet, kÄ tiek veidoti faili, kad tiek palaistas citas komandas.
Tagad mums ir jÄinstalÄ vairÄkas bibliotÄkas kopÄ ar Berkeley Database. Å ajÄ rokasgrÄmatÄ es tÄs sadalÄ«ju grupÄs saskaÅÄ ar Github montÄžas dokumentÄciju Ubuntu, jo centos tos apvienot agrÄk un saÅÄmu kļūdas. BibliotÄkas:
$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3
$ sudo apt-get install libboost-all-dev
Å Ä« komanda lejupielÄdÄs un verificÄs Berkeley Database:
$ wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
$ echo ’12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz’ | sha256sum -c
PÄc komandas āechoā ievadīŔanas jums ir jÄsaÅem atbilde:
db-4.8.30.NC.tar.gz: O`K
NÄkoÅ”Äs komandas parÄdÄ«s (tar – xvf) Berkley Database, ko tikko lejupielÄdÄjÄm un instalÄjÄm. TÄ arÄ« noteiks ceļa saÄ«sni, tÄpÄc tikai BDB_PREFIX jÄievada, atsaucoties uz atkarÄ«bu. Parasti, kad jÅ«s ievadÄt komandu, un jau esat ceļÄ, jums tikai jÄatsaucas uz atlikuÅ”o ceļu. Bet, kad jÅ«s kompilÄjat, ir jÄnorÄda viss ceļŔ:
$ tar -xvf db-4.8.30.NC.tar.gz
$ cd db-4.8.30.NC/build_unix
$ mkdir -p build
$ BDB_PREFIX = $ (pwd) / build
$ ../dist/configure –disable-shared –enable-cxx –with-pic –prefix = $ BDB_PREFIX
$ sudo make install
$ cd ../ ..
VairÄk bibliotÄku:
$ sudo apt-get install libminiupnpc-dev
$ sudo apt-get install libzmq3-dev
$ sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
$ sudo apt-get install libqrencode-dev
Ar to arÄ« tiek pabeigta sagatavoÅ”anÄs. Tagad mÄs sÄkam uzstÄdÄ«t Bitcoin.
3. daļa. Core Bitcoin 0.19.0 kompilÄÅ”ana
MÄs esam /home/satoshi/bitcoin-source, tÄpÄc pÄriesim uz direktoriju /bitcoin, kompilÄsim un uzstÄdÄ«sim:
$ cd bitcoin
$ git checkout tags/v0.19.0
$ ./autogen.sh
$ ./configure CPPFLAGS=”-I${BDB_PREFIX}/include/ -O2″ LDFLAGS=”-L${BDB_PREFIX}/lib/” –with-gui
$ make
$ sudo make install
git checkout tags/v0.19.0 nosÅ«ta uz konkrÄtu commit no git vÄstures. “Zari” var mainÄ«ties pÄc jauninÄÅ”anas, tÄpÄc saite uz zaru var novest pie tÄ, ka komanda nedarbosies nÄkotnÄ.
./autgen.sh tikai sagatavos instalÄcijas failus.
4. daļa. Savas jaunÄs nodes iestatīŔana un iepazīŔanÄs ar to
LielÄkÄ daļa Ŕīs sadaļas nav nepiecieÅ”ama programmatÅ«ras palaiÅ”ana. NÄkotnÄ JÅ«s droÅ”i vien to vienkÄrÅ”i palaidÄ«siet fonÄ. TomÄr tas palÄ«dzÄs saprast, kas notiek aiz “kulisÄm”.
Pirmais, ko nepiecieÅ”ams darÄ«t, pirms palaist bitkoinu pirmo reizi, ir izveidot vairÄkus logus. Vispirms mÄs palaidÄ«sim GUI versiju, ko sauc par bitcoin-qt, tad mÄs iziesim no tÄs un palaidÄ«sim versiju bez GUI, ko sauc par bitcoind, un tad atgriezÄ«simies pie bitcoin-qt ar dažÄm darbÄ«bÄm un konfigurÄcijÄm, lai jÅ«s varÄtu saprast, kÄ tas darbojas.
Aizveriet visus atvÄrtos logus un atveriet divus jaunus terminÄļa logus un failu pÄrvaldnieku. Failu pÄrvaldniekÄ dodieties uz /home/satoshi/. Jums ir jÄnospiež Home uz sÄnjoslas. PÄc tam izvÄlnes rindÄ augÅ”ÄjÄ daÄ¼Ä noklikŔķiniet uz Control un atzÄ«mÄjiet izvÄles rÅ«tiÅu Hidden Files. VienÄ no terminÄļa logiem ierakstiet:
$ mkdir ~/.bitcoin
$ cd ~/.bitcoin
TagadĀ jumsĀ irĀ jÄredzĀ mapeĀ arĀ nosaukumuĀ .bitcoinĀ failuĀ pÄrvaldniekÄ.Ā PÄrejietĀ uzĀ Å”oĀ mapi.
Izveidojam failu debug.log. Kad pirmo reizi palaižat Bitcoin, debug.log tiek automÄtiski Ä£enerÄts, bet jÅ«s sapratÄ«siet, kÄpÄc vÄlos to izdarÄ«t agrÄk:
$touch ~/. bitcoin/debug.log
Tagad mÄs palaidÄ«sim failu debug.log. ReÄ£istrÄcijas faili (logi) pastÄvÄ«gi tiek atjauninÄti ar jaunajÄm informÄcijas rindÄm, jo programma veic savu darbÄ«bu reÄ£istrÄÅ”anu. Komanda tail parÄda jums pÄdÄjos ierakstus Å”ajÄ failÄ, bet tikai vienreiz. Izmantojiet karodziÅu -f, tas sniegs jums nepÄrtrauktu Å”o atjauninÄjumu plÅ«smu. Kad jÅ«s ievadÄt nÄkamo komandu, jÅ«s neko neredzÄsiet, jo bitkoÄ«ns vÄl nav palaists, bet mÄs to atstÄsim Å”Ädi:
$ tail -f ~/.bitcoin/debug.log
CitÄ terminÄļa logÄ palaidiet bitkoinu, ievadot:
$ bitcoin-qt
JÅ«s redzÄsiet lejupielÄdes attÄlu un pÄc tam ā grafisko saskarni ar ziÅojumu par sinhronizÄcijas stÄvokli. JÅ«s sÄksiet redzÄt aktivitÄti terminÄlÄ«, kur esat piesaistÄ«ts debug.log. Visam augstÄkminÄtajam jÄizskatÄs ir Å”Ädi:
JÅ«s to varat redzÄt ļoti ilgi, jo sinhronizÄcijai ir nepiecieÅ”ams ilgs laiks. TerminÄla logÄ varat ievadÄ«t bitcoin-qt un nospiest CONTROL + C. JÅ«s redzÄsiet, ka GUI aizvÄrsies, un logi žurnÄlos tiks apturÄti. Varat lasÄ«t ziÅojumus par izstÄÅ”anos logos, ritinot uz augÅ”u, un pÄtot visus notikumus. Tagad Å”ajÄ terminÄlÄ« palaidiet bitcoin-qt un ievadiet:
$ bitcoind
Jums atkal jÄierauga log tail. Bitkoins darbojas fona režīmÄ. VÄlreiz nospiediet taustiÅu CONTROL + C un iestatiet to.
Mums ir jÄizveido konfigurÄcijas fails, tÄpÄc failu pÄrlÅ«kÄ izveidojiet failu bitcoin.conf. Atveriet to, ievadiet sekojoÅ”o un saglabÄjiet failu:
debug=net
PÄc noklusÄjuma visi dati ir iekļauti žurnÄlos. 1. uzstÄdīŔana ļaus iekļaut visus datus, bet to ir pÄrÄk daudz un informÄcija bÅ«s Ätra. Varat instalÄt Å”Ädas opcijas: net, tor, mempool, http, bench, zmq, db, rpc, valufee, addrman, selectcoin, reindex, cmpctblock, rand, prune, libevent, coindb, qt, leveldb.
TurklÄt varat pielÄgot mezglu, lai apgrietu (prune) blokÄ·Ädi tÄ aizpildīŔanas laikÄ. Tagad visa blokÄ·Äde sver aptuveni 290 Gb. Ja jums nav pietiekami daudz vietas glabÄÅ”anai, varat samazinÄt datus lÄ«dz 5 GB (paÅ”laik). Es to neiesaku darÄ«t bez nepiecieÅ”amÄ«bas, bet jÅ«s varat apgriezt blokÄ·Ädi lÄ«dz 10 GB ar Å”Ädu komandu:
debug=net
prune=10000
JÅ«su konfigurÄcijas failÄ var bÅ«t vairÄkas opcijas, un nav svarÄ«gi, kÄdÄ secÄ«bÄ tÄs atrodas. TÄ var izskatÄ«ties tÄ, ja jÅ«s, piemÄram, vÄlaties ierobežot savu mempÅ«lu ar 100 Mb transakcijÄm:
maxmempool=100
prune=10000
debug=net
Atveriet treÅ”o terminÄli un ievadiet:
$ tail -f ~ / .bitcoin / debug.log | grep “UpdateTip:”
grep ir komanda, kurai ir vairÄkas funkcijas, bet Å”ajÄ kontekstÄ tÄ parÄdÄ«s informÄciju no pirmÄs komandas un filtrÄs to, lai tiktu parÄdÄ«tas tikai rindas, kurÄs ir pÄdiÅÄs norÄdÄ«tais teksts.
CitÄ terminÄlÄ« ievadiet:
$ tail -f ~/.bitcoin/debug.log | grep -v “UpdateTip:\|Requesting block\|sending getdata\|recieved block\|received: block”
TÄ ir tÄ pati komanda, bet ar karodziÅu -v, tÄ darÄ«s pretÄjo iepriekÅ”Äjo komandu un atmetÄ«s jebkuru rindu ar norÄdÄ«to tekstu.
Tagad mÄs varam filtrÄt informÄciju, lai dati netiktu atjaunoti tik Ätri. NekautrÄjieties spÄlÄties ar iestatÄ«jumiem, izÅemot lieko un pievienojot tieÅ”i jums nepiecieÅ”amo.
Tas ir viss! AtkarÄ«bÄ no jÅ«su aprÄ«kojuma/tÄ«kla joslas Å”is process var ilgt vairÄkas stundas lÄ«dz dažÄm nedÄļÄm (pÄdÄjais ir visticamÄkais).
[embedyt] https://www.youtube.com/watch?v=RimYc0XByAg[/embedyt]
Kad blokÄ·Äde tiks neatgriezeniski sinhronizÄta, bloki tiks pievienoti vidÄji ik pÄc 10 minÅ«tÄm, bet debug.log sÄks rÄdÄ«t daudz vairÄk aktivitÄÅ”u.
0. daļa. Tiem, kam ir nepiecieŔamas tikai komandas:
sudo apt-get update;
sudo apt-get install git;
mkdir -p bitcoin-source && cd bitcoin-source
git clone https://github.com/bitcoin/bitcoin.git;
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3;
sudo apt-get install libboost-all-dev;
wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz;
echo ’12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz’ | sha256sum -c;
tar -xvf db-4.8.30.NC.tar.gz;
cd db-4.8.30.NC/build_unix;
mkdir -p build;
BDB_PREFIX=$(pwd)/build;
../dist/configure –disable-shared –enable-cxx –with-pic –prefix=$BDB_PREFIX;
sudo make install;
cd ../..;
sudo apt-get install libminiupnpc-dev;
sudo apt-get install libzmq3-dev;
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler;
sudo apt-get install libqrencode-dev;
cd bitcoin;
git checkout tags/v0.16.0;
./autogen.sh;
./configure CPPFLAGS=”-I${BDB_PREFIX}/include/ -O2″ LDFLAGS=”-L${BDB_PREFIX}/lib/” –with-gui;
make;
sudo make install;bitcoin-qt
KÄ uzstÄdÄ«t Bitcoin Ligtning tÄ«kla nodi uz Raspberry PI?
Lightning Network + Bitcoin Core на Raspberry PI | Lightning ŠŠ¾Š“а
Ā© 2021 The Bitcoin Foundation Latvia