Kaj je validatorska igra ali »kako zagnati verigo blokov z dokazom o vložku«

Torej, vaša ekipa je končala alfa različico vaše verige blokov in čas je, da zaženete testnet in nato mainnet. Imate pravo verigo blokov z neodvisnimi udeleženci, dober ekonomski model, varnost, oblikovali ste upravljanje in zdaj je čas, da vse to preizkusite v akciji. V idealnem kripto-anarhičnem svetu postaviš blok geneze v omrežje, končna koda vozlišča in validatorji sami zaženejo vse, dvignejo vse pomožne storitve in vse se zgodi samo od sebe. Toda to je v izmišljenem svetu, v resničnem svetu pa mora ekipa pripraviti precej pomožne programske opreme in različnih manipulacij, ki bodo validatorjem pomagale pri zagonu stabilnega omrežja. O tem govori ta članek.

Zagon omrežij, ki temeljijo na konsenzusu tipa »proof-of-stake«, kjer validatorje določajo glasovi imetnikov sistemskih žetonov, je precej specifičen dogodek, saj tudi zagon tradicionalnih, centralno upravljanih sistemov z desetinami in stotinami strežnikov ni enostaven. naloga sama po sebi, verigo blokov pa je treba začeti s prizadevanji zvestih, a neodvisnih udeležencev. In če imajo v korporaciji skrbniki ob zagonu popoln dostop do vseh strojev, dnevnikov, splošnega nadzora, potem validatorji nikomur ne bodo dovolili dostopa do njihovih strežnikov in bodo najverjetneje raje samostojno gradili svojo infrastrukturo, ker nadzoruje dostop. na glavno premoženje validatorja - deleže volivcev. To vedenje omogoča gradnjo porazdeljenih varnih omrežij - neodvisnost uporabljenih ponudnikov oblakov, virtualni in "goli" strežniki, različni operacijski sistemi, vse to vam omogoča, da so napadi na takšno omrežje izjemno neučinkoviti - preveč različnih uporablja se programska oprema. Na primer, Ethereum uporablja dve izvedbi glavnih vozlišč, v Go in Rust, in napad, ki je učinkovit za eno izvedbo, ne deluje za drugo.

Zato morajo biti vsi procesi za zagon in delovanje verig blokov organizirani tako, da lahko vsak validator ali celo majhna skupina validatorjev kadarkoli vrže svoje računalnike skozi okno in odide, pri tem pa se ne sme nič pokvariti in preostali validatorji morajo še naprej učinkovito podpirati omrežje delovanja in povezovati nove validatorje. Pri zagonu omrežja, ko je en validator v Evropi, drugi v Južni Ameriki in tretji v Aziji, je precej težko doseči usklajeno delo več deset neodvisnih skupin in jih posledično zanimati.

Validatorji

