{"id":39478,"date":"2019-10-31T22:33:41","date_gmt":"2019-10-31T19:33:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/chto-takoe-igra-validatorov-ili-kak-zapustit-proof-of-stake-blokchejn\/"},"modified":"2019-10-31T22:33:41","modified_gmt":"2019-10-31T19:33:41","slug":"chto-takoe-igra-validatorov-ili-kak-zapustit-proof-of-stake-blokchejn","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-takoe-igra-validatorov-ili-kak-zapustit-proof-of-stake-blokchejn","title":{"rendered":"Vad \u00e4r validatorernas spel eller 'hur man startar en proof-of-stake blockchain'","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>S\u00e5, ditt team har slutf\u00f6rt alpha-versionen av din blockchain, och det \u00e4r dags att lansera testn\u00e4tet och sedan mainnet. Du har en riktig blockchain, med oberoende deltagare, en bra ekonomisk modell och s\u00e4kerhet, du har designat governance och nu \u00e4r det dags att prova allting i praktiken. I en perfekt kryptoanarkistisk v\u00e4rld skulle du publicera genesis block, den slutliga koden f\u00f6r noden och validatorerna skulle sj\u00e4lva starta allt, s\u00e4tta upp alla st\u00f6dtj\u00e4nster och allt skulle h\u00e4nda av sig sj\u00e4lvt. Men det h\u00e4r \u00e4r en p\u00e5hittad v\u00e4rld, och i verkligheten m\u00e5ste teamet f\u00f6rbereda en hel del st\u00f6dmjukvara och olika manipulationer f\u00f6r att hj\u00e4lpa validatorerna att starta ett h\u00e5llbart n\u00e4tverk. Det handlar denna artikel om.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Att starta n\u00e4tverk baserade p\u00e5 konsensus av typen \"proof-of-stake\", d\u00e4r validatorerna best\u00e4ms av r\u00f6sterna fr\u00e5n systemets tokeninnehavare, \u00e4r en ganska specifik \u00e5tg\u00e4rd, eftersom \u00e4ven lansering av traditionella, centralstyrda system med tiotals och hundratals <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sv\/server\/\"   title=\"servrar\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1275\">servrar<\/a> \u00e4r en utmanande uppgift i sig, och blockchain m\u00e5ste startas med insatser fr\u00e5n lojala, men oberoende deltagare. Och, om i ett f\u00f6retag har administrat\u00f6rer fullst\u00e4ndig tillg\u00e5ng till alla maskiner, loggar och gemensam \u00f6vervakning, s\u00e5 sl\u00e4pper validatorerna ingen in till sina servrar och kommer troligen att f\u00f6redra att bygga sin infrastruktur sj\u00e4lva, eftersom den kontrollerar tillg\u00e5ngen till validatorns huvudtillg\u00e5ngar \u2013 insatsr\u00f6sterna. Just detta beteende m\u00f6jligg\u00f6r byggandet av distribuerade s\u00e4kra n\u00e4tverk \u2013 oberoende av anv\u00e4nda molnleverant\u00f6rer, virtuella och \"baremetal\" servrar, olika operativsystem; allt detta g\u00f6r attacker mot ett s\u00e5dant n\u00e4tverk oerh\u00f6rt ineffektiva \u2013 f\u00f6r mycket olika programvara anv\u00e4nds. Till exempel anv\u00e4nds det i Ethereum tv\u00e5 huvudsakliga implementeringar av noden, en p\u00e5 Go och en p\u00e5 Rust, och en attack som \u00e4r effektiv f\u00f6r en implementering fungerar inte f\u00f6r den andra.<\/p>\n<p><\/p>\n<p>D\u00e4rf\u00f6r m\u00e5ste alla processer f\u00f6r lansering och drift av blockkedjor organiseras s\u00e5 att varje validator, eller till och med en liten grupp av validators, kan n\u00e4r som helst kasta ut sina datorer genom f\u00f6nstret och l\u00e4mna, utan att n\u00e5got g\u00e5r s\u00f6nder, och de \u00e5terst\u00e5ende validators m\u00e5ste forts\u00e4tta st\u00f6dja n\u00e4tverket effektivt och ansluta nya validators. N\u00e4r n\u00e4tverket startas, n\u00e4r en validator \u00e4r i Europa, en annan i Sydamerika och en tredje i Asien, \u00e4r det ganska sv\u00e5rt att f\u00e5 flera dussin oberoende grupper att arbeta i samf\u00f6rst\u00e5nd och engagera dem i resultatet. <\/p>\n<p><\/p>\n<h2 id=\"validatory\">Validators<\/h2>\n<p><\/p>\n<p>L\u00e5t oss f\u00f6rest\u00e4lla oss att lanseringen av en hypotetisk modern blockkedja (det mesta som beskrivs g\u00e4ller blockkedjor baserade p\u00e5 vilket modernt blockkedje-familj som helst: Ethereum, EOS, Polkadot, Cosmos och andra, d\u00e4r proof-of-stake konsensus \u00e4r f\u00f6rutsatt. Huvudakt\u00f6rerna i s\u00e5dana blockkedjor \u00e4r validatorteam som installerar sina egna oberoende servrar, validerar och producerar nya block och f\u00e5r bel\u00f6ningar som n\u00e4tverket tillhandah\u00e5ller f\u00f6r dem som deltar i konsensus. F\u00f6r att starta nya n\u00e4tverk kr\u00e4vs flera dussin validators (s\u00e5 m\u00e5nga som f\u00f6r n\u00e4rvarande kan uppn\u00e5 konsensus mer eller mindre effektivt p\u00e5 sekunder), s\u00e5 projektet utlyser registrering d\u00e4r validators delar offentlig information om sig sj\u00e4lva med anv\u00e4ndarna och \u00f6vertygar dem om att de avser att kvalitativt st\u00f6dja det lanserade n\u00e4tverket.<\/p>\n<p><\/p>\n<p>Validatorverksamhet \u00e4r en aff\u00e4r som g\u00f6r det m\u00f6jligt att mycket noggrant bed\u00f6ma en validators potentiella inkomster, snabbt flytta resurser mellan projekt och, i h\u00e4ndelse av framg\u00e5ng f\u00f6r det valda n\u00e4tverket, kan en validator, som en fullst\u00e4ndig deltagare i DAO och ansvarig person, utveckla projektet eller helt enkelt tillhandah\u00e5lla utm\u00e4rkt teknisk service f\u00f6r helt transparenta r\u00e4ttvist intj\u00e4nade pengar. Vid ber\u00e4kning av bel\u00f6ningen till validatorerna str\u00e4var projekten efter att ta h\u00e4nsyn till validatorernas kostnader och g\u00f6ra bel\u00f6ningen per block s\u00e5 att denna verksamhet \u00e4r l\u00f6nsam, men som \u00e4nd\u00e5 inte skulle ge validators m\u00f6jlighet att rasera ekonomin genom att \u00f6versv\u00e4mma den med pengar och ber\u00f6va andra anv\u00e4ndare av n\u00e4tverket.<\/p>\n<p><\/p>\n<p>Aff\u00e4rsvaliderare kr\u00e4ver h\u00f6g tillg\u00e4nglighet av tj\u00e4nster, vilket inneb\u00e4r att devops och utvecklare m\u00e5ste ha en h\u00f6g niv\u00e5 av utbildning och dyra datorkapaciteter. \u00c4ven utan behovet av att bryta hash i proof-of-work n\u00e4tverk, \u00e4r en blockchain-nod en stor tj\u00e4nst som anv\u00e4nder mycket minne, kr\u00e4ver mycket ber\u00e4kningar, validerar, skriver till disk och ger stora datam\u00e4ngder till n\u00e4tverket. F\u00f6r att lagra loggar av transaktioner och blockkedjor f\u00f6r blockkedjor med flera tusen sm\u00e5 transaktioner i varje block kr\u00e4vs nu lagring av 50 GB eller mer, och f\u00f6r block m\u00e5ste det vara en SSD. State-databasen f\u00f6r blockkedjor som st\u00f6der smarta kontrakt kan redan \u00f6verstiga 64 GB RAM. Servrar med n\u00f6dv\u00e4ndig specifikation \u00e4r ganska dyra, en Ethereum- eller EOS-nod kan kosta mellan 100 och 200 $\/m\u00e5nad. L\u00e4gg d\u00e4rtill den \u00f6kade kostnaden f\u00f6r att ha utvecklare och devops tillg\u00e4ngliga dygnet runt, som under lanseringsperioden l\u00f6ser problem \u00e4ven p\u00e5 natten, d\u00e5 en del av validerarna enkelt kan befinna sig p\u00e5 andra sidan av jorden. \u00c4nd\u00e5 kan \u00e4gandet av en validerarnod under gynnsamma omst\u00e4ndigheter ge betydande inkomster (i fallet EOS \u2013 upp till 10 000 $ per dag).<\/p>\n<p><\/p>\n<p>Validering \u00e4r bara en av de nya potentiella IT-rollerna f\u00f6r f\u00f6retag och f\u00f6retagare, n\u00e4r programmerare kommer p\u00e5 alltmer sofistikerade algoritmer som bel\u00f6nar \u00e4rlighet och straffar bedr\u00e4gerier och st\u00f6ld, dyker det upp tj\u00e4nster som utf\u00f6r funktioner f\u00f6r publicering av viktiga data (oracle), \u00f6vervakar (slashing av ins\u00e4ttningar och straffar bedragare genom att publicera bevis p\u00e5 bedr\u00e4geri), tj\u00e4nster f\u00f6r tvistl\u00f6sning, f\u00f6rs\u00e4kringar och optioner; \u00e4ven garbage collection \u00e4r en potentiellt stor marknad inom smarta kontrakt d\u00e4r det \u00e4r n\u00f6dv\u00e4ndigt att betala f\u00f6r datalagring. <\/p>\n<p><\/p>\n<h2 id=\"problemy-zapuska-blokcheyna\">Problem med att starta ett blockchain<\/h2>\n<p><\/p>\n<p>\u00d6ppenheten i blockchain, som m\u00f6jliggjorde fritt deltagande i n\u00e4tverksarbetet av datorer fr\u00e5n vilket land som helst och enkel anslutning till n\u00e4tverket f\u00f6r varje script kiddie enligt instruktioner p\u00e5 GitHub, \u00e4r inte alltid en f\u00f6rdel. Jakten p\u00e5 en ny token f\u00e5r ofta validatorer att \"bryta en ny mynter vid starten\", i hopp om att kursen ska stiga och att de snabbt ska kunna s\u00e4lja det de har tj\u00e4nat. Detta inneb\u00e4r ocks\u00e5 att vem som helst kan vara din validator, \u00e4ven anonymt, r\u00f6ster kan l\u00e4ggas p\u00e5 denne p\u00e5 samma s\u00e4tt som f\u00f6r andra validatorer (dock kommer det att vara sv\u00e5rt f\u00f6r en anonym person att samla r\u00f6ster fr\u00e5n stakers, s\u00e5 skr\u00e4mmande ber\u00e4ttelser om anonyma kryptovalutor f\u00e5r vi l\u00e4mna till politiker). \u00c4nd\u00e5<\/p>\n<p><\/p>\n<p>Projektteamet har som uppgift att p\u00e5 n\u00e5got s\u00e4tt f\u00e5 in de som i framtiden kan s\u00e4kerst\u00e4lla stabil drift av noder, har kunskap om s\u00e4kerhet, kan snabbt l\u00f6sa problem, samarbeta med andra validatorer och agera gemensamt \u2013 kvaliteten p\u00e5 just den token, som n\u00e4tverksdeltagarna planerar att investera tid och resurser i, beror helt och h\u00e5llet p\u00e5 dessa egenskaper. F\u00f6rnuftiga grundare, som bed\u00f6mer riskerna, f\u00f6rst\u00e5r v\u00e4l att n\u00e4r programvara av den storleken startas kommer man ofr\u00e5nkomligen att st\u00f6ta p\u00e5 buggar i koden, nodkonfigurationen, och att stabiliteten i n\u00e4tverket beror p\u00e5 hur v\u00e4l utvecklarna och validatorerna gemensamt l\u00f6ser s\u00e5dana problem.<\/p>\n<p><\/p>\n<p>Teamet \u00e4r redo att r\u00f6sta i mainnet p\u00e5 vilka validatorer som helst, men de skulle g\u00e4rna vilja veta vilka, vilka \u00e4r bra? Den med st\u00f6rst portf\u00f6lj? N\u00e4stan ingen har det nu. Baserat p\u00e5 teamprofiler p\u00e5 Linkedin? Erfarna devops eller s\u00e4kerhetsexperter kommer inte att ge er n\u00e5gra profiler p\u00e5 Linkedin. Genom uttalanden i chatten, inl\u00e4gg och hj\u00e4lp till andra under f\u00f6rberedelsefasen? Bra, men subjektivt och oprecist.<\/p>\n<p><\/p>\n<p>Under s\u00e5dana f\u00f6rh\u00e5llanden kvarst\u00e5r en sak \u2013 vad som effektivt l\u00f6ser allas problem \u2013 ett spel d\u00e4r man kan v\u00e4lja de b\u00e4sta validatorerna, men viktigast av allt \u2013 att testa blockchainens styrka och genomf\u00f6ra en storskalig f\u00e4lttext av blockchainen under aktiva anv\u00e4ndningar, f\u00f6r\u00e4ndringar i konsensus, uppkomsten och korrigeringen av fel. F\u00f6r f\u00f6rsta g\u00e5ngen presenterade killarna fr\u00e5n projektet Cosmos denna procedur som ett spel, och denna id\u00e9 \u00e4r utan tvekan ett utm\u00e4rkt s\u00e4tt att f\u00f6rbereda n\u00e4tverket f\u00f6r att lansera ett p\u00e5litligt och motst\u00e5ndskraftigt mainnet.<\/p>\n<p><\/p>\n<h2 id=\"game-of-validators\">Game of Validators<\/h2>\n<p><\/p>\n<p>Jag kommer att beskriva validatorernas spel s\u00e5 som vi designade det f\u00f6r blockkedjan DAO.Casino (DAOBet) baserat p\u00e5 en fork av EOS, som kallas Haya och har en liknande governance-mekanism \u2013 validatorer v\u00e4ljs genom omr\u00f6stningar fr\u00e5n vilket konto som helst, d\u00e4r en del av saldot som anv\u00e4nds f\u00f6r att r\u00f6sta p\u00e5 validatorn fryses. Varje konto som har den prim\u00e4ra token BET kan r\u00f6sta p\u00e5 den valda validatorn med valfri del av sitt saldo. R\u00f6sterna summeras och utifr\u00e5n detta skapas en lista \u00f6ver toppvalidatorer. P\u00e5 olika blockkedjor \u00e4r denna process organiserad p\u00e5 olika s\u00e4tt, och vanligtvis \u00e4r det just i denna del som den nya blockkedjan skiljer sig fr\u00e5n den ursprungliga. Det ska s\u00e4gas att i v\u00e5rt fall motiverar EOS verkligen \"OS\" i sitt namn, d\u00e5 vi verkligen anv\u00e4nder EOS som det grundl\u00e4ggande operativsystemet f\u00f6r att lansera en modifierad version av blockkedjan f\u00f6r DAOBet.<\/p>\n<p><\/p>\n<p>Jag kommer att beskriva specifika problem och hur de kan l\u00f6sas inom ramen f\u00f6r spelet. L\u00e5t oss f\u00f6rest\u00e4lla oss ett n\u00e4tverk d\u00e4r din server kan attackeras \u00f6ppet, d\u00e4r det kr\u00e4vs kontinuerlig interaktion med n\u00e4tverket f\u00f6r att beh\u00e5lla positionen som validator, driva sin validator och se till att den producerar block som levereras i tid till \u00f6vriga validatorer, annars kommer validatorn att avl\u00e4gsnas fr\u00e5n listan.<\/p>\n<p><\/p>\n<h3 id=\"kak-vybrat-top-pobediteley\">Hur v\u00e4ljer man toppvinnarna?<\/h3>\n<p><\/p>\n<p>Det viktigaste tekniska kravet f\u00f6r spelet \u00e4r att dess resultat ska kunna kontrolleras offentligt. Det betyder att spelresultaten: TOP-vinnarna, ska fastst\u00e4llas strikt baserat p\u00e5 data som vilken deltagare som helst kan verifiera. I ett centraliserat system skulle vi kunna m\u00e4ta \"uptime\" f\u00f6r varje validator och bel\u00f6na dem som varit online mest eller passerat mest n\u00e4tverkstrafik. Vi kan samla in data om CPU-belastning, minne och bel\u00f6na dem som arbetat h\u00e5rt. Men varje s\u00e5dan insamling av m\u00e4tv\u00e4rden inneb\u00e4r en samlingspunkt, och dessutom \u00e4r noderna helt oberoende och kan bete sig hur de vill och skicka vilka data som helst.<\/p>\n<p><\/p>\n<p>D\u00e4rf\u00f6r \u00e4r den naturliga l\u00f6sningen att vinnarna ska best\u00e4mmas av data fr\u00e5n.blockkedjan, eftersom den visar vilken validator som producerade vilken block och vilka transaktioner som inkluderades i det. Vi kallade detta antal Validator Points (VP), och att tj\u00e4na dem \u00e4r den huvudsakliga m\u00e5ls\u00e4ttningen f\u00f6r validatorerna i spelet. I v\u00e5rt fall \u00e4r den enklaste, l\u00e4tt offentligt kontrollerbara och effektiva metoden f\u00f6r att m\u00e4ta en validators \"nytta\" VP = antal_blokker_producerad_av_validator_under_en_given_tidsperiod.<\/p>\n<p><\/p>\n<p>Detta enkla val beror p\u00e5 att governance i EOS redan tar h\u00e4nsyn till m\u00e5nga uppkommande problem, eftersom EOS \u00e4r arvtagare av tre generationer verkligt fungerande blockkedjor med stor erfarenhet av komplex n\u00e4tverksf\u00f6rvaltning, och i princip leder praktiskt taget alla validatorers problem med n\u00e4tverket, processorn eller h\u00e5rddisken till ett och samma problem \u2014 de signerar f\u00e4rre block, f\u00e5r mindre betalt f\u00f6r sitt arbete, vilket \u00e5terigen leder oss till antalet signerade block \u2014 f\u00f6r EOS \u00e4r det ett utm\u00e4rkt och enkelt alternativ.<\/p>\n<p><\/p>\n<p>F\u00f6r andra blockkedjor kan s\u00e4ttet att r\u00e4kna Validator Points variera, till exempel f\u00f6r pBFT-baserade konsensus (Tendermint\/Cosmos, konsensus Aura fr\u00e5n Parity Substrate), d\u00e4r varje block m\u00e5ste signeras av flera validatorer, \u00e4r det meningsfullt att r\u00e4kna separata signaturer fr\u00e5n validatorerna och inte block, och det kan vara viktigt att beakta ofullst\u00e4ndiga konsensusomg\u00e5ngar som anv\u00e4nder resurser fr\u00e5n andra validatorer, det beror helt p\u00e5 typen av konsensus. <\/p>\n<p><\/p>\n<h3 id=\"kak-smodelirovat-realnye-usloviya-ekspluatacii\">Hur man modellerar verkliga driftsf\u00f6rh\u00e5llanden<\/h3>\n<p><\/p>\n<p>Grundarna ska kontrollera validat\u00f6rer under f\u00f6rh\u00e5llanden som ligger n\u00e4ra verkligheten utan att ha n\u00e5gon centraliserad kontroll. Detta problem kan l\u00f6sas med hj\u00e4lp av ett faucet-kontrakt som delar ut lika m\u00e4ngder av huvudtoken till validat\u00f6rerna och alla intresserade. F\u00f6r att f\u00e5 tokens till sitt saldo m\u00e5ste man skapa en transaktion och se till att n\u00e4tverket inkluderar den i en block. D\u00e4rmed, f\u00f6r att en validat\u00f6r ska vinna, m\u00e5ste denne st\u00e4ndigt fylla p\u00e5 sitt saldo med nya tokens och r\u00f6sta f\u00f6r sig sj\u00e4lv, vilket g\u00f6r att denne kl\u00e4ttrar till toppen. Denna aktivitet skapar en konstant belastning p\u00e5 n\u00e4tverket, och parametrarna kan justeras s\u00e5 att fl\u00f6det av f\u00f6rfr\u00e5gningar \u00e4r tillr\u00e4ckligt stort f\u00f6r att ge ett fullgott n\u00e4tverkstest. Planera d\u00e4rf\u00f6r faucet-kontraktet i f\u00f6rv\u00e4g som ett viktigt verktyg f\u00f6r att starta n\u00e4tverket och b\u00f6rja anpassa dess parametrar i god tid.<\/p>\n<p><\/p>\n<p>Att beg\u00e4ra tokens fr\u00e5n faucet och validat\u00f6rernas r\u00f6stning emulerar trots allt inte riktigt korrekt hur blockchain fungerar, s\u00e4rskilt under extremt belastade perioder. D\u00e4rf\u00f6r kommer blockchain-teamet f\u00f6rr eller senare att beh\u00f6va skriva till\u00e4ggsbenchmarker f\u00f6r att belasta n\u00e4tverket. S\u00e4rskilt viktiga h\u00e4r \u00e4r de smarta kontrakt som skapats i f\u00f6rv\u00e4g f\u00f6r att testa separata delsystem. F\u00f6r att testa lagring, sparar kontraktet slumpm\u00e4ssiga data i blockchain, och f\u00f6r att kontrollera n\u00e4tverksresurser kr\u00e4ver det testkontraktet stora m\u00e4ngder ing\u00e5ende data, vilket \u00f6kar transaktionsvolymen \u2014 genom att starta fl\u00f6det av s\u00e5dana transaktioner vid olika tidpunkter testar teamet samtidigt stabiliteten i koden och validatorernas motst\u00e5ndskraft.<\/p>\n<p><\/p>\n<p>En separat fr\u00e5ga \u00e4r uppdateringen av nodernas kod och genomf\u00f6randet av h\u00e5rdgafflar. Det \u00e4r n\u00f6dv\u00e4ndigt att, i h\u00e4ndelse av en bugg, s\u00e5rbarhet eller en sammansv\u00e4rjning av illvilliga validatorer, validatorerna har en handlingsplan som redan \u00e4r testad i validatorernas spel. H\u00e4r kan man komma p\u00e5 system f\u00f6r att \u00e5dela VP f\u00f6r snabb till\u00e4mpning av en h\u00e5rdgaffel, till exempel genom att straffa alla validatorer som \u00e4nnu inte har uppdaterat sin nodkod, men detta \u00e4r sv\u00e5rt att genomf\u00f6ra och komplicerar ber\u00e4kningen. En n\u00f6dsituation med snabb till\u00e4mpning av en h\u00e5rdgaffel kan simuleras genom att<\/p>\n<p><\/p>\n<h3 id=\"kak-informirovat-uchastnikov-o-sostoyanii-seti-i-chinit-oshibki\">Hur informera deltagarna om n\u00e4tverksstatus och \u00e5tg\u00e4rda fel<\/h3>\n<p><\/p>\n<p>Trots misstroendet mellan validatorerna \u00e4r det f\u00f6rdelaktigt f\u00f6r alla att f\u00e5 aktuell information om n\u00e4tverksstatus i tid f\u00f6r att fatta snabba beslut, d\u00e4rf\u00f6r s\u00e4tter projektteamet upp en tj\u00e4nst f\u00f6r insamling och visualisering av m\u00e5nga metrikar fr\u00e5n validatorernas servrar, som g\u00f6r det m\u00f6jligt att se situationen samtidigt f\u00f6r hela n\u00e4tverket och snabbt avg\u00f6ra vad som h\u00e4nder. Det \u00e4r ocks\u00e5 f\u00f6rdelaktigt f\u00f6r b\u00e5de validatorerna och projektet att projektteamet snabbt \u00e5tg\u00e4rdar uppt\u00e4ckta fel, d\u00e4rf\u00f6r \u00e4r det meningsfullt att omedelbart starta insamling av loggar och feldata fr\u00e5n validatormaskinerna till en maskin som \u00e4r tillg\u00e4nglig f\u00f6r blockchain-utvecklarna. Ingen har n\u00e5got intresse av att f\u00f6rvr\u00e4nga informationen, d\u00e4rf\u00f6r uppr\u00e4ttas dessa tj\u00e4nster av projektteamet och de kan litas p\u00e5. Det \u00e4r meningsfullt att samla systemmetrikar fr\u00e5n validatorerna och, absolut, de viktigaste metrikarna f\u00f6r sj\u00e4lva blockchainen \u2014 f\u00f6r DAOBet \u00e4r det finaliseringstid och eftersl\u00e4pning av den senaste finaliserade blocket. Tack vare detta ser teamet \u00f6kning av minnesanv\u00e4ndning p\u00e5 noderna vid k\u00f6rning av benchmark, problem hos enskilda validatorer. <\/p>\n<p><\/p>\n<h2 id=\"vazhnye-momenty-po-provedeniyu-igry-validatorov\">Viktiga punkter f\u00f6r att genomf\u00f6ra validatorernas spel<\/h2>\n<p><\/p>\n<p>Det visar sig att om du vill ge officiellt tillst\u00e5nd f\u00f6r validatorer att attackera varandra (officiellt kan de redan g\u00f6ra det) m\u00e5ste detta uttryckas juridiskt som s\u00e4kerhetstestning, eftersom vissa l\u00e4nders lagar kan straffa DDoS- eller n\u00e4tverksattacker. En annan viktig fr\u00e5ga \u00e4r hur validatorerna ska bel\u00f6nas. Naturliga priser \u00e4r projektets tokens, som kommer att \u00f6verf\u00f6ras till mainnet, men massutdelning av tokens till alla som lyckas starta en nod \u00e4r inte heller det b\u00e4sta alternativet. Det kommer sannolikt att finnas en balans mellan de tv\u00e5 extrema alternativen:<\/p>\n<p><\/p>\n<p>Dela hela prispotten i enlighet med intj\u00e4nad VP<br \/>\ndetta \u00e4r v\u00e4ldigt demokratiskt och ger alla som investerat tid och resurser i validatorernas spel m\u00f6jlighet att tj\u00e4na<br \/>\nmen det lockar till spelet slumpm\u00e4ssiga personer utan f\u00f6rberedd infrastruktur<\/p>\n<p><\/p>\n<p>Dela prispotten till top-N validatorer baserat p\u00e5 spelresultaten<br \/>\ndet \u00e4r troligt att vinnarna kommer att vara de validatorer som mest stabilt har h\u00e5llit ut under spelet, med en stark fokus p\u00e5 att vinna<br \/>\nen del validatorer kanske inte vill delta, med en l\u00e5g bed\u00f6mning av sina vinstchanser, speciellt om det finns etablerade validatorer bland deltagarna<\/p>\n<p><\/p>\n<p>Vilket alternativ du f\u00f6redrar \u00e4r upp till dig <\/p>\n<p><\/p>\n<p>Det finns ocks\u00e5 en annan aspekt \u2014 det \u00e4r inte s\u00e4kert att dussintals validatorer kommer att rusa f\u00f6r att delta i spelet p\u00e5 ditt kall, och av de som beslutar att prova kommer inte alla ens att installera och starta en nod \u2014 vanligtvis har projekt p\u00e5 detta stadium ganska bristf\u00e4llig dokumentation, det f\u00f6rekommer fel, och utvecklarna som arbetar under tidspress svarar inte s\u00e4rskilt snabbt p\u00e5 fr\u00e5gor. D\u00e4rf\u00f6r, innan spelet startar, m\u00e5ste man ocks\u00e5 f\u00f6rbereda \u00e5tg\u00e4rder om antalet validatorer inte skulle r\u00e4cka. I detta fall startas de saknade validatorerna av projektteamet, deltar i konsensus, men kan inte bli vinnare.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">Slutsats<\/h2>\n<p><\/p>\n<p>Avslutningsvis har jag f\u00f6rs\u00f6kt samla en lista fr\u00e5n det ovanst\u00e5ende \u00f6ver vad som beh\u00f6ver uppfinnas, g\u00f6ras och startas f\u00f6r en effektiv genomf\u00f6rande av validatorernas spel<\/p>\n<p><\/p>\n<p>Vad som beh\u00f6ver g\u00f6ras f\u00f6r att starta ett riktigt spel f\u00f6r validatorer:<br \/>\nutveckla din egen blockchain \ud83d\ude42<\/p>\n<p><\/p>\n<ul>\n<li>skapa och lansera ett webbgr\u00e4nssnitt och tillhandah\u00e5lla CLI f\u00f6r att r\u00f6sta p\u00e5 validatorer<\/li>\n<li>g\u00f6ra s\u00e5 att metrik fr\u00e5n den aktiverade validerarnoden kan skickas till en centraliserad tj\u00e4nst (till exempel Prometheus)<\/li>\n<li>st\u00e4lla upp en server f\u00f6r insamling av metrik (Prometheus + Grafana) f\u00f6r validerarspel<\/li>\n<li>komma p\u00e5 hur Validator Points (VP) kommer att r\u00e4knas<\/li>\n<li>utveckla ett offentligt skript som ber\u00e4knar en validerares VP baserat p\u00e5 data fr\u00e5n blockkedjan<\/li>\n<li>utveckla ett webbgr\u00e4nssnitt f\u00f6r att visa topplistan av validerare och statusen f\u00f6r validerarspel (hur mycket tid som \u00e5terst\u00e5r, hur mycket VP var och en har osv.)<\/li>\n<li>utveckla och automatisera starten av ett valfritt antal egna noder, planera processen f\u00f6r att ansluta validerare till spelet (n\u00e4r och hur avbryta sina noder, l\u00e4mna och ta bort r\u00f6ster f\u00f6r dem)<\/li>\n<li>ber\u00e4kna hur m\u00e5nga token som beh\u00f6vs och utveckla en contract-faucet<\/li>\n<li>g\u00f6ra ett benchmark-skript (\u00f6verf\u00f6ringar av token, massiv anv\u00e4ndning av lagring, massiv n\u00e4tverksanv\u00e4ndning) <\/li>\n<li>samla alla deltagare i en chatt f\u00f6r snabb kommunikation<\/li>\n<li>starta blockkedjan n\u00e5got tidigare \u00e4n spelets b\u00f6rjan<\/li>\n<li>v\u00e4nta p\u00e5 startblocket, starta spelet<\/li>\n<li>testa n\u00e4tverket med flera typer av transaktioner<\/li>\n<li>implementera en hard fork<\/li>\n<li>\u00e4ndra listan \u00f6ver validerare<\/li>\n<li>upprepa p. 13, 14, 15 i olika ordningar f\u00f6r att uppr\u00e4tth\u00e5lla n\u00e4tverksstabilitet<\/li>\n<li>v\u00e4nta p\u00e5 det slutgiltiga blocket, avsluta spelet, r\u00e4kna VP<\/li>\n<\/ul>\n<p><\/p>\n<p>Det b\u00f6r n\u00e4mnas att validerarspel \u00e4r en ny historia och har endast genomf\u00f6rts ett par g\u00e5nger, s\u00e5 det \u00e4r b\u00e4st att inte betrakta denna text som en f\u00e4rdig guide. Det finns inga motsvarigheter i den moderna IT-branschen \u2013 t\u00e4nk dig att banker t\u00e4vlar sinsemellan om vem som b\u00e4st kan genomf\u00f6ra transaktioner f\u00f6r kunder innan de lanserar ett betalningssystem. Traditionella metoder kommer troligtvis inte att hj\u00e4lpa er att skapa stora decentraliserade n\u00e4tverk, s\u00e5 utforska nya aff\u00e4rsmodeller, genomf\u00f6r era spel, identifiera v\u00e4rdiga, bel\u00f6na dem och l\u00e5t era distribuerade system fungera snabbt och stabilt.<\/p>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/473174\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0442\u0430\u043a, \u0432\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430 alpha-\u0432\u0435\u0440\u0441\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430, \u0438 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c testnet, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438 mainnet. \u0423 \u0432\u0430\u0441 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u0441 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438, \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e, \u0432\u044b \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 governance \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0440\u0430 \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u0434\u0435\u043b\u0435. \u0412 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043c\u0438\u0440\u0435, \u0432\u044b \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0435 \u0432 \u0441\u0435\u0442\u044c genesis block, \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u043e\u0434\u044b \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u044b \u0441\u0430\u043c\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39478","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0442\u0430\u043a, \u0432\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430 alpha-\u0432\u0435\u0440\u0441\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430, \u0438 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c testnet, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438 mainnet.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-takoe-igra-validatorov-ili-kak-zapustit-proof-of-stake-blokchejn\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0438\u0433\u0440\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043b\u0438 \u201c\u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c proof-of-stake \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u201d | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0442\u0430\u043a, \u0432\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430 alpha-\u0432\u0435\u0440\u0441\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430, \u0438 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c testnet, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438 mainnet.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-takoe-igra-validatorov-ili-kak-zapustit-proof-of-stake-blokchejn\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:33:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:33:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vad \u00e4r ett validerarspel eller \u201chur man lanserar en proof-of-stake blockkedja\u201d | ProHoster","description":"S\u00e5, ditt team har slutf\u00f6rt alpha-versionen av din blockkedja, och det \u00e4r dags att lansera testnet, och sedan mainnet.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-takoe-igra-validatorov-ili-kak-zapustit-proof-of-stake-blokchejn","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0438\u0433\u0440\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043b\u0438 \u201c\u043a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c proof-of-stake \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u201d | ProHoster","og:description":"\u0418\u0442\u0430\u043a, \u0432\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430 alpha-\u0432\u0435\u0440\u0441\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430, \u0438 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c testnet, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438 mainnet.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-takoe-igra-validatorov-ili-kak-zapustit-proof-of-stake-blokchejn","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:33:41+00:00","article:modified_time":"2019-10-31T19:33:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39478","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 18:02:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:49:31","updated":"2026-02-09 18:02:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/39478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=39478"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/39478\/revisions"}],"predecessor-version":[{"id":158519,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/39478\/revisions\/158519"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=39478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=39478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=39478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}