Hvað er löggildingarleikur eða „hvernig á að setja af stað sönnunarhæfni blokkarkeðju“

Svo, liðið þitt hefur klárað alfa útgáfuna af blockchain þinni og það er kominn tími til að ræsa testnet og síðan mainnet. Þú ert með alvöru blockchain, með óháðum þátttakendum, góðu efnahagslegu líkani, öryggi, þú hefur hannað stjórnarhætti og nú er kominn tími til að prófa allt þetta í verki. Í hugsjónum dulmáls-anarkískum heimi setur þú upphafsblokkina á netið, lokakóða hnútsins og staðfestingaraðilarnir sjálfir ræsa allt, hækka alla aukaþjónustu og allt gerist af sjálfu sér. En þetta er í skáldskaparheimi, en í hinum raunverulega heimi þarf teymið að útbúa töluvert af aukahugbúnaði og ýmsum aðgerðum til að hjálpa sannprófunaraðilum að koma á fót stöðugu neti. Þetta er það sem þessi grein fjallar um.

Það er frekar sérstakur atburður að ræsa netkerfi sem byggjast á samstöðu um „sönnun á hlut“, þar sem löggildingaraðilar ráðast af atkvæðum handhafa kerfislykilsins, því það er ekki auðvelt að opna hefðbundin miðstýrð kerfi með tugum og hundruðum netþjóna. verkefni í sjálfu sér, og blockchain þarf að hefjast með fyrirhöfn tryggum en sjálfstæðum þátttakendum. Og ef í fyrirtæki, við ræsingu, hafa stjórnendur fullan aðgang að öllum vélum, annálum, almennu eftirliti, þá munu löggildingaraðilar ekki leyfa neinum aðgang að netþjónum sínum og mun líklega kjósa að byggja upp innviði sína sjálfstætt, vegna þess að það stjórnar aðgangi til helstu eigna löggildingaraðila - veðja kjósendur. Það er þessi hegðun sem gerir það mögulegt að byggja upp dreifð örugg net - sjálfstæði skýjaveitna sem notaðir eru, sýndar- og „baremetal“ netþjónar, mismunandi stýrikerfi, allt þetta gerir þér kleift að gera árásir á slíkt net afar árangurslausar - of mikið öðruvísi hugbúnaður er notaður. Til dæmis notar Ethereum tvær aðalhnútútfærslur, í Go og í Rust, og árás sem er áhrifarík fyrir eina útfærslu virkar ekki fyrir hina.

Þess vegna verður að skipuleggja öll ferli til að koma og reka blokkakeðjur þannig að hvaða löggildingaraðili sem er, eða jafnvel lítill hópur sannprófunaraðila, gæti hvenær sem er hent tölvum sínum út um gluggann og farið, á meðan ekkert ætti að brotna og þeir sem eftir eru. halda áfram að styðja rekstrarnetið á áhrifaríkan hátt og tengja nýja löggildingaraðila. Þegar netkerfi er sett af stað, þegar einn löggildingaraðili er í Evrópu, annar í Suður-Ameríku og sá þriðji í Asíu, er frekar erfitt að ná fram samræmdu starfi nokkurra tuga óháðra hópa og vekja áhuga þeirra fyrir vikið.

Löggildingaraðilar

