U ovom ćemo članku ukratko objasniti Ethereum testnetove – što su, čemu služe i kako se koriste.

Za bolje razumijevanje donjeg sadržaja potrebno je pročitati sljedeće uvodne članke:


Kada pišemo programe za EVM (Ethereum Virtualnu Mašinu), tj. Ethereum blockchain, za njihovo lansiranje i pokretanje potrebno je platiti transakcijski trošak u gasu. Osim što je taj trošak visok kad je mreža zakrčena, taj je proces spor i može biti financijski opasan ako napravite neku nepovratnu grešku – svaka promjena na Ethereum blockchainu je trajna i ne postoji način da se poništi ili vrati u prijašnje stanje.

Testne mreže su kopije Ethereum blockchaina gotovo identične originalu u svakom pogledu osim u vrijednosti Ethera na njima (i, naravno, softveru koji je poslan na njih).

Postoje tri vrste testnih mreža.

Public Test

Public (javne) Test mreže su mreže koje su spojene na internet i dostupne su svima. Na njih se može spojiti bilo tko, bilo kada, čak i iz popularnih sučelja za wallete poput MyEtherWallet ili MetaMask.

Postoje sljedeće testne mreže:

  • Ropsten
  • Rinkeby
  • Kovan

Na sučelju MyEtherWallet-a, označene su žutim rubom i svaka od njih ima 2 nodea na koji se možemo spojiti (svejedno je koji bude odabran, oba izbora vode na istu mrežu).

Mew testnet

Iste su testne mreže dostupne i preko MetaMask-a:

Metamask test

Ropsten

Započet krajem 2016., Ether na Ropstenu može se rudariti kao i na glavnoj mreži (Mainnet). Podržavaju ga i Geth i Parity – dvije različite implementacije Ethereum node-a – pa je moguće razvijati softver na toj mreži iz oba smjera.

Ropsten je najsličniji trenutnom Mainnetu. Rezultati na njemu najsličniji su onima koji se mogu očekivati od prave mreže, pogotovo jer je PoW (tj. može se rudariti) pa je simulacija transakcija realna.

Trenutna veličina Ropsten blockchaina je oko 9 GB.

Ether na Ropsten mreži možemo izrudariti ili zahtjevati putem Ropsten Fauceta – stranice koja služi za besplatno dijeljenje testnog Ethera.

Zbog mogućnosti rudarenja na Ropsten mreži, mrežu je moguće napasti spam napadom – velikim valom transakcija koje se ne mogu potvrditi zbog navale. Ako je Ether besplatan i lako nabavljiv, lako je i kreirati poplavu bezvrijednih transakcija koje zakrče mrežu. Takav napad dogodio se u veljači 2017. Napadači su zbog niske težine rudarenja izrudarili velike količine Ethera i slali prevelike transakcije u mrežu. Ethereumov limit na veličinu blokova je dinamičan i raste s potrebom, no kako je do Ethera bilo prelako doći, napadači su napumpali maksimalnu veličinu blokova na nekoliko miljardi gasa (s do tada uobičajenih 4 miljuna). Nakon povećanja blokova na tu razinu, počeli su slati ogromne i zahtjevne transakcije u mrežu, blokirajući rad svih drugih sudionika.

Zanimljivo je to da se Ropsten od Mainneta (na kojem svi obitavamo i koristimo “pravi” Ether) razlikuje samo po tome što smo mi kao zajednica odlučili da Ether na Ropstenu ne vrijedi. Ropsten ima svoje mining poolove, svoje rudarske postrojbe, svoj softver itd., ali smo kolektivno odlučili da taj Ether ne vrijedi prave novce i time ga ne smatramo ozbiljnim. Odluka zajednice ovdje vrlo doslovno diktira vrijednost ili, točnije, bezvrijednost.

Ropsten transakcije se može pregledavati na Etherscanu.

Kovan

