Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
176 lines (103 sloc) 9.31 KB

Nimbus za neznalice

Nimbus je novi klijent za Ethereumov sljedeći stadij: Serenity. Nimbus je zapravo novi čvor, u neku ruku. Ako ste Ethereum laik i pokušavate doznati što Nimbus jest upravo sada, došli ste na pravo mjesto.

O shardingu, skaliranju i svemu drugome što članak najave spominje pričati ćemo u budućim člancima. Ovaj članak napisan je kako bi vas upoznao s onime što Nimbus jest danas.

Želimo vam pomoći da razumijete što ovaj alat predstavlja, zašto postoji, i kako pomoći pri njegovom razvoju kako biste zajedno s Nimbus timom pomogli razviti Ethereum 2.0.

Što je Nimbus sada?

"Koja je moja svrha?" - Robot koji dodaje maslac

Za pregled onoga što Nimbus želi biti, pogledajte originalnu objavu.

Trenutno, u studenom 2018, Nimbus je set alata koji uspješno prolazi neke softverske testove. Softverski testovi su setovi računalnog koda koji se moraju izvršiti bez da jave grešku. Kada se izvrše pomoću Nimbusa, rezultat tih testova ne bi smio biti negativan. Ako svi ovi testovi prođu (pass), Nimbus se može smatrati Ethereum klijentom.

Ovako izgleda prekrasni ekran uspješnih testova.

Od ožujka 2019. Nimbus će sinkronizirati Ethereum proof of work lanac do bloka 1.1 milijun, no ne može biti korišten za spajanje na neki novčanik ili za slanje transakcija. Neće potpuno sinkronizirati blockchain ni u light (laganom) ni u full (punom) načinu rada, niti će pokrenuti neko korisničko sučelje.

Što se tiče Ethereum 2.0 strane Nimbusa koja se razvija u nim-beacon-chain repozitoriju, trenutno će simulirati nekoliko validatora i beacon čvorova, spojiti ih, te graditi beacon lanac. To se može pokrenuti i lokalno pa slobodno isprobajte prateći upute iz službenih objava.

Dakle, koji mu je cilj?

Nimbusov cilj

Tim trenutno razvija set alata i modula koji će zajedno zadovoljiti uvjete da podrže Ethereum 2.0, poput podrške za sharding ili validaciju putem Proof of Stake sustava. Istovremeno ali zasebno se razvija i Ethereum 1.0 strana Nimbusa, što znači da će Nimbus biti alternativa za Geth i Parity kao full čvorove, ali će imati i mogućnost pokretanja u light načinu rada - bez da treba preuzeti cijeli blockchain - i za stateless način rada.

Prioritet je razviti Nimbus kao Ethereum 2.0 čvor, a tek nakon toga usavršiti 1.0 stranu. To je zbog toga jer Nimbus tim financije dobiva od Ethereum Fundacije koja prioritizira razvoj novog Ethereuma.

Modularnost

Da bi ga se moglo pokrenuti na slabim i embedded uređajima, Nimbus će morati biti iznimno podesiv. Krajnji je cilj podržati sve module na plug-and-play način jednostavnom aktivacijom i deaktivacijom po želji, dok će ti moduli funkcionirati kao pod-programi koji API-jem komuniciraju s Nimbus jezgrom.

Specifično, Nimbus će imati razne verzije. Moći ćete ga kompajlirati (izgraditi) i pokrenuti s posebnim opcijama. Ako ga stavljate na Nokia 3310 telefon, nećete graditi istu verziju kao kada ga stavljate na snažno stolno računalo, niti će to biti ista verzija koja će se koristiti u micro-USB stickovima koje ćete potajno priključiti u "pametne" gradske klupe da biste potajno dodatno decentralizirali mrežu 🕵️‍♂️

I, da, sve ovo će biti moguće s Nimbusom.

Nimbus, šampion

Sučelja (poput JSON-RPC ili neko za embedded Javu) biti će razvijena za razne operativne sustave na kojima ćemo koristiti Nimbus. Tim se usredotočuje na otvoreni hardver, no ni jedna platforma neće biti zapostavljena. Nimbus će, primjerice, pružati i EVM-C sučelje pa će svi klijenti koji koriste isti moći odabrati žele li koristiti Aleth, Geth, ili Nimbus.

Drugi modularni dijelovi biti će i primjerice back-end baza podataka koja se koristi (SQLite vs RocksDB), sustav za pisanje logova (konzola, JSON, txt datoteke, baza podataka), mrežni protokol itd.

Natječe li se Nimbus s Gethom?

