Zer da baliozkotzaileen joko bat edo "nola exekutatu froga-jokoen bloke-katea"

Beraz, zure taldeak zure bloke-katearen alfa bertsioa amaitu du, eta testnet eta gero mainnet abiarazteko garaia da. Benetako blockchain bat duzu, parte hartzaile independenteekin, eredu ekonomiko ona, segurtasuna, gobernantza diseinatu duzu eta hori guztia ekintzan probatzeko garaia da. Mundu kripto-anarkiko ideal batean, genesi blokea jartzen duzu sarean, nodoaren azken kodea eta baliozkotzaileek beraiek dena abiarazten dute, zerbitzu laguntzaile guztiak igotzen dira eta dena berez gertatzen da. Baina hau fikziozko munduan dago, baina mundu errealean, taldeak software laguntzaile asko eta hainbat manipulazio prestatu behar ditu baliozkotzaileei sare egonkor bat abiarazten laguntzeko. Honi buruz da artikulu hau.

Sareak abiaraztea "froga-de-stake" motako adostasunetan oinarrituta, non baliozkotzaileak sistemaren tokenen jabeen botoen arabera zehazten diren, gertaera zehatz samarra da, zeren eta hamar eta ehunka zerbitzari dituzten sistema tradizionalak eta zentralizatuak abian jartzea ere ez baita erraza. zeregina berez, eta blockchain-a parte-hartzaile leial baina independenteekin hasi behar da. Eta, korporazio batean, abiaraztean, administratzaileek makina, erregistro, monitorizazio orokorretarako sarbide osoa badute, orduan baliozkotzaileek ez diote inori bere zerbitzarietara sartzen utziko eta, ziurrenik, nahiago izango dute beren azpiegitura modu independentean eraikitzea, sarbidea kontrolatzen duelako. baliozkotzailearen aktibo nagusietara - boto-emaileen partaidetza. Jokabide honek sare seguru banatuak eraikitzea ahalbidetzen du - erabilitako hodei-hornitzaileen independentzia, zerbitzari birtualak eta "baremetal", sistema eragile desberdinak, horrek guztiak sare horren aurkako erasoak oso ez eraginkorrak egiteko aukera ematen du - oso desberdina. softwarea erabiltzen da. Adibidez, Ethereum-ek bi nodo inplementazio nagusi erabiltzen ditu, Go-n eta Rust-en, eta inplementazio baterako eraginkorra den eraso batek ez du bestearentzat funtzionatzen.

Hori dela eta, bloke-kateak abiarazteko eta funtzionatzeko prozesu guztiak antolatu behar dira, edozein baliotzaile edo baliozkotzaile talde txiki batek edozein unetan bere ordenagailuak leihotik bota eta alde egin dezakeen bitartean, ezer hautsi behar ez den bitartean eta gainontzeko baliozkotzaileek. funtzionamendu-sarea eraginkortasunez onartzen jarraitu eta baliozkotzaile berriak konektatzen jarraitu. Sare bat martxan jartzean, baliozkotzaile bat Europan, bigarrena Hego Amerikan eta hirugarrena Asian dagoenean, nahiko zaila da hainbat dozena talde independenteren lan koordinatua lortzea eta horren ondorioz interesatzea.

Balidatzaileak