Kovan je pokrenut u ožujku 2017. od strane Parity tima nakon napada na Ropsten. Kovan radi samo s Parity softverom, što znači da ako koristite Geth nemate sreće. Umjesto rudarenja, Kovan koristi PoA konsenzus – Proof of Authority. Pojednostavljeno, PoA je kad se određene nodeove na mreži odredi kao autorizirane validatore i jedino oni mogu potvrđivati transakcije i stvarati nove blokove.

Do Ethera na Kovanu moguće je doći jedino putem zahtjeva od tih autoriziranih nodeova preko specifičnog fauceta, ili primanjem Ethera od neke adrese koja ga već posjeduje.

Zbog PoA, Kovan se donekle razlikuje od prave Mainnet mreže te se time ne može smatrati veoma preciznom simulacijom Ethereum mreže. Unatoč tome, odličan je za testiranje, pouzdan i stabilan, i ne može biti napadnut spam napadima (jer je do Ethera teže doći).

Etherscan podržava i Kovan mrežu: https://kovan.etherscan.io/

Rinkeby

Pokrenut u travnju 2017. od strane Ethereum tima, Rinkeby ima iste prednosti kao i Kovan uz dvije izmjene: ne podržava Parity nego samo Geth i koristi malo drukčiji PoA konsenzus.

Rinkeby je također podržan na Etherscanu za inspekcije transakcija: https://rinkeby.etherscan.io/

Rinkeby Ether je moguće zahtjevati preko Rinkeby fauceta.

Morden

Morden je bila prva testna mreža Ethereum protokola, no zbog raznih napada, mnogo bezvrijednih i bespotrebnih podataka koji su prepunili blockchain na neodrživu veličinu i nekih razlika između Geth i Parity implementacije za istu mrežu, Morden je ugašen u studenom 2016. kad je podignut Ropsten.

Private Test

Privatni blockchain

Privatni test network, tj. privatna testna mreža je ekvivalentna vlastitom blockchainu – vlastitoj kopiji Ethereuma.

Kod podizanja privatne testne mreže generira se Genesis datoteka iz koje se stvara novi blockchain, a Geth iz te datoteke gradi lanac. Na taj se lanac tada spaja aplikacijama poput Mist, MetaMask, MyEtherwallet, itd.

Privatne testne mreže odlične su za timski rad, rad u firmi, simulaciju rudarenja, testiranje decentraliziranih aplikacija u sigurnim i zatvorenim okruženjima itd.

Trošak ne postoji – osim minimalne žrtve od strane procesora i diskovnog prostora vašeg računala – a mreža je sigurna od spam napada jer je izolirana od javnog interneta. Nakon što privatni testnet dovoljno naraste, moguće je otvoriti pristup na isti te ga spojiti na javni internet, time dobivši suradnju s drugim zainteresiranim tvrtkama, individualnim programerima, ili drugim entitetima.

Kad se radi o privatnom blockchainu, Ether se lako rudari i na najslabijim računalima, a prilikom podizanja testne mreže moguće je i unaprijed definirati neku količinu Ethera na određenim računima.

Ganache CLI

Ganache CLI (prije poznat pod imenom Testrpc) je NodeJS softverski paket koji simulira Ethereum mrežu na jednom računalu. Prilikom pokretanja, generira nekoliko Ethereum adresa, svaku s određenom količinom unaprijed dostupnog Ethera.

Zaključak

Testne mreže su iznimno korisni alati u EVM razvoju. Omogućavaju lako i bezbolno testiranje softvera u više slojeva prije nego je vrijeme za lansiranje na glavnoj javnoj mreži (Mainnet). Javne testne mreže poput Ropstena, Kovana i Rinkeby-a su izuzetno bitne za decentralizirane aplikacije koje trebaju međusobnu interakciju a ne dijele razvojni tim ni privatnu mrežu na kojoj su razvijene – npr. MetaMask koji komunicira s Status.im mrežom koji komunicira s uPort-om, i slično.

U sljedećem članku pokriti ćemo korištenje Ropsten testne mreže u Mist programu.

LEAVE A REPLY

Please enter your comment!
Please enter your name here