Við skulum ímynda okkur kynningu á ímyndaðri nútíma blokkkeðju (flest af því sem lýst er hentar blokkkeðjum sem byggjast á hvaða nútíma blokkkeðjufjölskyldu sem er: Ethereum, EOS, Polkadot, Cosmos og fleiri, sem veita sönnun fyrir samstöðu um hlut. Aðalpersónur slíkar blokkakeðjur eru löggildingarteymi sem taka þátt í að setja upp eigin sjálfstæða netþjóna sem staðfesta og framleiða nýjar blokkir og fá verðlaun sem netið býður upp á fyrir þá sem taka þátt í samstöðunni. Til að setja af stað ný net þarf nokkra tugi staðfestingaraðila (svo margir geta nú ná samstöðu á nokkurn hátt á nokkrum sekúndum), þannig að verkefnið tilkynnir skráningu, þar sem löggildingaraðilar deila opinberum upplýsingum um sjálfa sig með notendum og sannfæra þá um að þeir ætli að veita hágæða þjónustu við hleypt af stokkunum.

Löggilding er fyrirtæki sem gerir þér kleift að meta afar nákvæmlega mögulegar tekjur löggildingaraðilans, flytja vald fljótt á milli verkefna og ef netið sem hann hefur valið gengur vel getur löggildingaraðilinn, sem fullgildur þátttakandi í DAO og ábyrgur einstaklingur, þróa verkefnið, eða einfaldlega veita framúrskarandi tækniþjónustu fyrir algjörlega gagnsæja, heiðarlega aflaða peninga. Við útreikning á verðlaunum fyrir löggildingaraðila reyna verkefni að taka tillit til kostnaðar við löggildingaraðila og gera verðlaunin fyrir blokkir þannig að þessi viðskipti séu arðbær, en leyfa á sama tíma ekki löggildingaraðilum að koma niður á hagkerfinu með því að flæða þá með peningum og svipta aðra netnotendur því.

Viðskipti löggildingaraðila krefjast þess að tryggja mikið bilanaþol þjónustu, sem þýðir mikla þjálfun fyrir devops og þróunaraðila og dýrt tölvuauðlindir. Jafnvel án þess að þurfa að grafa kjötkássa í vinnusönnunarnetum, er blockchain hnútur stór þjónusta sem tekur mikið minni, eyðir miklum útreikningum, staðfestir, skrifar á disk og sendir mikið magn af gögnum á netið . Til að geyma færsluskrár og blokkakeðjur fyrir blokkkeðju með nokkur þúsund smáfærslur í blokk þarf nú að geyma 50 Gb eða meira og fyrir blokkir verður það að vera SSD. Ríkisgagnagrunnur yfir blokkakeðjur með stuðningi við snjalla samninga getur nú þegar farið yfir 64Gb af vinnsluminni. Netþjónar með nauðsynlega eiginleika eru frekar dýrir; Ethereum eða EOS hnútur getur kostað frá 100 til 200 $ / mánuði. Bættu við þetta hækkuðum launum fyrir allan sólarhringinn vinnu þróunaraðila og devops, sem á kynningartímabilinu leysa vandamál, jafnvel á nóttunni, þar sem sumir löggildingaraðilar geta auðveldlega verið staðsettir á öðru jarðarhveli. Hins vegar, á réttum augnablikum, getur það haft alvarlegar tekjur að eiga löggildingarhnút (í tilviki EOS, allt að $10 á dag).

Staðfesting er bara eitt af nýju mögulegu upplýsingatæknihlutverkunum fyrir frumkvöðla og fyrirtæki; þegar forritarar koma með fleiri og flóknari reiknirit sem verðlauna heiðarleika og refsa fyrir svik og þjófnað, birtist þjónusta sem sinnir þeim hlutverkum að birta mikilvæg gögn (véfréttir), sinna eftirliti. (innlánaskerðing og refsing fyrir svikara með því að birta sönnun um blekkingar), þjónusta við lausn deilumála, tryggingar og valmöguleika, jafnvel sorphirðu er hugsanlega stór markaður í snjöllum samningskerfum þar sem nauðsynlegt er að greiða fyrir gagnageymslu.

Vandamál við að koma blockchain af stað

Hreinskilni blokkarkeðjunnar, sem gerði tölvum frá hvaða landi sem er til frjálsrar þátttöku í netkerfinu og auðveldið við að tengja hvaða smáforrit sem er, við netið samkvæmt leiðbeiningum á GitHub, er ekki alltaf kostur. Leitin að nýju tákni neyðir löggildingaraðila oft til að „anna nýja mynt í upphafi,“ í von um að gengi krónunnar hækki og tækifæri til að kasta af sér tekjum sínum. Þetta þýðir líka að löggildingaraðili þinn getur verið hver sem er, jafnvel nafnlaus aðili, þú getur kosið hann á sama hátt og aðra löggildingaraðila (þó verður það erfitt fyrir nafnlausan einstakling að safna atkvæðum hagsmunaaðila fyrir sjálfan sig, þannig að við“ Ég ætla að láta stjórnmálamenn eftir skelfilegu sögurnar um nafnlausa dulritunargjaldmiðla). Engu að síður

Verkefnateymið hefur það verkefni - að einhvern veginn komast inn í netið sitt þá sem í framtíðinni geta tryggt stöðugan rekstur hnúta, skilið öryggi, vita hvernig á að leysa vandamál fljótt, unnið með öðrum sannprófunaraðilum og starfað saman - gæði þess mjög hlutur fer algjörlega eftir þessum eiginleikum sem tákn sem þátttakendur netsins ætla að fjárfesta tíma sinn og fjármagn. Fullnægjandi stofnendur, þegar þeir meta áhættuna, skilja vel að þegar þú setur hugbúnað af þessari stærð á markað þarftu örugglega að lenda í villum í kóða og uppsetningu hnúta og að stöðugleiki netkerfisins fer eftir því hversu vel þróunaraðilar og sannprófunaraðilar munu leysa sameiginlega slík vandamál.

Liðið er tilbúið til að kjósa á mainnetinu fyrir hvaða löggildingaraðila sem er, bara til að vita hverjir, hverjir eru góðir? Stærsta eignasafnið? Það er nánast enginn með það núna. Byggt á Linkedin prófílum liðsins? Reyndir devops eða öryggissérfræðingar munu ekki gefa þér neina Linkedin prófíla. Samkvæmt yfirlýsingum á spjalli, færslum og aðstoð við aðra á undirbúningsstigi? Gott, en huglægt og ónákvæmt.

Við slíkar aðstæður er eitt eftir - eitthvað sem leysir vandamál allra vel - leikur þar sem hægt verður að velja bestu löggildingaraðilana, en aðalatriðið er að prófa blockchain fyrir styrk og framkvæma bardagapróf í fullri stærð á blockchain við virka notkun, breytingar á samstöðu, útliti og leiðréttingu á villum. Þessi aðferð var fyrst kynnt sem leikur af strákunum frá Cosmos verkefninu og þessi hugmynd er án efa frábær leið til að undirbúa netið fyrir opnun á áreiðanlegu og bilunarþolnu neti.

Game of Validators

Ég mun lýsa leiknum um löggildingaraðila eins og við hönnuðum hann fyrir DAO.Casino (DAOBet) blockchain byggt á EOS gafflinum, sem er kallaður Haya og hefur svipaða stjórnunaraðferð - staðfestingaraðilar eru valdir með því að greiða atkvæði frá hvaða reikningi sem er, þar sem hluti af eftirstöðvar sem notaðar voru til að kjósa löggildingaraðila eru frystar. Sérhver reikningur sem er með aðal BET-táknið á inneigninni sinni getur kosið valinn löggildingaraðila með hvaða hluta sem er. Atkvæðin eru tekin saman og efstu löggildingaraðilarnir byggðir á niðurstöðunum. Í mismunandi blokkkeðjum er þetta ferli skipulagt öðruvísi og venjulega er það í þessum hluta sem nýja blokkkeðjan er frábrugðin foreldrinu og ég verð að segja að í okkar tilviki réttlætir EOS „OS“ í nafni þess, við notum í raun EOS sem grunnstýrikerfi fyrir uppsetningu á breyttri útgáfu af blockchain fyrir DAOBet verkefni.

Ég mun lýsa einstökum vandamálum og hvernig hægt er að leysa þau innan leiksins. Við skulum ímynda okkur net þar sem hægt er að ráðast opinskátt á netþjóninn þinn, þar sem til að viðhalda stöðu löggildingaraðila þarftu að hafa stöðug samskipti við netið, kynna löggildingaraðilann þinn og ganga úr skugga um að hann framleiði blokkir og þær séu afhentar öðrum löggildingaraðilum á tíma, annars verður löggildingaraðili hent út af listanum.

Hvernig á að velja efstu sigurvegara?

Helsta tæknilega krafan fyrir leikinn er að niðurstöður hans séu opinberlega sannanlegar. Þetta þýðir að úrslit leiksins: TOP sigurvegarar, verða að myndast eingöngu á grundvelli gagna sem allir þátttakendur geta sannreynt. Í miðstýrðu kerfi gætum við mælt „spennutíma“ hvers löggildingaraðila og umbunað þeim sem voru mest á netinu eða fóru í gegnum hámarks netumferð. Hægt er að safna gögnum um örgjörva og minnisálag og umbuna þeim sem hafa unnið vel. En hvers kyns slík söfnun mæligilda þýðir tilvist söfnunarstöðvar og hnútarnir eru allir sjálfstæðir og geta hagað sér eins og þeir vilja og sent hvaða gögn sem er.

Þess vegna er náttúrulega lausnin sú að sigurvegararnir ættu að vera ákvarðaðir út frá gögnum frá blockchain, þar sem það er hægt að nota til að sjá hvaða löggildingaraðila framleiddi hvaða blokk og hvaða viðskipti voru innifalin í því. Við kölluðum þetta númer Validator Points (VP) og að vinna sér inn þá er aðalmarkmið löggildingaraðila í leiknum. Í okkar tilviki er einfaldasta, auðsannanlega opinberlega og árangursríka mælikvarðinn á „gagnsemi“ löggildingaraðila VP = fjöldi blokka sem löggildingaraðilinn framleiðir á tilteknu tímabili.

Þetta einfalda val er vegna þess að stjórnunarhættir í EOS sjá nú þegar fyrir mörgum vandamálum sem koma upp, þar sem EOS er erfingi þriggja kynslóða raunverulegra blokkkeðja með víðtæka reynslu af flóknum netstjórnun, og næstum hvaða vandamálum sem eru með löggildingu á netinu, örgjörva, diskur leiddi aðeins til eins vandamáls - hann skrifar undir færri blokkir, fær minni greiðslu fyrir verkið, sem aftur leiðir okkur einfaldlega til fjölda undirritaðra blokka - fyrir EOS er þetta frábær og einfaldur valkostur.

Fyrir aðrar blokkkeðjur getur það verið mismunandi hvernig staðfestingarpunktar eru reiknaðir, til dæmis fyrir samstöðu sem byggir á pBFT (Tendermint/Cosmos, Aura consensus frá Parity Substrate), þar sem hver blokk verður að vera undirrituð af mörgum staðfestingaraðilum, það er skynsamlegt að telja einstaka sannprófunaraðila undirskriftir frekar en blokkir.Það getur verið skynsamlegt að taka tillit til ófullkominna samstöðulota, sem sóa fjármagni annarra löggildingaraðila, almennt fer þetta mjög eftir tegund samstöðu.

Hvernig á að líkja eftir raunverulegum rekstrarskilyrðum

Verkefni stofnenda er að prófa löggildingaraðila við aðstæður nálægt raunveruleikanum, án þess að hafa miðlæga stjórn. Þetta vandamál er hægt að leysa með því að nota blöndunartæki sem dreifir jöfnu magni af aðallyklinum til löggildingaraðila og allra annarra. Til að fá tákn á stöðuna þína þarftu að búa til færslu og tryggja að netið hafi það í blokkinni. Þannig, til að vinna, verður löggildingaraðili stöðugt að bæta jafnvægið með nýjum táknum og kjósa sjálfan sig og efla sjálfan sig á toppinn. Þessi virkni skapar stöðugt álag á netið og hægt er að velja færibreyturnar þannig að beiðnaflæðið sé nógu alvarlegt fyrir fullan netpróf. Þess vegna skaltu skipuleggja blöndunartækið fyrirfram sem mikilvægt tæki til að ræsa netið og byrja að velja breytur þess fyrirfram.

Að biðja um tákn úr blöndunartæki og staðfesta atkvæði líkja enn ekki að fullu eftir virkni kjarnaodda, sérstaklega í mjög hlaðnum stillingum. Þess vegna verður blockchain teymið enn að skrifa viðbótarviðmið á einn eða annan hátt til að hlaða netið. Sérstakt hlutverk í þessu er gegnt af sérgerðum snjöllum samningum sem gera kleift að prófa sérstakt undirkerfi. Til að prófa geymslu geymir samningurinn tilviljunarkennd gögn í blokkakeðjunni og til að prófa netauðlindir krefst prófunarsamningurinn mikið magn af inntaksgögnum og eykur þar með magn viðskipta - með því að hefja flæði slíkra viðskipta á handahófskenndum tímapunktum, teymið prófar samtímis stöðugleika kóðans og styrk löggildingaraðilanna.

Sérstakt mál er að uppfæra kóðann fyrir hnúta og framkvæma harða gaffla. Það er áskilið að ef um villu, varnarleysi eða samráð illgjarnra sannprófunaraðila er að ræða, þá ættu löggildingaraðilar að hafa aðgerðaáætlun sem þegar hefur verið unnin í löggildingarleiknum. Hér getur þú komið með kerfi til að safna VP fyrir fljótt að beita harða gaffli, til dæmis með því að sekta alla staðfestingaraðila sem hafa ekki enn sett út nýja útgáfu af hnútkóðanum, en þetta er erfitt í framkvæmd og flækir útreikninginn. Þú getur líkt eftir aðstæðum neyðarnotkunar á harða gafflinum með því að „brjóta“ blockchain á tiltekinni blokk tilbúnar. Kubbaframleiðsla hættir og á endanum verða sigurvegararnir þeir sem hoppa fyrst inn og byrja að árita kubba, þannig að VP miðað við fjölda undirritaðra kubba passar vel hér.

Hvernig á að upplýsa þátttakendur um stöðu netkerfisins og laga villur

Þrátt fyrir vantraust milli löggildingaraðila, er tímabær móttaka á uppfærðum upplýsingum um stöðu netkerfisins gagnleg fyrir alla til að taka ákvarðanir hraðar, þannig að verkefnishópurinn er að hækka þjónustu til að safna og sjá marga mælikvarða frá staðfestingarþjónum, sem gerir þér kleift að sjá ástandið samtímis fyrir allt netið, sem gerir þér kleift að ákvarða fljótt hvað er að gerast. Einnig er hagkvæmt fyrir bæði löggildingaraðilana og verkefnið að verkefnishópurinn leiðréttir fljótt villurnar sem fundust, svo auk þess að safna mæligildum er skynsamlegt að byrja strax að safna annálum og villugögnum úr vélum löggildingaraðila á vél sem er aðgengileg blockchain. verktaki. Hér er ekki hagkvæmt fyrir neinn að afbaka upplýsingar, þannig að þessi þjónusta er þróuð af verkefnishópnum og hægt er að treysta henni. Það er skynsamlegt að safna kerfismælingum frá löggildingaraðilum, og auðvitað eru mikilvægustu mælikvarðar blokkarinnar sjálfrar - fyrir DAOBet - lokatíminn og töfin á síðustu lokuðu blokkinni. Þökk sé þessu sér liðið aukningu á minnisnotkun á hnútum þegar viðmiðið er keyrt, vandamál með einstaka sannprófunaraðila

Mikilvæg atriði fyrir framkvæmd löggildingarleiks

Eins og það kemur í ljós, ef þú vilt opinberlega leyfa löggildingaraðilum að ráðast á vélar hvers annars (óopinberlega geta þeir gert þetta hvort sem er), þá þarftu að móta þetta sérstaklega lagalega sem öryggisprófun, þar sem samkvæmt lögum sumra landa geta DDoS eða netárásir verið refsað. Annað mikilvægt mál er hvernig á að umbuna löggildingaraðilum. Náttúruleg verðlaun eru verkefnatákn, sem verða flutt yfir á aðalnetið, en gríðarleg dreifing tákna til allra sem geta ræst hnút er heldur ekki besti kosturinn. Líklegast verður þú að halda jafnvægi á milli tveggja öfgafullra valkosta:

Dreifðu öllum verðlaunapottinum í samræmi við VP sem unnið er
það er mjög lýðræðislegt og gerir öllum sem hafa lagt tíma og fjármagn í löggildingarleikinn að vinna sér inn peninga
en laðar að handahófskennt fólk til leiks án tilbúinna innviða

Dreifðu efstu N verðlaunapottinum til löggildingaraðila byggt á niðurstöðum leiksins
Sigurvegararnir verða að öllum líkindum þeir sem stóðu sig stöðugast í leiknum og eru mjög staðráðnir í að vinna
sumir löggildingaraðilar vilja ekki taka þátt, þeir meta lítið vinningslíkur, sérstaklega ef þátttakendur eru með virðulega matsmenn

Hvaða valkostur á að velja er undir þér komið

Það er einn punktur í viðbót - það er alls ekki staðreynd að tugir sannprófenda munu flýta sér að taka þátt í leiknum þegar þú hringir, og af þeim sem ákveða að prófa, munu þeir ekki einu sinni setja upp og ræsa hnútinn - venjulega, á þessu stigi eru verkefnin frekar dreifð skjöl, villur koma upp og forritarar sem vinna undir tímapressu svara ekki spurningum mjög hratt. Þess vegna, áður en leikurinn er ræstur, er einnig nauðsynlegt að gera ráð fyrir aðgerðum ef tilskildum fjölda sannprófunaraðila er ekki náð. Í þessu tilviki, í upphafi leiks, eru þeir sem vantar sannprófunarmenn settir af stað af verkefnishópnum, taka þátt í samstöðu, en geta ekki verið sigurvegarar.

Ályktun

Að lokum reyndi ég að setja saman úr ofangreindu lista yfir það sem þarf að hugsa upp, búa til og setja af stað til að framkvæma löggildingarleik á áhrifaríkan hátt

Það sem þú þarft að gera til að keyra alvöru löggildingarleik:
þróaðu þína eigin blockchain :)

  • búa til og hækka vefviðmót og útvega CLI til að kjósa um löggildingaraðila
  • ganga úr skugga um að hægt sé að senda mæligildi frá keyrandi staðfestingarhnút til miðlægrar þjónustu (til dæmis Prometheus)
  • hækka mælingasöfnunarþjón (Prometheus + Grafana) fyrir löggildingarleikinn
  • reikna út hvernig Validator Points (VP) verða reiknuð út
  • þróa opinbert handrit sem reiknar VP validator byggt á gögnum frá blockchain
  • þróað vefviðmót til að sýna helstu sannprófunarmenn og leikjastöðu löggildingaraðila (hversu langur tími er eftir til loka, hver hefur hversu mikinn VP o.s.frv.)
  • þróa og gera sjálfvirkan ræsingu á handahófskenndum fjölda eigin hnúta, hanna ferlið við að tengja löggildingaraðila við leikinn (hvenær og hvernig á að aftengja hnútana þína, senda inn og fjarlægja atkvæði fyrir þá)
  • reikna út hversu mörg tákn þarf að gefa út og þróa blöndunartæki
  • búa til viðmiðunarforskrift (táknflutningar, gríðarleg geymslunotkun, gríðarleg netnotkun)
  • safna öllum þátttakendum í einu spjalli fyrir skjót samskipti
  • ræstu blockchain aðeins fyrr en leikurinn byrjaði
  • bíddu eftir byrjunarreit, byrjaðu leikinn
  • prófa netið með nokkrum tegundum viðskipta
  • rúlla út harða gaffli
  • breyta lista yfir löggildingaraðila
  • endurtaktu skref 13,14,15, XNUMX, XNUMX í mismunandi röð, viðhalda stöðugleika netsins
  • bíddu eftir lokablokkinni, ljúktu leiknum, teldu VP

Það verður að segjast að leikurinn um löggildingaraðila er ný saga og hann var framkvæmdur aðeins nokkrum sinnum, svo þú ættir ekki að taka þennan texta sem tilbúinn leiðarvísi. Það eru engar hliðstæður í nútíma upplýsingatækniviðskiptum - ímyndaðu þér að bankar, áður en þeir setja á laggirnar greiðslukerfi, keppi hver við annan til að sjá hver verður bestur í viðskiptaviðskiptum. Ólíklegt er að hefðbundnar aðferðir hjálpi þér að búa til stór dreifð net, svo náðu góðum tökum á nýjum viðskiptamódelum, keyrðu leikina þína, auðkenndu þá verðugu, verðlaunaðu þá og haltu dreifðu kerfum þínum í gangi hratt og stöðugt.

Heimild: www.habr.com

Bæta við athugasemd