Iau o pauză de la scrierea ghidurilor Linux, deoarece simt nevoia să scriu un tutorial despre lucruri mult mai serioase. Titlul, spune tot. Învățăm cum să dam drumul unui blockchain, precum cel pe care rulează faimoasa monedă Bitcoin, și să realizăm câte monede/tokens dorim, printr-o simplă comandă.
Spuneți-mi vă rog, ce bloguri vă mai învață așa ceva? 🙂 Înainte de a trece la treabă, este foarte important să aveți două VPS-uri pregătite. Da, ați înțeles bine. Este nevoie de două VPS-uri.
Pentru a da drumul unui token pe propriul nostru blockchain, trebuie mai întâi să creăm blockchain-ul, apoi monedele. Instalăm multichain pe ambele VPS-uri:
su
(scriem parola de la root, dacă nu ne-am logat deja ca root)
cd /tmp
wget https://www.multichain.com/download/multichain-1.0-release.tar.gz
tar -xvzf multichain-1.0-release.tar.gz
cd multichain-1.0-release
mv multichaind multichain-cli multichain-util /usr/local/bin
(pentru a-l face mai ușor de accesat din terminal)
exit
Timpul să creăm blockchain-ul:
multichain-util create LanțulMeu
cat ~/.multichain/LanțulMeu/params.dat
(Dacă dorim să vedem setările implicite)
Acum inițializăm blockchain-ul, inclusiv blocul geneză, pe care îl vom mina:
multichaind LanțulMeu -daemon
Ni se va spune că serverul a pornit, iar după câteva secunde că blocul geneză funcționează. Va trebui să copiezi adresa nodului (node address), pe care o vei da și altora să se conecteze la blockchain.
Conectarea la blockchain:
Acum ne vom conecta la blockchain din altă parte. Pe cel de-al doilea server rulăm următoarea comandă:
multichaind chain1@[ip-address]:[port] (adresa nodului)
Ni se va spune că blockchain-ul a fost inițializat cu succes, însă nu avem permisiunea să ne conectăm. Ni se va mai arăta un mesaj ce conține adresa portofelului de la nod. Copiem adresa portofelului.
Ne întoarcem la primul server, unde adăugăm permisiuni pentru această adresă:
multichain-cli LanțulMeu grant 1... (adresa portofelului) connect
Acum încercăm să ne conectăm de la cel de-al doilea server:
multichaind LanțulMeu -daemon
Vom vedea un mesaj în care ni se spune că nodul a pornit, și va arăta cea de-a doua adresă a nodului.
3. Câteva comenzi pentru modul interactiv
Înainte de a începe, trebuie să intrăm mai întâi în modul interactiv. Pe ambele servere:
multichain-cli LanțulMeu
Comanda pentru a primi informații generale:
getinfo
Comanda pentru a vedea toate comenzile disponibile:
help
Comanda pentru a vedea toate permisiunile curente setate
listpermissions
Comanda pentru a crea o nouă adresă în portofel:
getnewaddress
Comanda pentru a lista toate adresele din portofel:
getaddresses
Comanda pentru a obține parametrii blockchain-ului (bazat pe fișierul params.dat):
getblockchainparams
Pentru fiecare nod vei primi o listă de peeri:
getpeerinfo
4. Crearea unui token
Acum este timpul să creăm un token / monedă și o vom trimite între noduri. Pe primul server, luăm adresa care are permisiunea de a lansa monede:
listpermissions issue
Copiem adresa.
Acum vom lansa o monedă pe acest nod cu 1000 de unități, fiecare dintre ele subdivizate în 100 de părți, pe care ni le vom trimite între noi:
issue [aici scriem adresa cu permisiuni, copiată mai devreme] MonedaMea 1000 0.01
Pe ambele servere vom vedea dacă moneda a fost creată prin următoarea comandă:
listassets
Acum o să verificăm balanța monedelor pe fiecare server. Primul ar trebui să ne arate ca avem în cont 1000 de monede, iar pe al doilea ar trebui să bată vântul:
gettotalbalances
De pe primul server vom trimite 100 de monede către portofelul celui de-al doilea server:
sendasset [aici scriem adresa portofelului de pe serverul 2] MonedaMea 100
O să vedem o eroare în care ni se spune că nu avem permisiunea de primire. Așadar, o să adăugăm permisiuni de primire și trimitere:
grant [adresă portofel] receive,send
Acum încercăm să trimitem din nou:
sendasset [aici scriem adresa portofelului de pe serverul 2] MonedaMea 100
Acum verifică balanța pe fiecare server. Ar trebui să ai 900, respectiv 100:
gettotalbalances 0
Poți vedea tranzacțiile pe fiecare nod și cum a fost afectată balanța:
listwallettransactions 1
5. Mineritul
Acum, vom începe o colaborare de minerit, între servere:
grant [adresă portofel server] mine
Pe al doilea server, verificăm dacă cei doi mineri au fost listați:
listpermissions mine
Acum așteaptă câteva minute pentru a mina câteva blocuri. Pe celălalt server, verifică dimensiunea blocului:
getinfo
Felicitări! Ai propria monedă virtuală. Dacă ai întrebări, lasă-mi un mesaj în secțiunea de comentarii.
Nu uita să te abonezi la acest blog, dacă îți plac articolele mele. 😉
Buna seara! Interesant acest tutorial. Va invit la un pranz (sa inteleg mai bine ). Cu stima!
salut, cum putem lua legatura? 😉
Nu putem. 😉
Ok, dar cum faci rost de VPS?
2 servere vps… Asta am înțeles… Problema e următoarea…. Ce memorie trebuie sa aibă, ce procesor, ce spațiu de stocare?
Salut!
Am o idee inedita de un blockchain, când spun inedita chiar este, succesul fiind garantat. Am cautat prin web info despre un blockchain, astfel am ajuns la tine. Am nevoie de cineva, care sa dezvolte acest blockchain, sa se ocupe cu securitatea și intretinerea acestuia. Sigur caut și alte persoane dornice sa se afirme prin elaborarea de tokeni, care necesita promovati și sustinuti de comunitatea care se va crea in jurul acestui proiect. Apelez la tine deoarece poate ai câteva referinte in acest sens, in cazul in care ai deja f mult de lucru. Cu siguranță dacă accepti acest post, vei lasa după o vreme restul treburilor deoparte. Bineînțeles cine doreste sa se implice in acest proiect va trebui sa semneze un document de confidentialitate a datelor. Mulțumesc.
Cu stima Mihai, Erdos
erdosmihai@yahoo.com
Tre’ să recunosc, mi-am dat demisia imediat după ce ți-am citit comentariul… De când așteptam o idee inedită cu succes garantat…