Cum creăm un token/monedă virtuală pe propriul nostru blockchain asemănător Bitcoin

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. 😉

 


3.5 2 votes
Article Rating
Subscribe
Notify of
guest
5 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Mihai
2 months ago

Buna seara! Interesant acest tutorial. Va invit la un pranz (sa inteleg mai bine ). Cu stima!

florin
florin
1 month ago

salut, cum putem lua legatura? 😉

Arhitectul
Arhitectul
Reply to  florin
1 month ago

Nu putem. 😉

Sadovean
Sadovean
1 month ago

Ok, dar cum faci rost de VPS?

Shadowed
Shadowed
19 days ago

2 servere vps… Asta am înțeles… Problema e următoarea…. Ce memorie trebuie sa aibă, ce procesor, ce spațiu de stocare?