Predstavljajmo si lansiranje hipotetične sodobne verige blokov (večina opisanega je primerna za verige blokov, ki temeljijo na kateri koli sodobni družini verig blokov: Ethereum, EOS, Polkadot, Cosmos in drugi, ki zagotavljajo soglasje o dokazu o deležu. Glavni junaki serije takšne verige blokov so ekipe validatorjev, ki se ukvarjajo z nameščanjem lastnih neodvisnih strežnikov, ki validirajo in proizvajajo nove bloke, ter prejemajo nagrade, ki jih zagotavlja omrežje za tiste, ki sodelujejo v soglasju. Za zagon novih omrežij je potrebnih več deset validatorjev (toliko jih lahko zdaj bolj ali manj učinkovito dosežejo konsenz v nekaj sekundah), zato projekt napoveduje registracijo, pri kateri validatorji z uporabniki delijo javne podatke o sebi in jih tako prepričajo, da bodo zagnanemu omrežju zagotavljali kakovostno storitev.

Validacija je posel, ki omogoča izjemno natančno oceno morebitnih prihodkov validatorja, hiter prenos moči med projekti in če je omrežje, ki ga je izbral, uspešno, lahko validator kot polnopravni udeleženec v DAO in odgovorna oseba, razviti projekt ali preprosto zagotoviti odlično tehnično storitev za popolnoma transparenten, pošteno zaslužen denar. Projekti pri izračunu nagrade za validatorje poskušajo upoštevati stroške validatorjev in narediti nagrado za bloke takšno, da je ta posel dobičkonosen, hkrati pa ne dopušča, da validatorji zrušijo gospodarstvo tako, da jih zasipajo z denarjem in in ga prikrajša za druge uporabnike omrežja.

Poslovanje validatorjev zahteva zagotavljanje visoke tolerance storitev na napake, kar pomeni visoko stopnjo usposobljenosti devopov in razvijalcev ter drage računalniške vire. Tudi brez potrebe po rudarjenju zgoščenih vrednosti v omrežjih z dokazi o delu je vozlišče blockchain velika storitev, ki zavzame veliko pomnilnika, porabi veliko izračunov, preverja, piše na disk in pošilja velike količine podatkov v omrežje. . Za shranjevanje dnevnikov transakcij in verig blokov za verigo blokov z več tisoč majhnimi transakcijami v bloku je zdaj potreben prostor za shranjevanje 50 Gb ali več, za bloke pa mora biti SSD. Državna baza blokovnih verig s podporo za pametne pogodbe lahko že preseže 64 Gb RAM-a. Strežniki z zahtevanimi lastnostmi so precej dragi, vozlišče Ethereum ali EOS lahko stane od 100 do 200 $/mesec. K temu dodajte povečane plače za 10-urno delo razvijalcev in devopsov, ki v obdobju zagona rešujejo težave tudi ponoči, saj se nekateri validatorji zlahka nahajajo na drugi polobli. Vendar pa lahko lastništvo validatorskega vozlišča v pravih trenutkih prinese resne prihodke (v primeru EOS do 000 USD na dan).

Validacija je le ena od novih potencialnih informacijskih vlog za podjetnike in podjetja, ko programerji prihajajo z vse bolj izpopolnjenimi algoritmi, ki nagrajujejo poštenost ter kaznujejo goljufije in kraje, se pojavljajo storitve, ki opravljajo funkcije objave pomembnih podatkov (orakli), izvajanja nadzora. (rezanje depozitov in kaznovanje goljufov z objavo dokazov o prevari), storitve reševanja sporov, zavarovanja in opcije, celo odvoz smeti je potencialno velik trg v sistemih pametnih pogodb, kjer je treba plačati za shranjevanje podatkov.

Težave pri zagonu blockchaina

Odprtost verige blokov, ki je omogočila prosto sodelovanje računalnikov iz katere koli države v omrežju in enostavnost povezovanja kateregakoli script kiddija v omrežje po navodilih na GitHubu, ni vedno prednost. Prizadevanje za nov žeton pogosto prisili validatorje, da "na začetku rudarijo nov kovanec," v upanju, da se bo stopnja dvignila in priložnost, da hitro zavržejo svoj zaslužek. To tudi pomeni, da je vaš validator lahko kdorkoli, tudi anonimnež, zanj lahko glasujete na enak način kot za druge validatorje (vendar bo anonimnež težko zbral glasove deležnikov zase, zato grozljive zgodbe o anonimnih kriptovalutah bom prepustil politikom). Kljub temu

Projektna ekipa ima nalogo - nekako spraviti v svoje omrežje tiste, ki bodo v prihodnosti sposobni zagotavljati stabilno delovanje vozlišč, razumeti varnost, znati hitro reševati težave, sodelovati z drugimi validatorji in delovati skupaj - kvaliteta tega Zelo stvar je v celoti odvisna od teh lastnosti žetona, v katerega bodo udeleženci omrežja vložili svoj čas in sredstva. Ustrezni ustanovitelji pri ocenjevanju tveganj dobro razumejo, da boste pri zagonu programske opreme te velikosti zagotovo morali naleteti na napake v kodi in konfiguraciji vozlišč in da je stabilnost omrežja odvisna od tega, kako dobro bodo razvijalci in validatorji skupaj rešili take težave.

Ekipa je pripravljena glasovati v glavnem omrežju za katere koli validatorje, samo da bi vedeli, kateri, kateri so dobri? Največji portfelj? Zdaj ga nima skoraj nihče. Glede na Linkedin profile ekipe? Izkušeni razvijalci ali strokovnjaki za varnost vam ne bodo dali nobenih profilov Linkedin. Glede na izjave v klepetu, objave in pomoč drugim v pripravljalni fazi? Dobro, a subjektivno in netočno.

V takšnih razmerah ostane ena stvar - nekaj, kar dobro rešuje težave vseh - igra, v kateri bo mogoče izbrati najboljše validatorje, glavna stvar pa je preizkusiti trdnost verige blokov in opraviti celovit bojni preizkus blockchain v pogojih aktivne uporabe, spremembe konsenza, videz in popravek napak . Ta postopek so kot igro najprej predstavili fantje iz projekta Cosmos, ta ideja pa je nedvomno odličen način za pripravo omrežja na zagon zanesljivega in na napake tolerantnega glavnega omrežja.

Igra validatorjev

Opisal bom igro validatorjev, kot smo jo zasnovali za verigo blokov DAO.Casino (DAOBet), ki temelji na EOS forku, ki se imenuje Haya in ima podoben mehanizem upravljanja – validatorje izberemo z glasovanjem iz katerega koli računa, v katerem delu dobroimetje, uporabljeno za glasovanje za validatorja, je zamrznjeno. Vsak račun, ki ima glavni žeton BET na svojem stanju, lahko glasuje za izbranega validatorja s katerim koli delom svojega stanja. Glasovi se seštejejo in na podlagi rezultatov sestavijo najboljši validatorji. V različnih verigah blokov je ta proces organiziran drugače in običajno se prav v tem delu nova veriga blokov razlikuje od nadrejene in moram reči, da v našem primeru EOS v celoti upravičuje "OS" v svojem imenu, res uporabljamo EOS kot osnovni operacijski sistem za uvedbo spremenjene različice verige blokov za naloge DAOBet.

Opisal bom posamezne probleme in kako jih je mogoče rešiti znotraj igre. Predstavljajmo si omrežje, v katerem je vaš strežnik lahko odkrito napaden, kjer morate, da ohranite položaj validatorja, nenehno komunicirati z omrežjem, promovirati svoj validator in zagotoviti, da proizvaja bloke in jih dostavlja drugim validatorjem na časa, sicer bo validator izločen s seznama.

Kako izbrati najboljše zmagovalce?

Glavna tehnična zahteva za igro je, da so njeni rezultati javno preverljivi. To pomeni, da morajo biti rezultati igre TOP zmagovalci oblikovani izključno na podlagi podatkov, ki jih lahko preveri vsak udeleženec. V centraliziranem sistemu bi lahko izmerili "uptime" vsakega validatorja in nagradili tiste, ki so bili največ na spletu ali ki so prešli skozi največ omrežnega prometa. Zberete lahko podatke o obremenitvi procesorja in pomnilnika ter nagradite tiste, ki so dobro delali. Toda vsaka taka zbirka metrik pomeni obstoj zbirnega centra, vozlišča pa so vsa neodvisna in se lahko obnašajo, kot hočejo, ter pošiljajo poljubne podatke.

Zato je naravna rešitev, da se zmagovalce določi na podlagi podatkov iz verige blokov, saj se na podlagi njih vidi, kateri validator je izdelal kateri blok in katere transakcije so bile vanj vključene. To število smo imenovali validatorske točke (VP) in njihovo pridobivanje je glavni cilj validatorjev v igri. V našem primeru je najenostavnejša, javno preverljiva in učinkovita metrika »uporabnosti« validatorja VP = število blokov, ki jih je validator proizvedel v določenem časovnem obdobju.

Ta preprosta izbira je posledica dejstva, da upravljanje v EOS že zagotavlja številne nastajajoče težave, saj je EOS dedič treh generacij dejansko delujočih verig blokov z bogatimi izkušnjami pri upravljanju zapletenih omrežij in skoraj vseh težav validatorja z omrežjem, procesorjem, disk pripelje do samo ene težave - podpiše manj blokov, prejme manj plačila za delo, kar nas spet pripelje preprosto do števila podpisanih blokov - za EOS je to odlična in enostavna možnost.

Pri drugih verigah blokov se lahko način izračuna točk validatorja razlikuje, na primer za soglasja, ki temeljijo na pBFT (Tendermint/Cosmos, Aura consensus iz Parity Substrate), kjer mora vsak blok podpisati več validatorjev, zato je smiselno šteti posamezne validatorje. podpisov in ne blokov Morda bi bilo smiselno upoštevati nepopolne kroge soglasja, ki zapravljajo vire drugih validatorjev, na splošno je to zelo odvisno od vrste soglasja.

Kako simulirati dejanske pogoje delovanja

Naloga ustanoviteljev je testirati validatorje pod pogoji, ki so blizu realnosti, brez kakršnega koli centraliziranega nadzora. To težavo je mogoče rešiti s pogodbo iz pipe, ki razdeli enake količine glavnega žetona validatorjem in vsem ostalim. Če želite prejeti žetone na svoje stanje, morate ustvariti transakcijo in zagotoviti, da jo omrežje vključi v blok. Zato mora validator za zmago nenehno dopolnjevati svoje stanje z novimi žetoni in glasovati zase ter se tako povzpeti na vrh. Ta dejavnost ustvarja stalno obremenitev omrežja, parametre pa je mogoče izbrati tako, da je tok zahtev dovolj hud za popolno testiranje omrežja. Zato vnaprej načrtujte pogodbo za pipo kot pomembno orodje za zagon omrežja in začnite z izbiro njenih parametrov vnaprej.

Zahtevanje žetonov iz pipe in potrjevanje glasov še vedno ne posnema popolnoma delovanja bojne glave, zlasti v izjemno obremenjenih načinih. Zato bo ekipa za blockchain še vedno morala na tak ali drugačen način napisati dodatne primerjalne teste za obremenitev omrežja. Posebno vlogo pri tem igrajo posebej ustvarjene pametne pogodbe, ki omogočajo testiranje ločenega podsistema. Za testiranje shranjevanja pogodba shrani naključne podatke v verigi blokov, za testiranje omrežnih virov pa testna pogodba zahteva veliko količino vhodnih podatkov, s čimer se poveča obseg transakcij - z zagonom toka takšnih transakcij ob poljubnih časovnih točkah, ekipa hkrati testira stabilnost kode in moč validatorjev.

Ločeno vprašanje je posodabljanje kode vozlišč in izvajanje trdih forkov. Zahteva se, da imajo validatorji v primeru hrošča, ranljivosti ali dogovarjanja zlonamernih validatorjev akcijski načrt, ki je že izdelan v igri validatorjev. Tukaj lahko najdete sheme za zbiranje VP za hitro uporabo hard forka, na primer z globo za vse validatorje, ki še niso uvedli nove različice kode vozlišča, vendar je to težko izvesti in zaplete izračun. Situacijo nujne uporabe hard forka lahko simulirate tako, da umetno "zlomite" verigo blokov na danem bloku. Proizvodnja blokov se ustavi in ​​na koncu bodo zmagovalci tisti, ki prvi skočijo in začnejo podpisovati bloke, tako da je VP na podlagi števila podpisanih blokov tukaj primerna.

Kako obvestiti udeležence o stanju omrežja in odpraviti napake

Kljub nezaupanju med validatorji je pravočasno prejemanje ažurnih informacij o stanju omrežja koristno za vse zaradi hitrejšega sprejemanja odločitev, zato projektna skupina dviguje storitev za zbiranje in vizualizacijo številnih metrik s strežnikov validatorjev, ki vam omogoča, da vidite situacijo hkrati za celotno omrežje, kar vam omogoča, da hitro ugotovite, kaj se dogaja. Prav tako je koristno tako za validatorje kot za projekt, da projektna skupina hitro popravi ugotovljene napake, zato je poleg zbiranja metrik smiselno takoj začeti zbirati dnevnike in podatke o napakah s strojev validatorjev na napravi, ki je dostopna blockchainu. razvijalci. Pri tem nikomur ne koristi izkrivljanje informacij, zato te storitve razvija projektna skupina in jim lahko zaupamo. Sistemske metrike je smiselno zbirati od validatorjev, seveda pa sta najpomembnejši metriki same verige blokov – za DAOBet – čas finalizacije in zamik zadnjega finaliziranega bloka. Zahvaljujoč temu skupina opaža povečanje porabe pomnilnika na vozliščih pri izvajanju primerjalne vrednosti, težave s posameznimi validatorji

Pomembne točke za izvajanje validatorske igre

Izkazalo se je, da če želite uradno dovoliti validatorjem, da napadajo stroje drug drugega (neuradno lahko to vseeno počnejo), morate to ločeno pravno oblikovati kot varnostno testiranje, saj so po zakonodaji nekaterih držav DDoS ali omrežni napadi lahko kaznovan. Drugo pomembno vprašanje je, kako nagraditi validatorje. Naravne nagrade so projektni žetoni, ki bodo preneseni v glavno omrežje, vendar množična razdelitev žetonov vsem, ki so lahko zagnali vozlišče, tudi ni najboljša možnost. Najverjetneje boste morali uravnotežiti med dvema skrajnima možnostma:

Razdelite celoten nagradni sklad glede na doseženo VP
je zelo demokratična in omogoča vsakomur, ki je vložil čas in sredstva v igro validatorja, da zasluži denar
ampak v igro pritegne naključne ljudi brez pripravljene infrastrukture

Nagradni sklad najboljših N razdelite validatorjem na podlagi rezultatov igre
Zmagovalci bodo najverjetneje validatorji, ki so med igro zdržali najbolj dosledno in so zelo trdno odločeni zmagati
nekateri validatorji ne bodo želeli sodelovati, saj ocenjujejo, da so njihove možnosti za zmago nizke, še posebej, če so med udeleženci častiti validatorji

Katero možnost izbrati je odvisno od vas

Obstaja še ena točka - sploh ni dejstvo, da bo na ducate validatorjev pohitelo sodelovati v igri na vaš klic, in od tistih, ki se odločijo poskusiti, ne bodo vsi niti namestili in zagnali vozlišča - običajno, na tej stopnji imajo projekti precej skopo dokumentacijo, pojavljajo se napake, razvijalci, ki delajo pod časovnim pritiskom, ne odgovarjajo na vprašanja prav hitro. Zato je treba pred zagonom igre predvideti tudi dejanja, če zahtevano število validatorjev ni doseženo. V tem primeru na začetku igre manjkajoče validatorje zažene projektna skupina, sodelujejo pri soglasju, vendar ne morejo biti zmagovalci.

Zaključek

Na koncu sem iz zgornjega poskušal sestaviti seznam tega, kar je treba zamisliti, izdelati in zagnati za učinkovito izvajanje validatorske igre

Kaj morate storiti, da zaženete pravo validatorsko igro:
razviti lastno blockchain :)

  • ustvarite in dvignite spletni vmesnik ter zagotovite CLI za glasovanje za validatorje
  • poskrbite, da se metrike iz delujočega validatorskega vozlišča lahko pošljejo centralizirani storitvi (na primer Prometheus)
  • vzpostavite strežnik za zbiranje metrik (Prometheus + Grafana) za igro validatorja
  • ugotovite, kako bodo izračunane točke validatorja (VP).
  • razviti javno skripto, ki izračuna validator VP na podlagi podatkov iz verige blokov
  • razvijte spletni vmesnik za prikaz najboljših validatorjev in stanje validatorjev v igri (koliko časa je še do konca, kdo ima koliko VP itd.)
  • razviti in avtomatizirati zagon poljubnega števila lastnih vozlišč, oblikovati proces povezovanja validatorjev z igro (kdaj in kako odklopiti vaša vozlišča, predložiti in odstraniti glasove zanje)
  • izračunajte, koliko žetonov je treba izdati, in sestavite pogodbo za pipo
  • naredite primerjalni skript (prenosi žetonov, velika uporaba prostora za shranjevanje, velika uporaba omrežja)
  • zbrati vse udeležence v enem klepetu za hitro komunikacijo
  • zaženite blockchain malo prej kot se začne igra
  • počakajte na začetni blok, začnite igro
  • preizkusite omrežje z več vrstami transakcij
  • razvaljajte trde vilice
  • spremenite seznam validatorjev
  • ponovite korake 13,14,15, XNUMX, XNUMX v različnih vrstnih redih, pri čemer ohranite stabilnost omrežja
  • počakajte na zadnji blok, končajte igro, preštejte VP

Povedati je treba, da je igra validatorjev nova zgodba in je bila izvedena le nekajkrat, zato tega besedila ne jemljite kot že pripravljen vodnik. V sodobnem IT-poslovanju ni analogov - predstavljajte si, da banke, preden uvedejo plačilni sistem, tekmujejo med seboj, kdo bo najboljši pri izvajanju transakcij strank. Tradicionalni pristopi vam verjetno ne bodo pomagali ustvariti velikih decentraliziranih omrežij, zato obvladajte nove poslovne modele, izvajajte svoje igre, identificirajte vredne, jih nagradite in poskrbite, da bodo vaši porazdeljeni sistemi delovali hitro in stabilno.

Vir: www.habr.com

Dodaj komentar