Mis on validaator või "kuidas käivitada panuse tõestamise plokiahel"

Seega on teie meeskond lõpetanud teie plokiahela alfaversiooni ja on aeg käivitada testnet ja seejärel mainnet. Teil on tõeline plokiahel, sõltumatute osalejatega, hea majandusmudel, turvalisus, olete kujundanud valitsemise ja nüüd on aeg seda kõike ka tegevuses proovida. Ideaalses krüptoanarhilises maailmas paned võrku geneesiploki, sõlme lõppkood ja validaatorid ise käivitavad kõik, tõstad kõik abiteenused üles ja kõik toimub iseenesest. Kuid see on väljamõeldud maailmas, kuid reaalses maailmas peab meeskond ette valmistama üsna palju abitarkvara ja mitmesuguseid manipuleerimisi, mis aitavad validaatoritel stabiilset võrku käivitada. Sellest see artikkel räägibki.

Panusetõendi tüüpi konsensustel põhinevate võrkude käivitamine, kus valideerijad määratakse süsteemi žetoonide omanike häältega, on üsna spetsiifiline sündmus, sest isegi traditsiooniliste, kümnete ja sadade serveritega tsentraalselt hallatavate süsteemide käivitamine pole lihtne. ülesanne iseenesest ja plokiahela käivitamiseks tuleb teha jõupingutusi lojaalsete, kuid sõltumatute osalejatega. Ja kui ettevõttes on administraatoritel käivitamisel täielik juurdepääs kõikidele masinatele, logidele, üldisele jälgimisele, siis ei luba validaatorid kellelgi juurdepääsu oma serveritele ja eelistavad tõenäoliselt ehitada oma infrastruktuuri iseseisvalt, kuna see kontrollib juurdepääsu valideerija põhivarale – panustab hääletajad. Just selline käitumine võimaldab luua hajutatud turvalisi võrke - kasutatavate pilveteenuse pakkujate sõltumatus, virtuaalsed ja "paljast" serverid, erinevad operatsioonisüsteemid, kõik see võimaldab muuta sellise võrgu vastu suunatud rünnakud äärmiselt ebaefektiivseks - liiga palju erinevaid kasutatakse tarkvara. Näiteks kasutab Ethereum kahte peamist sõlme rakendust, Go ja Rust, ning rünnak, mis on efektiivne ühe teostuse jaoks, ei tööta teise jaoks.

Seetõttu peavad kõik plokiahelate käivitamise ja käitamise protsessid olema korraldatud nii, et iga valideerija või isegi väike rühm valideerijaid võiks igal ajal oma arvuti aknast välja visata ja sealt lahkuda, samal ajal kui miski ei peaks purunema ja ülejäänud validaatorid peaksid jätkuvalt tõhusalt toetada operatsioonivõrku ja ühendada uusi validaatoreid. Võrgu käivitamisel, kui üks validaator asub Euroopas, teine ​​Lõuna-Ameerikas ja kolmas Aasias, on üsna keeruline saavutada mitmekümne sõltumatu grupi koordineeritud tööd ja neid seetõttu huvitada.

Validaatorid