Da i ne. Ethereumova misija je od prvog dana da ima više klijenata radi zdravlja mreže ako se pronađe greška u jednom od njih. Na primjer, greška u Bitcoin Core klijentu oštetiti će cijelu Bitcoin mrežu jer je Bitcoin Core program koji se koristi u 95% slučajeva.

To je neprihvatljivo u Ethereumu, pa se trudimo imati diversificirani skup klijenata. Vodeći su trenutno Geth i Parity u relativno sličnim postocima s ponešto ostalih između njih. Cilj je izgraditi Nimbus do te razine da preuzme barem četvrtinu tog kolača, a kasnije uz druge klijente i manje.

Bitno je napomenuti da s Nimbusom ne pokušavamo smanjiti broj Gethova u mreži ili Paritijevu popularnost. Nimbus je tu da prošiti ekosustav novim uređajima koji sada mogu pokrenuti svoj čvor, a ne da zamijeni trenutne klijente. Kao primjer - Status aplikacija će koristiti Nimbus kada Nimbus bude spreman.

Izgradnja

Dosta priče, ajmo graditi.

Prije nego počnemo, pretpostavlja se da

  • ste pročitali uvod u Nim i imate Nim na sustavu
  • koristite sustav poput OS X ili Linux koji je u prijateljskim odnosima s komandnom linijom (Terminal). Ako niste, predlažemo da instalirate neku virtualnu mašinu koja ima sav potrebni softver već instaliran. Primjerice, naša Nim Vagrant mašina je vrlo dobro rješenje.

Napomena: Nimbus koristi Makefile sustav za igradnju komponenti kako bi proces pokretanja softvera bio identičan na svim platformama. Ne koristimo Nimov upravitelj paketima Nimble jer je fundamentalno nefunkcionalan i ne izgleda da će problemi uskoro biti riješeni.

Instalacija

Klonirajte Nimbus:

git clone https://github.com/status-im/nimbus
cd nimbus

Da pokrenemo Nimbus prvo moramo instalirati RocksDB bazu podataka i noviju verziju Nima. Na OS X izvršite:

brew install rocksdb

Na Linux sustavima, sljedeće bi trebalo biti dovoljno:

sudo apt-get install librocksdb-dev rocksdb # or your own Linux distribution's equivalent

Na Windows sustavu, prvo se pobrinite da imate make instaliran - to možete učiniti pomoću popularnih upravitelja paketima kao što je Chocolatey:

choco install make

Alternativno, instalirajte MinGW32make.exe s MinGW web stranice.

Napomena: Windows zahtijeva da dodate programe koje želite moći pokrenuti iz bilo kojeg dijela sustava u vašu PATH varijablu radnog okruženja. To se radi tako da otvorite Start izbornik, tražite "env", kliknete na Edit System Environment Variables i izmijenite PATH unos na popisu tako da dodate novu vrijednost na dno koja odgovara lokaciji gdje ste instalirali make ili mingw make (ako ste koristili Chocolatey, ovaj korak nije potreban). Moj PATH izgleda ovako.

Samo na Windowsima - pokrenite:

make fetch-dlls

ili ako ste instalirali mingw32make.exe:

mingw32make.exe fetch-dlls

To će preuzeti RocksDB i SQLite baze podataka i staviti ih u mapu build odakle će im Nimbus moći pristupiti.

Pokretanje

Da izgradite Nimbus iz izvornog koda, na Linux / OS X:

make

na Windows:

make

ili

mingw32make.exe

Nimbus će biti izgrađen i smješten u build mapu odakle ga možete pokrenuti naredbom nimbus ili nimbus.exe u Windows okruženju.

Da pokrenete testove:

make test # (ili mingw32make.exe test na Windowsima s MinGW)

Ako sve prođe kako treba, ekran bi trebao vrištati zelene [OK]-ove.

Da ažuirate datoteke za ponovnu izgradnju ako je došlo do nekih promjena:

make update

Da počistite izgrađene datoteke i počnete ispočetka:

make clean

Ethereum 2.0

Da pokrenete i testirate Ethereum 2.0 verziju Nimbusa (simulaciju mreže):

make eth2_network_simulation

Pokrenuti će se nekoliko Beacon čvorova i validatori će probati izgraditi beacon lanac. Više o samoj simulaciji pogledajte u ovom članku.

Da počnete simulaciju ispočetka i generirate sve datoteke iz nule:

make clean_eth2_network_simulation_files

Čestitamo! Uspješno ste izgradili i pokrenuli Nimbus, donekle. U budućim člancima raščlaniti ćemo neke testove, pogledati kako najlakše pridonijeti Nimbusu, uroniti u Nim jezik i još mnogo toga.

You can’t perform that action at this time.