5.Blockchain klijenti i rad s podatcima

Blockchain Klijenti

Opis

  • Blockchain klijent je korisnički softver za:

    • Generiranje privatnih ključeva

    • Interakciju s blockchain mrežom

Značajke

  • Klijenti se razlikuju po mogućnostima, ali općenito omogućuju:

    • Generiranje privatnih ključeva i pripadajućih adresa

    • Prikaz stanja tokena uz adresu

    • Slanje transakcija u mrežu

  • Instalacijom klijenta, uređaj postaje full ili light node.


Klijenti bazirani na Bitcoin klijentu

Funkcionalnosti

  • Omogućuju slanje RPC poziva prema blockchainu za interakciju s mrežom.

  • Interakcija može biti s:

    • Glavnom mrežom

    • Testnom mrežom (ukoliko postoji za određeni blockchain)

Sinkronizacija

  • Nakon instalacije full node klijenta:

    • Sinkronizacija s mrežom preuzima podatke o drugim čvorovima i blokovima.

    • Sinkronizacija može zahtijevati više stotina GB podataka i traje satima.


Upravljačke funkcije klijenta

U radu

  • Dok je klijent aktivan, preuzima nove blokove i sinkroniziran je s mrežom.

  • Ako se klijent ugasi, pohranjuje stanje mreže u trenutku gašenja:

    • Pri ponovnom pokretanju potrebno je preuzeti nove podatke nastale u međuvremenu kako bi se vidjelo aktualno stanje adrese.

  • Bez sinkronizacije nije moguće slati transakcije.


Instalacija Bitcoin Klijenta

Preuzimanje

  • Full node klijent za Bitcoin preuzima se s bitcoin.org i dostupan je za većinu relevantnih okruženja.

Mape datoteka

  • Tijekom instalacije bitcoin-qt (Bitcoin Core) stvaraju se:

    • Podatkovna mapa: sadrži podatke samog blockchain, lokacija se može odabrati pri instalaciji, po defaultu u korisničkom profilu.

    • Instalacijska mapa: sadrži izvršne datoteke za pokretanje klijenta.


Interfejs Klijenta

GUI i CLI

  • Wallet ima:

    • GUI (grafičko) sučelje

    • CLI (naredbeni redak) sučelje

Funkcionalnost CLI

  • Omogućava poziv raznih metoda i pristup dodatnim informacijama.

  • Koristi REST ili RPC API za pozivanje metoda i dohvat podataka.


Programski pristup blockchainu

RPC API

  • Moguće programski pristupati blockchainu, dohvaćati i upisivati podatke:

    • Informacije o sudionicima i stanju blockchaina.

  • RPC API može se pozivati unutar GUI-a putem konzole bitcoin-qta.

Pokretanje bez GUI-a

  • Moguće pokrenuti bitcoind.exe bez pokretanja GUI klijenta, omogućujući RPC API.

  • Pristup putem programskih jezika koji imaju podršku za bitcoind RPC server.


Testna Mreža - Testnet

Uzorak i funkcionalnost

  • Većina blockchainova nudi testne mreže za testiranje funkcionalnosti.

  • Glavna mreža se naziva mainnet.

  • Sadržaj testnet mape gotovo je identičan mainnet mapi.

Mapa podataka testnet

  • Mape blocks i chainstate sadrže sve podatkovne blokove i informacije o blockchainu.

  • Veličina testnet lanca može biti oko 90GB, a vrijeme preuzimanja otprilike 15 sati.


Pokretanje Klijenta na Testnetu

Metode

  • Testnet i mainnet se pristupa iz istog klijenta:

    • Moguće pokrenuti klijentsku aplikaciju s –testnet parametrom.

  • Alternativno, dodanjem datoteke bitcoin.conf u podatkovnu mapu s linijom testnet=1.


Faucet

Funkcionalnosti

  • Faucet web servisi omogućuju nabavu male količine tokena, obično za testnet.

  • Bitcoin ima nekoliko fauceta za nabavu tBTC tokena, koji nemaju vrijednost u mainnet mreži.


Transakcije u Wallet

Proces

  • Da bismo poslali transakciju iz fauceta, nabavimo adresu iz svog walleta i koristimo je u faucetu kao odredište.

  • Preporučuje se stvaranje nove adrese za svaku transakciju, ali je moguće koristiti i postojeće.

Status transakcije

  • Transakcija ostaje u statusu pending sve dok nije uključena u blok na blockchainu. Nakon postizanja potrebnog broja potvrda (npr. 6 za bitcoine), korisnik može raspolagati iznosom.


Transakcije - Inputs i Outputs

Bitne komponente

  • Svaka transakcija sastoji se od inputa i outputa:

    • Input: informacija s koje adrese je uzet iznos.

    • Output: adresa na koju je iznos poslan.

  • UTXO (Unspent Transaction Output) može se koristiti kao input za buduće transakcije.


Upis Podataka na Blockchain

Proces

  • Upis podataka zahtijeva stvaranje transakcije koristeći četiri važne metode:

    • createrawtransaction: stvara transakciju.

    • fundrawtransaction: dodaje potrebne inpute.

    • signrawtransactionwithwallet: potpisuje transakciju privatnim ključem iz walleta.

    • sendrawtransaction: objavljuje transakciju mreži.

Primjer

  • U postupku upisa, trebaju se dostaviti ispravni txid, amount, i dodavati inpute gdje je potrebno.