Kujutagem ette hüpoteetilise moodsa plokiahela käivitamist (enamik kirjeldatust sobib plokiahelatele, mis põhinevad mis tahes kaasaegsel plokiahelate perekonnal: Ethereum, EOS, Polkadot, Cosmos jt, mis pakuvad panuse konsensust. Peategelased sellised plokiahelad on validaatorimeeskonnad , kes installivad oma sõltumatuid servereid, mis valideerivad ja toodavad uusi plokke ning saavad konsensuses osalenutele võrgu poolt pakutavaid auhindu. Uute võrkude käivitamiseks on vaja mitukümmend validaatorit (nii paljud saavad nüüd enam-vähem tõhusalt konsensusele jõuda sekunditega), seega kuulutab projekt välja registreeringu, mille käigus valideerijad jagavad kasutajatega enda kohta avalikku teavet, veendes neid, et nad hakkavad käivitatud võrku pakkuma kvaliteetset teenust.

Valideerimine on äri, mis võimaldab ülitäpselt hinnata validaatori potentsiaalset sissetulekut, kiiresti projektide vahel jõudu üle kanda ning kui tema valitud võrgustik on edukas, saab valideerija täieõigusliku DAO-s osaleja ja vastutava isikuna arendada projekti või pakkuda lihtsalt suurepärast tehnilist teenust täiesti läbipaistva, ausalt teenitud raha eest. Validaatorite tasu arvutamisel püüavad projektid võtta arvesse validaatorite kulusid ja muuta plokkide tasu selliseks, et see äri oleks kasumlik, kuid samal ajal ei lase validaatoritel majandust alla laadida, ujutades need rahaga ja teiste võrgukasutajate sellest ilmajätmine.

Validaatorite äri eeldab teenuste kõrge tõrketaluvuse tagamist, mis tähendab devopide ja arendajate kõrget koolitust ning kalleid arvutusressursse. Isegi ilma vajaduseta töötõendivõrkudes räsi kaevandada, on plokiahela sõlm suur teenus, mis võtab palju mälu, kulutab palju arvutusi, valideerib, kirjutab kettale ja saadab võrku suuri andmemahtusid. . Mitme tuhande väikese tehinguga plokiahela tehingulogide ja plokikettide salvestamiseks on nüüd vaja 50 Gb või rohkem salvestusruumi ning plokkide jaoks peab see olema SSD. Nutikate lepingute toega plokiahelate riiklik andmebaas võib juba ületada 64 Gb RAM-i. Nõutavate omadustega serverid on üsna kallid, Ethereumi või EOS-i sõlm võib maksta 100–200 dollarit kuus. Lisage sellele arendajate ja arendajate ööpäevaringse töö eest tõusnud palgad, kes käivitamisperioodil lahendavad probleeme isegi öösel, kuna mõned validaatorid võivad kergesti asuda teises poolkeras. Õigetel hetkedel võib validaatori sõlme omamine aga tõsist tulu tuua (EOS-i puhul kuni 10 000 dollarit päevas).

Valideerimine on ettevõtjatele ja ettevõtetele vaid üks uutest potentsiaalsetest IT-rollidest; kui programmeerijad tulevad välja üha keerukamate algoritmidega, mis premeerivad ausust ning karistavad pettuse ja varguse eest, ilmuvad teenused, mis täidavad oluliste andmete (oraaklite) avaldamise ja järelevalve ülesandeid. (tagatisraha kärpimine ja petturite karistamine petmise tõendi avaldamisega), vaidluste lahendamise teenused, kindlustus ja optsioonid, isegi prügivedu on nutikate lepingusüsteemide potentsiaalselt suur turg, kus andmete salvestamise eest tuleb maksta.

Probleemid plokiahela käivitamisel

Plokiahela avatus, mis võimaldas iga riigi arvutitel vabalt võrgus osaleda ja mis tahes skriptilapse võrku ühendamise lihtsus vastavalt GitHubi juhistele, ei ole alati eeliseks. Uue märgi otsimine sunnib sageli valideerijaid "alguses uut münti kaevandama", lootuses, et kurss tõuseb ja oma tulu kiiresti maha visata. See tähendab ka seda, et teie valideerija võib olla igaüks, isegi anonüümne isik, tema poolt saate hääletada samamoodi nagu teiste valideerijate puhul (anonüümsel isikul on aga raske enda jaoks sidusrühmade hääli koguda, nii et me Jätan õudsed jutud anonüümsetest krüptovaluutadest poliitikute hooleks). Sellest hoolimata

Projektimeeskonnal on ülesanne - kuidagi jõuda oma võrku need, kes suudavad tulevikus tagada sõlmede stabiilse töö, mõistavad turvalisust, oskavad probleeme kiiresti lahendada, teevad koostööd teiste valideerijatega ja koos tegutsevad - selle kvaliteet väga palju sõltub nendest omadustest, millesse võrgustikus osalejad oma aega ja ressursse investeerivad. Adekvaatsed asutajad saavad riske hinnates hästi aru, et sellise suurusega tarkvara käivitamisel tuleb kindlasti kokku puutuda vigadega sõlmede koodis ja konfiguratsioonis ning võrgu stabiilsus sõltub sellest, kui hästi arendajad ja valideerijad ühiselt lahendavad. selliseid probleeme.

Meeskond on valmis hääletama põhivõrgus kõigi valideerijate poolt, et teada saada, millised neist on head? Suurim portfell? Praegu pole seda peaaegu kellelgi. Kas meeskonna Linkedini profiilide põhjal? Kogenud devops või turbespetsialistid ei anna teile Linkedini profiile. Kas vestluses, postitustes ja ettevalmistusfaasis teiste aitamises olevate väidete järgi? Hea, aga subjektiivne ja ebatäpne.

Sellistes tingimustes jääb alles üks asi - miski, mis lahendab hästi kõigi probleemid - mäng, milles on võimalik valida parimad validaatorid, kuid peamine on testida plokiahela tugevust ja viia läbi täielik võitluskatse. plokiahel aktiivse kasutuse tingimustes, konsensuse muutused, välimus ja vigade parandamine . Seda protseduuri esitlesid esmakordselt mänguna Cosmose projekti poisid ja see idee on kahtlemata suurepärane viis võrgu ettevalmistamiseks usaldusväärse ja tõrketaluva põhivõrgu käivitamiseks.

Validaatorite mäng

Kirjeldan validaatorite mängu sellisena, nagu me selle kujundasime EOS-i kahvlil põhineva DAO.Casino (DAOBet) plokiahela jaoks, mis kannab nime Haya ja millel on sarnane juhtimismehhanism – validaatorid valitakse hääletades igalt kontolt, mille osa validaatori poolt hääletamiseks kasutatud saldo külmutatakse. Iga konto, mille saldol on peamine BET-märk, saab hääletada valitud validaatori poolt oma saldo mis tahes osaga. Hääled summeeritakse ja tulemuste põhjal ehitatakse üles tippvalidaatorid. Erinevates plokiahelates on see protsess erinevalt korraldatud ja tavaliselt just selles osas erineb uus plokiahel algsest ja pean ütlema, et meie puhul õigustab EOS oma nimes "OS-i" täielikult, me kasutame tõesti EOS-i. põhioperatsioonisüsteemina DAOBeti ülesannete jaoks plokiahela modifitseeritud versiooni juurutamiseks.

Kirjeldan üksikuid probleeme ja kuidas neid mängu sees lahendada saab. Kujutagem ette võrku, milles teie serverit saab avalikult rünnata ja kus validaatori positsiooni säilitamiseks peate pidevalt võrguga suhtlema, reklaamima oma validaatorit ja veenduma, et see toodab plokke ja need edastatakse teistele validaatoritele. aega, muidu visatakse validaator nimekirjast välja.

Kuidas valida parimaid võitjaid?

Mängu peamine tehniline nõue on, et selle tulemused oleksid avalikult kontrollitavad. See tähendab, et mängu tulemused: TOP võitjad, tuleb moodustada rangelt andmete alusel, mida saab kontrollida iga osaleja. Tsentraliseeritud süsteemis saime mõõta iga validaatori tööaega ja premeerida neid, kes olid kõige rohkem võrgus või läbisid maksimaalse võrguliikluse. Saate koguda andmeid protsessori ja mälu koormuse kohta ning premeerida neid, kes on hästi töötanud. Kuid igasugune selline mõõdikute kogum tähendab kogumiskeskuse olemasolu ja kõik sõlmed on sõltumatud ning võivad käituda nii, nagu tahavad ja saata mis tahes andmeid.

Seetõttu on loomulik lahendus, et võitjad tuleks välja selgitada plokiahela andmete põhjal, kuna selle abil saab näha, milline validaator millise ploki koostas ja milliseid tehinguid sellesse kaasati. Nimetasime seda numbrit Validaatoripunktideks (VP) ja nende teenimine on mängu validaatorite peamine eesmärk. Meie puhul on validaatori kasulikkuse kõige lihtsam, hõlpsasti avalikult kontrollitav ja tõhus mõõdik VP = validaatori poolt antud ajaperioodi jooksul toodetud plokkide arv.

See lihtne valik on tingitud asjaolust, et EOS-i juhtimine pakub juba palju esilekerkivaid probleeme, kuna EOS on kolme põlvkonna tegelikult toimivate plokiahelate pärija, kellel on laialdased kogemused keeruka võrguhalduse vallas ning peaaegu kõik võrgu, protsessori, valideerimisprobleemid, ketas toob kaasa ainult ühe probleemi - ta allkirjastab vähem plokke, saab töö eest vähem tasu, mis viib meid jällegi lihtsalt allkirjastatud plokkide arvu juurde - EOS-i jaoks on see suurepärane ja lihtne valik.

Teiste plokiahelate puhul võib Validaatoripunktide arvutamise viis erineda, näiteks pBFT-põhiste konsensuste puhul (Tendermint/Cosmos, Aura consensus from Parity Substrate), kus igale plokile peab alla kirjutama mitu valideerijat, on otstarbekas arvestada individuaalset validaatorit. pigem allkirjad kui plokid. Võib olla mõttekas võtta arvesse mittetäielikke konsensusvoore, mis raiskavad teiste valideerijate ressursse, üldiselt sõltub see suuresti konsensuse tüübist.

Kuidas simuleerida tegelikke töötingimusi

Asutajate ülesanne on testida validaatoreid reaalsusele lähedastes tingimustes, ilma tsentraliseeritud kontrollita. Selle probleemi saab lahendada segistilepinguga, mis jagab validaatoritele ja kõigile teistele võrdsetes kogustes põhimärki. Oma saldole žetoonide saamiseks peate looma tehingu ja tagama, et võrk kaasaks selle plokki. Seega peab validaator võitmiseks pidevalt täiendama oma saldot uute märkidega ja hääletama enda poolt, tõstes end tippu. See tegevus tekitab võrgule pideva koormuse ja parameetreid saab valida nii, et päringute voog oleks võrgu täielikuks testimiseks piisavalt tõsine. Seetõttu planeerige segistileping ette kui oluline vahend võrgu käivitamiseks ja asuge eelnevalt selle parameetreid valima.

Kraanist žetoonide küsimine ja häälte kinnitamine ei jäljenda ikka veel täielikult lõhkepea tööd, eriti äärmiselt koormatud režiimides. Seetõttu peab plokiahela meeskond ikkagi võrgu laadimiseks ühel või teisel viisil kirjutama täiendavaid võrdlusnäitajaid. Erilist rolli mängivad selles spetsiaalselt loodud nutikad lepingud, mis võimaldavad testida eraldi alamsüsteemi. Salvestamise testimiseks salvestab leping plokiahelasse juhuslikud andmed ja võrguressursside testimiseks nõuab testleping suurt hulka sisendandmeid, suurendades sellega tehingute mahtu - käivitades selliste tehingute voo suvalistel ajahetkedel, meeskond testib üheaegselt nii koodi stabiilsust kui ka validaatorite tugevust.

Eraldi probleem on sõlmede koodi uuendamine ja kõvade kahvlite läbiviimine. Nõutav on, et vea, haavatavuse või pahatahtlike valideerijate kokkumängu korral peaks valideerijatel olema tegevuskava, mis on valideerijate mängus juba välja töötatud. Siin saate välja mõelda skeemid VP kogumiseks kõva kahvli kiireks rakendamiseks, näiteks trahvides kõiki valideerijaid, kes pole veel sõlme koodi uut versiooni välja toonud, kuid seda on keeruline rakendada ja see muudab arvutamise keeruliseks. Saate simuleerida kõva kahvli hädaolukorra kasutamist, kui kunstlikult "lõhkudes" antud ploki plokiahela. Plokkide tootmine peatub ja lõpuks võidavad need, kes esimesena sisse hüppavad ja plokke allkirjastama hakkavad, seega sobib siia hästi allkirjastatud plokkide arvu järgi VP.

Kuidas teavitada osalejaid võrgu olekust ja parandada vigu

Vaatamata validaatorite vahelisele umbusaldusele on võrgu seisukorra kohta värske teabe õigeaegne kättesaamine kasulik igaühele, et otsuseid kiiremini langetada, seega tõstab projektimeeskond teenust paljude mõõdikute kogumiseks ja visualiseerimiseks validaatori serveritest, mis võimaldab teil näha olukorda üheaegselt kogu võrgus, võimaldades teil kiiresti kindlaks teha, mis toimub. Samuti on nii valideerijatele kui projektile kasulik, et projektimeeskond parandab kiiresti leitud vead, mistõttu on lisaks mõõdikute kogumisele mõttekas koheselt hakata koguma validaatorite masinatest logisid ja veaandmeid plokiahelale ligipääsetavas masinas. arendajad. Siin ei ole kellelegi kasulik teavet moonutada, seega on need teenused välja töötatud projektimeeskonna poolt ja neid saab usaldada. Süsteemi mõõdikuid on mõttekas koguda validaatoritelt ja loomulikult on plokiahela enda – DAOBeti jaoks – kõige olulisemad mõõdikud lõpuleviimise aeg ja viimase lõpetatud ploki viivitus. Tänu sellele näeb meeskond võrdlusaluse käitamisel sõlmede mälutarbimise suurenemist, probleeme üksikute validaatoritega

Olulised punktid validaatorimängu läbiviimiseks

Selgub, et kui soovite ametlikult lubada validaatoritel üksteise masinaid rünnata (mitteametlikult saavad nad seda niikuinii teha), siis tuleb see eraldi seaduslikult turvatestina sõnastada, kuna mõne riigi seaduste kohaselt võib DDoS või võrgurünnak olla karistada. Teine oluline küsimus on valideerijate premeerimine. Loomulikud auhinnad on projektimärgid, mis kantakse üle põhivõrku, kuid žetoonide massiline jagamine kõigile, kes suutsid sõlme käivitada, pole samuti parim valik. Tõenäoliselt peate tasakaalustama kahe äärmusliku võimaluse vahel:

Jagage kogu auhinnafond vastavalt teenitud VP-le
see on väga demokraatlik ja võimaldab raha teenida kõigil, kes on valijamängu aega ja ressursse investeerinud
kuid meelitab mängu juhuslikke inimesi ilma ettevalmistatud infrastruktuurita

Jagage parima N auhinnafond validaatoritele mängu tulemuste põhjal
Tõenäoliselt võidavad need validaatorid, kes kestsid mängu jooksul kõige püsivamalt ja on väga kindlalt otsustanud võita
mõned valideerijad ei taha osaleda, sest nende võiduvõimalused on madalad, eriti kui osalejate hulgas on auväärseid valideerijaid

Milline valik valida, on teie otsustada

On veel üks nüanss – pole sugugi tõsi, et kümned validaatorid tormavad teie kõne peale mängus osalema ja neist, kes otsustavad proovida, kõik ei installi ega käivita sõlme – tavaliselt, praeguses etapis on projektidel üsna hõre dokumentatsioon, esineb vigu ning ajasurve all töötavad arendajad ei vasta küsimustele kuigi kiiresti. Seetõttu on enne mängu käivitamist vaja ette näha ka toimingud, kui vajalik arv validaatoreid ei saavutata. Sel juhul käivitab projektimeeskond mängu alguses puuduvad validaatorid, nad osalevad konsensuses, kuid ei saa olla võitjad.

Järeldus

Kokkuvõtteks püüdsin ülaltoodust koostada nimekirja sellest, mida on vaja välja mõelda, teha ja käivitada, et validaator mäng tõhusalt läbi viia.

Mida peate tegema tõelise validaatori mängu käivitamiseks:
arenda oma plokiahel :)

  • teha ja tõsta veebiliides ning pakkuda validaatorite hääletamiseks CLI
  • veenduge, et töötava validaatori sõlme mõõdikuid saab saata tsentraliseeritud teenusesse (nt Prometheus)
  • tõsta validaatorimängu jaoks mõõdikute kogumise server (Prometheus + Grafana).
  • mõelge välja, kuidas validaatoripunkte (VP) arvutatakse
  • töötada välja avalik skript, mis arvutab validaatori VP plokiahela andmete põhjal
  • arendada välja veebiliides, et kuvada parimad validaatorid ja validaatorite mängu staatus (kui palju aega on jäänud lõpuni, kellel kui palju VP-d jne)
  • arendada ja automatiseerida suvalise arvu oma sõlmede käivitamist, kujundada validaatorite mänguga ühendamise protsess (millal ja kuidas sõlmed lahti ühendada, nende poolt hääli esitada ja eemaldada)
  • arvuta välja, kui palju žetoone tuleb väljastada ja tööta välja segisti leping
  • koostage võrdlusskript (lubade edastused, tohutu salvestusruumi kasutamine, massiline võrgukasutus)
  • koondage kõik osalejad kiireks suhtluseks ühte vestlusesse
  • käivitage plokiahel veidi varem kui mängu algus
  • oodake stardiplokki, alustage mängu
  • testige võrku mitut tüüpi tehingutega
  • rulli kõva kahvel lahti
  • muuta validaatorite nimekirja
  • korrake samme 13,14,15, XNUMX, XNUMX erinevates järjekorras, säilitades võrgu stabiilsuse
  • oota viimast plokki, lõpeta mäng, loe VP

Peab ütlema, et validaatorite mäng on uus lugu ja seda viidi läbi vaid paar korda, seega ei tasu seda teksti võtta kui valmis juhendit. Kaasaegsel IT-äril pole analooge – kujutage ette, et pangad konkureerivad enne maksesüsteemi käivitamist omavahel, kes on parim klienditehingute tegemisel. Traditsioonilised lähenemisviisid tõenäoliselt ei aita teil luua suuri detsentraliseeritud võrke, nii et omandage uusi ärimudeleid, käivitage oma mänge, tuvastage väärilised, premeerige neid ning hoidke hajutatud süsteemid kiiresti ja stabiilselt töös.

Allikas: www.habr.com

Lisa kommentaar