Imajina dezagun blockchain moderno hipotetiko baten abian jartzea (deskribatzen den gehiena egokia da edozein bloke-kateen familia modernoetan oinarritutako blockchainentzat: Ethereum, EOS, Polkadot, Cosmos eta beste batzuk, froga-adostasuna ematen dutenak. Pertsonaia nagusiak. halako bloke-kateak baliozkotzaile-taldeak dira, bloke berriak balioztatu eta ekoizten dituzten zerbitzari independenteak instalatzen dihardutenak, eta sareak emandako sariak jasotzen dituzte adostasunean parte hartzen dutenentzat. Sare berriak abiarazteko, hainbat dozena baliozkotzaile behar dira (hainbestek orain egin dezakete. modu eraginkorrean segundotan adostasuna lortzen da), beraz, proiektuak erregistratzea iragartzen du, zeinetan baliozkotzaileek euren buruari buruzko informazio publikoa erabiltzaileekin partekatzen dutela, abiarazitako sareari kalitate handiko zerbitzua emango diotela sinestaraziz.

Balioztatzea balioztatzailearen diru-sarrerak zehatz-mehatz ebaluatzeko aukera ematen duen negozioa da, proiektuen artean boterea azkar transferitzeko, eta aukeratutako sarea arrakastatsua bada, baliozkotzaileak, DAOko parte-hartzaile oso gisa eta pertsona arduratsu gisa, proiektua garatu, edo, besterik gabe, zerbitzu tekniko bikaina eskaintzea guztiz gardena, zintzotasunez irabazitako dirua. Balidatzaileen saria kalkulatzerakoan, proiektuak baliozkotzaileen kostuak kontuan hartzen saiatzen dira eta blokeen saria negozio hau errentagarria izan dadin saiatzen dira, baina, aldi berean, ez dute onartzen baliozkotzaileei ekonomia jaisten, diruz gainezka eta sareko beste erabiltzaile batzuk kenduz.

Balidatzaileen negozioak zerbitzuen akatsen tolerantzia handia bermatzea eskatzen du, hau da, devops eta garatzaileentzako prestakuntza maila altua eta baliabide informatiko garestiak dira. Nahiz eta froga-laneko sareetan hash-ak minatu behar izan gabe, bloke-katearen nodoa memoria asko hartzen duen zerbitzu handi bat da, kalkulu asko kontsumitzen ditu, balioztatzen, diskoan idazten du eta sarera datu kopuru handiak bidaltzen ditu. . Bloke batean hainbat mila transakzio txiki dituen bloke-kate baterako transakzioen erregistroak eta bloke-kateak gordetzeko, 50 Gb-ko edo gehiagoko biltegiratzea beharrezkoa da orain, eta blokeetarako SSD bat izan behar da. Kontratu adimendunetarako euskarria duten bloke-kateen estatu datu-baseak dagoeneko 64 Gb RAM gainditu ditzake. Beharrezko ezaugarriak dituzten zerbitzariak nahiko garestiak dira; Ethereum edo EOS nodo batek 100 eta 200 $ / hilean balio dezake. Gehitu horri garatzaileen eta devopen lanaren 10 orduko soldata igotzea, abiarazteko garaian arazoak konpontzen baitituzte gauez ere, baliozkotzaile batzuk erraz kokatu daitezkeelako beste hemisferio batean. Hala ere, une egokietan, baliozko nodo baten jabe izateak diru-sarrera larriak ekar ditzake (EOSen kasuan, eguneko 000 $ gehienez).

Balioztatzea ekintzaileentzako eta enpresentzako IT eginkizun potentzial berrietako bat besterik ez da; programatzaileek gero eta algoritmo sofistikatuagoak sortzen dituzten heinean, zintzotasuna saritzen duten eta iruzurrak eta lapurreta zigortzen dituztenak, datu garrantzitsuak (orakuluak) argitaratzeko funtzioak betetzen dituzten zerbitzuak agertzen dira, gainbegiratzea. (gordailua moztu eta iruzurrari zigorra iruzur froga argitaratuz), gatazkak konpontzeko zerbitzuak, aseguruak eta aukerak, nahiz eta zabor bilketa merkatu handia izan daiteke kontratu adimendunen sistemetan, non datuak biltegiratzea ordaintzea beharrezkoa den.

Blockchain bat abiarazteko arazoak

Blockchain-aren irekitasuna, edozein herrialdetako ordenagailuek sarean libreki parte hartzea ahalbidetzen zuena eta edozein script kiddie sarera GitHub-eko argibideen arabera konektatzeko erraztasuna, ez da beti abantaila bat. Token berri bat bilatzea askotan baliozkotzaileak "hasieran txanpon berri bat meatzera" behartzen ditu, tasa igoko dela eta irabaziak azkar kentzeko aukera izateko. Gainera, horrek esan nahi du zure baliozkotzailea edonor izan daitekeela, baita pertsona anonimo bat ere, beste baliozkotzaile batzuekin egiten den moduan bozkatu dezakezula (hala ere, pertsona anonimo batek interesdunen botoak bere kabuz biltzea zaila izango da, beraz, guk" Kriptomoneta anonimoei buruzko istorio beldurgarriak politikariei utziko dizkie). Hala ere

Proiektu-taldeak zeregin bat du: nolabait bere sarean sartzea etorkizunean nodoen funtzionamendu egonkorra ziurtatzeko gai diren horiek, segurtasuna ulertzeko, arazoak azkar konpontzen dakitenak, beste baliozkotzaile batzuekin lankidetzan aritzea eta elkarrekin jardutea - horren kalitatea. Oso gauza oso ezaugarri horien araberakoa da sareko parte-hartzaileek beren denbora eta baliabideak inbertituko dituzten seinale. Sortzaile egokiek, arriskuak ebaluatzean, ondo ulertzen dute tamaina horretako softwarea abiarazteko orduan, zalantzarik gabe, akatsak topatu beharko dituzula nodoen kodean eta konfigurazioan, eta sarearen egonkortasuna garatzaileek eta baliozkotzaileek elkarrekin konpontzen dutenaren araberakoa dela. horrelako arazoak.

Taldea prest dago sare nagusian bozkatzeko edozein baliotzaileren alde, zeintzuk, zeintzuk diren onak jakiteko? Zorrorik handiena? Orain ia inork ez dauka. Taldearen Linkedin profiletan oinarrituta? Esperientziadun devops edo segurtasun espezialistek ez dizute Linkedin profilik emango. Txatean, argitalpenetan eta prestaketa fasean besteei lagunduz egindako adierazpenen arabera? Ona, baina subjektiboa eta zehaztugabea.

Horrelako baldintzetan, gauza bat geratzen da - guztion arazoak ondo konpontzen dituen zerbait - baliozkotzaile onenak hautatzea posible izango den jokoa, baina gauza nagusia bloke-katearen indarra probatzea eta eskala osoko borroka-proba egitea da. blockchain erabilera aktiboaren baldintzetan, adostasunaren aldaketak, akatsen itxura eta zuzenketa. Prozedura hau Cosmos proiektuko mutilek joko gisa aurkeztu zuten lehen aldiz, eta ideia hau, zalantzarik gabe, sare nagusi fidagarri eta akatsekiko tolerantzia abiarazteko sarea prestatzeko modu bikaina da.

Balidatzaileen jokoa

Balidatzaileen jokoa deskribatuko dut EOS fork-ean oinarritutako DAO.Casino (DAOBet) blockchain-erako diseinatu genuen bezala, Haya deitzen dena eta antzeko gobernantza-mekanismoa duena - baliozkotzaileak edozein kontutatik bozkatuz aukeratzen dira, zein zatitan baliozkotzaileari botoa emateko erabilitako saldoa izoztuta dago. Bere saldoan BET token nagusia duen edozein kontuk hautatutako baliozkotzaileari botoa eman diezaioke bere saldoaren edozein zatirekin. Botoak batu eta baliozkotzaile nagusiak emaitzen arabera eraikitzen dira. Blockchain ezberdinetan prozesu hau ezberdin antolatzen da, eta normalean zati honetan blockchain berria gurasoarekiko ezberdina da, eta esan behar dut gure kasuan, EOS-ek guztiz justifikatzen duela "OS" bere izenean, benetan EOS erabiltzen dugula. DAOBet zereginetarako bloke-katearen bertsio aldatua hedatzeko oinarrizko sistema eragile gisa.

Arazo indibidualak eta jokoaren barruan nola konpondu daitezkeen deskribatuko dut. Imajina dezagun zure zerbitzaria modu irekian eraso daitekeen sare bat, non baliozkotzailearen posizioa mantentzeko sarearekin etengabe interakzionatu behar duzun, zure baliozkotzailea sustatuz eta blokeak ekoizten dituela eta beste baliozkotzaile batzuei garaiz entregatzen zaizkiela ziurtatuz. bestela, baliozkotzailea zerrendatik botako da.

Nola aukeratu irabazle nagusiak?

Jokoaren baldintza tekniko nagusia bere emaitzak publikoki egiaztagarriak izatea da. Horrek esan nahi du jokoaren emaitzak: TOP irabazleak, edozein parte-hartzailek egiaztatu ditzakeen datuen arabera zorrozki eratu behar direla. Sistema zentralizatu batean, baliozkotzaile bakoitzaren "erabilpen-denbora" neur genezake eta sarean gehien sarean zeudenak edo sareko trafiko maximotik igarotzen zirenak sari genitzake. Prozesadorearen eta memoriaren kargari buruzko datuak bil ditzakezu eta ondo lan egin dutenak sari ditzakezu. Baina halako neurketa-bilketa orok bilketa-zentro bat dagoela esan nahi du, eta nodo guztiak independenteak dira eta nahi duten moduan jokatu eta edozein datu bidal ditzakete.

Hori dela eta, irtenbide naturala da irabazleak bloke-katearen datuen arabera zehaztu behar direla, balioztatzaileak zein bloke ekoitzi duen eta zein transakzio sartu diren ikusteko erabil baitaiteke. Zenbaki honi Validator Points (VP) deitu genion, eta horiek irabaztea da jokoan baliozkotzaileen helburu nagusia. Gure kasuan, baliozkotzaile baten "erabilgarritasunaren" metrika errazena, publikoki erraz egiazta daitekeena eta eraginkorrena VP = baliozkotzaileak denbora-tarte jakin batean sortutako bloke kopurua da.

Aukera sinple hau EOSen gobernantzak sortzen ari diren arazo asko ematen dituelako da, EOS benetan lanean ari diren bloke-kateen hiru belaunaldiren oinordekoa baita sare konplexuen kudeaketan esperientzia handia dutenak, eta sarearen, prozesadorearen, baliozkotze-arazo ia edozein arazoren oinordekoa baita. diskoak arazo bakarra eragiten du - bloke gutxiago sinatzen ditu, lanagatik ordainketa gutxiago jasotzen du, eta horrek berriro sinatutako blokeen kopurura eramaten gaitu - EOSentzat aukera bikaina eta sinplea da.

Beste bloke-kate batzuetarako, Validator Points kalkulatzeko modua desberdina izan daiteke, adibidez, pBFTn oinarritutako adostasunetarako (Tendermint/Cosmos, Parity Substrate-ko Aura adostasuna), non bloke bakoitza baliozkotzaile anitzek sinatu behar duten, zentzuzkoa da baliozkotzaile indibidualak zenbatzea. sinadurak blokeak baino. Zentzuzkoa izan daiteke adostasun-erronda osatugabeak kontuan hartzea, beste baliozkotzaile batzuen baliabideak xahutzen dituztenak, oro har, hori adostasun motaren araberakoa da.

Nola simulatu benetako funtzionamendu-baldintzak

Sortzaileen zeregina baliozkotzaileak errealitatetik hurbil dauden baldintzetan probatzea da, inolako kontrol zentralizaturik izan gabe. Arazo hau faucet-kontratu bat erabiliz konpon daiteke, zeinak token nagusiaren kopuru berdinak banatzen ditu baliozkotzaileei eta beste guztiei. Zure saldoan tokenak jasotzeko, transakzio bat sortu eta sareak blokean sartzen duela ziurtatu behar duzu. Horrela, irabazteko, baliozkotzaileak etengabe bete behar du bere oreka token berriekin eta bere buruari botoa eman behar dio, bere burua gorenera igoz. Jarduera honek etengabeko karga sortzen du sarean, eta parametroak hauta daitezke, eskaeren fluxua nahikoa gogorra izan dadin sare osoko proba bat egiteko. Hori dela eta, aldez aurretik planifikatu txorrota kontratua sarea abiarazteko tresna garrantzitsu gisa eta aldez aurretik bere parametroak hautatzen hasi.

Txorrota batetik tokenak eskatzeak eta botoak balioztatzeak oraindik ez du buru baten funtzionamendua guztiz imitatzen, batez ere oso kargatutako moduetan. Hori dela eta, blockchain taldeak oraindik erreferentzia osagarriak idatzi beharko ditu modu batean edo bestean sarea kargatzeko. Horretan paper berezi bat azpisistema bereizi bat probatzeko aukera ematen duten bereziki sortutako kontratu adimendunek betetzen dute. Biltegiratzea probatzeko, kontratuak ausazko datuak gordetzen ditu bloke-katean, eta sareko baliabideak probatzeko, proba-kontratuak sarrerako datu kopuru handia behar du, eta, ondorioz, transakzioen bolumena handitzen du - denbora arbitrarioan transakzio horien fluxua abiaraziz. taldeak, aldi berean, kodearen egonkortasuna eta baliozkotzaileen indarra probatzen ditu.

Aparteko arazo bat nodoen kodea eguneratzea eta bidegurutze gogorrak egitea da. Beharrezkoa da baliozkotzaile gaiztoen akatsen, ahultasunen edo elkarlanen bat gertatuz gero, baliozkotzaileek baliozkotzaileen jokoan jada landutako ekintza-plan bat izatea. Hemen sardexka gogor bat azkar aplikatzeko VP pilatzeko eskemak aurki ditzakezu, adibidez, oraindik nodo-kodearen bertsio berri bat zabaldu ez duten baliozkotzaile guztiei isuna jarriz, baina hori zaila da ezartzea eta kalkulua zailtzen du. Sardexka gogor baten larrialdi-erabileraren egoera simulatu dezakezu bloke jakin bateko bloke-katea artifizialki "hautsiz". Blokeen ekoizpena gelditzen da, eta azkenean irabazleak lehenengo salto egin eta blokeak sinatzen hasten direnak izango dira, beraz, sinatutako blokeen kopuruan oinarritutako VP egokia da hemen.

Nola jakinarazi parte-hartzaileei sarearen egoerari buruz eta akatsak konpondu

Balidatzaileen arteko mesfidantza izan arren, sarearen egoerari buruzko informazio eguneratua garaiz jasotzea onuragarria da guztiontzat erabakiak azkarrago hartzeko, beraz, proiektuko taldea baliozkotzaileen zerbitzarietatik neurketa asko biltzeko eta bistaratzeko zerbitzu bat planteatzen ari da. horrek sare osorako egoera aldi berean ikusteko aukera ematen dizu, gertatzen ari dena azkar zehazteko aukera emanez. Era berean, onuragarria da bai balioztatzaileentzat bai proiektuarentzat proiektu-taldeak aurkitutako akatsak azkar zuzentzea, beraz, metrikak biltzeaz gain, zentzuzkoa da berehala hastea erregistroak eta errore-datuak biltzeko baliozkotzaileen makinen makina batean blockchain eskuragarri dagoen makina batean. garatzaileak. Hemen, ez da onuragarria inorrentzat informazioa desitxuratzea, beraz, zerbitzu hauek proiektuko taldeak garatzen ditu eta fidagarriak izan daitezke. Zentzuzkoa da baliozkotzaileen sistemaren neurketak biltzea, eta, noski, bloke-katearen beraren neurketa garrantzitsuenak -DAOBet-entzat - amaierako denbora eta azken blokearen atzerapena dira. Horri esker, taldeak nodoetan memoria-kontsumoa handitu dela ikusten du benchmark-a exekutatzen denean, baliozkotzaile indibidualekin arazoak.

Balidatzaile joko bat egiteko puntu garrantzitsuak

Ikusten denez, baliozkotzaileei elkarren makinei eraso diezaietela baimendu nahi badiezu (ofizialki, hala ere egin dezakete), hau bereizita formulatu behar duzu segurtasun proba gisa, herrialde batzuen legeen arabera DDoS edo sareko erasoak izan daitezkeelako. zigortua. Beste gai garrantzitsu bat baliozkotzaileak nola saritu da. Sari naturalak proiektuen tokenak dira, sare nagusira transferituko direnak, baina token banaketa masiboa nodo bat abiarazteko gai izan zen edonori ere ez da aukerarik onena. Seguruenik, muturreko bi aukeren artean orekatu beharko duzu:

Banatu sari multzo osoa lortutako VP-aren arabera
oso demokratikoa da eta balioztatzaile jokoan denbora eta baliabideak inbertitu dituen guztiei dirua irabazteko aukera ematen die
baina ausazko jendea erakartzen du jokora, azpiegitura prestaturik gabe

Banatu top-N sari multzoa baliozkotzaileei jokoaren emaitzetan oinarrituta
Irabazleak, ziurrenik, jokoan zehar koherentzia handien iraun duten balioztatzaileak izango dira eta irabazteko oso erabakita daudenak.
Baliozkotzaile batzuek ez dute parte hartu nahi, irabazteko aukerak baxukoak direlako, batez ere parte-hartzaileek baliozkotzaile agurgarriak sartzen badituzte.

Zein aukera aukeratu zure esku dago

Beste puntu bat ere badago: ez da batere egia zure deian dozenaka baliozkotzailek jokoan parte hartzera presatuko direnik, eta saiatzea erabakitzen dutenen artean, denek ez dute nodoa instalatu eta abiaraziko, normalean, fase honetan, proiektuek dokumentazio eskasa dute, akatsak aurkitzen dira eta denboraren presiopean lan egiten duten garatzaileek ez dituzte galderak oso azkar erantzuten. Hori dela eta, jokoa abiarazi baino lehen, beharrezko baliozkotzaileen kopurura iristen ez bada ekintzak ere aurreikusi behar dira. Kasu honetan, jokoa hastean, falta diren baliozkotzaileak proiektuko taldeak martxan jartzen ditu, adostasunean parte hartzen dute, baina ezin dira irabazle izan.

Ondorioa

Amaitzeko, aurrekotik abiatuta baliozkotzaile-joko bat modu eraginkorrean burutzeko pentsatu, egin eta abiarazi behar den zerrenda osatzen saiatu naiz.

Benetako baliozko joko bat exekutatzeko egin behar duzuna:
garatu zure bloke-katea :)

  • web interfaze bat egin eta planteatu eta baliozkotzaileei botoa emateko CLI bat eskaintzea
  • ziurtatu exekutatzen ari den baliozkotze-nodo batetik neurketak zerbitzu zentralizatu batera bidal daitezkeela (adibidez, Prometheus)
  • planteatu metrika bilketa zerbitzari bat (Prometheus + Grafana) baliozkotzaile jokorako
  • asmatu Validator Points (VP) nola kalkulatuko diren
  • blockchain-eko datuetan oinarrituta baliozkotzaile VP kalkulatzen duen script publiko bat garatu
  • garatu web interfaze bat baliozkotzaile nagusiak eta baliozkotzaileen jokoaren egoera bistaratzeko (zenbat denbora falta den amaierarako, nork duen zenbat VP, etab.)
  • garatu eta automatizatu zure nodoen kopuru arbitrarioa abiarazteko, baliozkotzaileak jokora konektatzeko prozesua diseinatu (nodoak noiz eta nola deskonektatu, botoak bidali eta kendu).
  • kalkulatu zenbat token igorri behar diren eta txorrota-kontratu bat garatu
  • egin erreferentziazko script bat (token transferentziak, biltegiratze masiboaren erabilera, sarearen erabilera masiboa)
  • bildu parte-hartzaile guztiak txat bakarrean komunikazio azkarra izateko
  • abiarazi bloke-katea jokoa hasi baino apur bat lehenago
  • itxaron hasierako blokeari, hasi jokoa
  • probatu sarea hainbat transakzio motarekin
  • atera sardexka gogor bat
  • baliozkotzaileen zerrenda aldatu
  • errepikatu 13,14,15, XNUMX, XNUMX urratsak ordena ezberdinetan, sarearen egonkortasuna mantenduz
  • itxaron azken blokea, amaitu jokoa, zenbatu VP

Esan beharra dago baliozkotzaileen jokoa istorio berria dela, eta pare bat aldiz baino ez dela egin, beraz, ez zenuke testu hau prest egindako gida gisa hartu behar. Ez dago analogorik IT negozio modernoan - imajinatu bankuek, ordainketa-sistema bat abiarazi aurretik, elkarren artean lehiatzen dutela bezeroen transakzioak egiteko onena nor izango den ikusteko. Ikuspegi tradizionalek nekez lagunduko dizute sare deszentralizatu handiak sortzen, beraz, negozio-eredu berriak menperatu, exekutatu zure jokoak, identifikatu merezi dutenak, sari itzazu eta mantendu zure banatutako sistemak azkar eta egonkortasunez funtzionatzen.

Iturria: www.habr.com

Gehitu iruzkin berria