Chì ghjè un ghjocu di validatore o "cumu lancià una blockchain di prova di stake"

Allora, a vostra squadra hà finitu a versione alfa di u vostru blockchain, è hè ora di lancià testnet è poi mainnet. Avete un veru bluccatu, cù participanti indipendenti, un bonu mudellu ecunomicu, sicurità, avete cuncepitu a guvernanza è avà hè u tempu di pruvà tuttu questu in azzione. In un mondu criptu-anarchicu ideale, mette u blocu di genesi nantu à a reta, u codice finali di u node è i validatori stessi lancianu tuttu, suscitanu tutti i servizii ausiliarii, è tuttu succede da ellu stessu. Ma questu hè in un mondu fittiziu, ma in u mondu reale, a squadra deve preparà assai software ausiliari è diverse manipulazioni per aiutà i validatori à lancià una rete stabile. Questu hè questu questu articulu.

Lanciare e rete basate nantu à cunsensi di tippu "prova di stake", induve i validatori sò determinati da i voti di i detentori di token di u sistema, hè un avvenimentu piuttostu specificu, perchè ancu lancià sistemi tradiziunali, gestiti cintrali cù decine è centinaie di servitori ùn hè micca faciule. compitu in sè stessu, è u blockchain deve esse cuminciatu cù i participanti fideli ma indipendenti. È, se in una corporazione, à l'iniziu, l'amministratori anu accessu sanu à tutte e macchine, logs, monitoring generale, allora i validatori ùn permettenu micca à nimu di accede à i so servitori è, assai prubabilmente, preferiranu custruisce a so infrastruttura indipindente, perchè cuntrolla l'accessu. à l'assi principali di u validatore - l'elettori di stakes. Hè stu cumpurtamentu chì permette di custruisce rete sicuri distribuite - l'indipendenza di i fornituri di nuvola utilizati, servitori virtuali è "baremetal", diversi sistemi operativi, tuttu questu permette di fà attacchi à una tale rete estremamente inefficace - troppu sfarente. u software hè utilizatu. Per esempiu, Ethereu usa dui implementazioni di nodi principali, in Go è in Rust, è un attaccu chì hè efficace per una implementazione ùn viaghja micca per l'altru.

Per quessa, tutti i prucessi per lanciari è operanu blockchains deve esse urganizati in tale manera chì ogni validatore, o ancu un picculu gruppu di validatori, puderia in ogni mumentu scaccià i so computer da a finestra è lascià, mentre chì nunda ùn deve rompe è i validatori restanti duveranu. cuntinuà à sustene in modu efficace a reta di l'operazione è cunnette novi validatori. Quandu u lanciamentu di una reta, quandu un validatore hè in Europa, u sicondu in Sudamerica, è u terzu in Asia, hè abbastanza difficiuli di ottene u travagliu coordinatu di parechje decine di gruppi indipendenti è interessa in u risultatu.

Validatori

Imaginemu u lanciamentu di un ipoteticu blockchain mudernu (a maiò parte di ciò chì hè descrittu hè adattatu per blockchains basatu annantu à qualsiasi famiglia muderna di blockchain: Ethereum, EOS, Polkadot, Cosmos è altri, chì furniscenu cunsensu di prova di stake. I caratteri principali di tali blockchains sò squadre di validatori , impegnati à installà i so servitori indipendenti chì validanu è pruducenu novi blocchi, è ricevenu ricumpensa furnite da a reta per quelli chì participanu à u cunsensu. Per lancià novi rete, sò necessarii parechje decine di validatori (tanti ponu avà. più o menu effittivamenti ghjunghje sin'à cunsensu in sicondi), cusì u prugettu annuncia iscrizzione, in u quali validators sparte infurmazione publica nantu à elli stessi cù utilizatori, cunvince elli ch'elli vanu à furnisce un serviziu d'alta qualità à a reta lanciata.

A validazione hè un affari chì vi permette di valutà in modu estremamente precisu l'ingudu potenziale di u validatore, trasferisce rapidamente u putere trà i prughjetti, è se a reta ch'ellu hà sceltu hè successu, u validatore pò, cum'è un participante cumpletu in u DAO è una persona rispunsevule, sviluppà u prugettu, o simpricimenti furnisce un serviziu tecnicu eccellente per soldi completamente trasparenti, guadagnatu onestamente. Quandu u calculu di a ricumpensa per i validatori, i prughjetti pruvate à piglià in contu i costi di i validatori è facenu a ricumpensa per i blocchi cusì chì sta attività hè prufittuosa, ma à u stessu tempu ùn permette à i validatori di caccià l'ecunumia inundandoli di soldi è privà l'altri utilizatori di a rete.

L'affari di validatori esige una alta toleranza à i difetti di i servizii, chì significa un altu livellu di furmazione per i devops è i sviluppatori è risorse di computing caru. Ancu senza a necessità di minà hashes in rete di prova di travagliu, un node blockchain hè un grande serviziu chì occupa assai memoria, cunsuma assai calculi, validate, scrive à u discu è manda una grande quantità di dati à a reta. . Per almacenà i logs di transazzione è e catene di blocchi per una catena di bloccu cù parechji milla transazzione petite in un bloccu, l'almacenamiento di 50 Gb o più hè avà necessariu, è per i blocchi deve esse un SSD. A basa di dati statali di blockchains cù supportu per i cuntratti intelligenti pò digià più di 64Gb di RAM. I servitori cù e caratteristiche richieste sò abbastanza caru; un node Ethereu o EOS pò custà da 100 à 200 $ / mese. Aghjunghjite à questu l'aumentu di u salariu per u travagliu round-the-clock di sviluppatori è devops, chì durante u periodu di lanciu risolve i prublemi ancu di notte, postu chì certi validatori ponu esse facilmente situati in un altru hemisferu. In ogni casu, à i mumenti ghjusti, pussede un node validatore pò purtà un ingressu seriu (in u casu di EOS, finu à $ 10 per ghjornu).

A validazione hè solu unu di i novi roles potenziali di l'informatica per l'imprenditori è l'imprese; cum'è i programatori venenu cù algoritmi sempre più sofisticati chì premianu l'onestà è puniscenu a fraude è u furtu, i servizii appariscenu chì eseguinu e funzioni di publicà dati impurtanti (oracoli), eseguendu a supervisione. (dipositu slashing è punizione i cheaters publicendu a prova di ingannu), servizii di risoluzione di dispute, assicurazione è opzioni, ancu a cullizzioni di basura hè un mercatu potenzalmentu grande in sistemi di cuntrattu intelligenti induve hè necessariu di pagà per u almacenamentu di dati.

Prublemi di lancià una blockchain

L'apertura di u blockchain, chì hà permessu à l'urdinatori di qualsiasi paese di participà liberamente à a reta è a facilità di cunnetta qualsiasi script kiddie à a reta secondu l'istruzzioni nantu à GitHub, ùn hè micca sempre un vantaghju. A ricerca di un novu token spessu forza i validatori à "mine una nova munita à l'iniziu", in a speranza chì a tarifa aumenterà è l'uppurtunità di scaccià rapidamente i so guadagni. Inoltre, questu significa chì u vostru validatore pò esse qualcunu, ancu una persona anonima, pudete vutà per ellu in u stessu modu cum'è per altri validatori (in ogni modu, serà difficiule per una persona anonima di cullà i voti di stakeholder per ellu stessu, cusì avemu ' Lasceremu i racconti spaventosi di criptovalute anonime à i pulitici). Tuttavia

A squadra di u prugettu hà un compitu - per entre in qualchì modu in a so reta quelli chì in u futuru sò capaci di assicurà u funziunamentu stabile di i nodi, capiscenu a sicurità, sapè cumu risolve rapidamente i prublemi, cooperà cù altri validatori è agisce inseme - a qualità di questu. assai cosa dipende cumplettamente di sti qualità un simbulu in quale i participanti di a reta anu da investisce u so tempu è e risorse. Fundatori adatti, quandu valutà i risichi, capiscenu bè chì quandu lanciate un software di questa dimensione, avete bisognu di scuntrà errori in u codice è a cunfigurazione di i nodi, è chì a stabilità di a reta dipende da quantu i sviluppatori è i validatori risolveranu inseme. tali prublemi.

A squadra hè pronta à vutà nantu à u mainnet per qualsiasi validatori, solu per sapè quale, quali sò boni? A più grande cartera? Quasi nimu hà avà. Basatu nantu à i profili Linkedin di a squadra? Devops sperimentati o specialisti di sicurezza ùn vi daranu micca profili Linkedin. Sicondu dichjarazioni in chat, posti è aiutanu à l'altri durante a fase di preparazione? Bona, ma subjectiva è imprecisa.

In tali cundizioni, una cosa ferma - qualcosa chì risolve bè i prublemi di tutti - un ghjocu in u quale serà pussibule selezziunà i migliori validatori, ma a cosa principal hè di pruvà a catena di bloccu per a forza è di fà una prova di cummattimentu à grande scala di u blockchain in cundizioni di usu attivu, cambiamenti in cunsensu, apparenza è correzione di l'errori. Questa prucedura hè stata prima presentata cum'è un ghjocu da i picciotti di u prughjettu Cosmos, è questa idea hè senza dubbitu un modu eccellente per preparà a reta per u lanciamentu di un mainnet affidabile è tolerante à i difetti.

U ghjocu di validatori

Descriveraghju u ghjocu di validatori cum'è l'avemu cuncepitu per u blockchain DAO.Casino (DAOBet) basatu annantu à u forchetta EOS, chì hè chjamatu Haya è hà un mecanismu di guvernanza simili - i validatori sò scelti da votu da ogni contu, in quale parte di u bilanciu utilizatu per votà per u validatore hè congelatu. Ogni contu chì hà u token BET principale nantu à u so equilibriu pò vutà per u validatore sceltu cù qualsiasi parte di u so equilibriu. I voti sò riassunti è i validatori superiori sò custruiti nantu à i risultati. In diverse blockchain, stu prucessu hè urganizatu in modu diversu, è di solitu hè in questa parte chì u novu blockchain difiere da u parent one, è devi dì chì in u nostru casu, EOS ghjustificà cumplettamente u "OS" in u so nome, avemu veramente aduprà EOS. cum'è u sistema operatore di basa per l'implementazione di una versione mudificata di u blockchain per i travaglii DAOBet.

Descriveraghju i prublemi individuali è cumu si ponu esse risolti in u ghjocu. Imaginemu una rete in quale u vostru servitore pò esse attaccatu apertamente, induve per mantene a pusizione di un validatore avete bisognu di interagisce continuamente cù a rete, prumove u vostru validatore è assicuratevi chì pruduce blocchi è sò consegnati à altri validatori tempu, altrimente u validatore serà cacciatu fora di a lista.

Cumu sceglie i primi vincitori?

U requisitu tecnicu principale per u ghjocu hè chì i so risultati sò verificabili publicamente. Questu significa chì i risultati di u ghjocu: TOP winners, deve esse furmatu strettamente nantu à a basa di dati chì ponu esse verificati da ogni participante. In un sistema centralizatu, pudemu misurà u "uptime" di ogni validatore è ricumpinsà quelli chì eranu in linea più o passanu per u trafficu massimu di a rete. Pudete cullà dati nantu à u processatore è a carica di memoria è ricumpinsà quelli chì anu travagliatu bè. Ma ogni tali cullizzioni di metrica significa l'esistenza di un centru di cullizzioni, è i nodi sò tutti indipindenti è ponu cumportà cum'è volenu è mandà qualsiasi dati.

Per quessa, a suluzione naturali hè chì i vincitori devenu esse determinati nantu à e dati da u blockchain, postu chì pò esse usatu per vede quale validatore hà pruduttu quale bloccu è quali transazzioni sò stati inclusi in questu. Avemu chjamatu stu numeru Validator Points (VP), è guadagnà elli hè u scopu principale di validatori in u ghjocu. In u nostru casu, a metrica più simplice, facilmente verificabile publicamente è efficace di a "utilità" di un validatore hè VP = numeru di blocchi pruduciuti da u validatore in un periudu di tempu.

Sta scelta sèmplice hè duvuta à u fattu chì a guvernanza in EOS dighjà furnisce parechji prublemi emergenti, postu chì EOS hè l'eredi di trè generazioni di blockchains chì travaglianu in realtà cù una larga sperienza in a gestione di a rete cumplessa, è quasi tutti i prublemi di validatore cù a reta, u processatore. discu porta à un solu prublema - firma menu blocchi, riceve menu pagamentu per u travagliu, chì dinò ci porta solu à u numeru di blocchi firmati - per EOS hè una opzione eccellente è simplice.

Per altri blockchains, a manera chì i Punti di Validatore sò calculati pò differisce, per esempiu, per i cunsensi basati in pBFT (Tendermint / Cosmos, Aura consensus from Parity Substrate), induve ogni bloccu deve esse firmatu da parechje validatori, hè sensu di cuntà validatori individuali. Firma piuttostu chè blocchi.Puderia esse sensu di piglià in contu i turni di cunsensu incomplete, chì perdi e risorse di altri validatori, in generale questu dipende assai di u tipu di cunsensu.

Cumu simulà e cundizioni operative reali

U compitu di i fundatori hè di pruvà validatori in cundizioni vicinu à a realità, senza avè un cuntrollu centralizatu. Stu prublema pò esse risolta cù un cuntrattu di faucet, chì distribuisce quantità uguali di u token principale à i validatori è à tutti l'altri. Per riceve tokens nantu à u vostru equilibriu, avete bisognu di creà una transazzione è assicuratevi chì a reta include in u bloccu. Cusì, per vince, un validatore deve constantemente rimpiazzà u so equilibriu cù novi tokens è vutà per ellu stessu, prumove in u cima. Questa attività crea una carica constante nantu à a reta, è i paràmetri ponu esse selezziunati in modu chì u flussu di richieste hè abbastanza severu per una prova di rete completa. Per quessa, pianificà u cuntrattu di u faucet in anticipu cum'è un strumentu impurtante per lancià a reta è cumincià à selezziunate i so paràmetri in anticipu.

A dumanda di tokens da un faucet è a validazione di i voti ùn emula micca cumplettamente l'operazione di una testata, soprattuttu in modi estremamente caricati. Per quessa, a squadra di blockchain avarà sempre à scrive benchmarks supplementari in un modu o un altru per carricà a reta. Un rolu speciale in questu hè ghjucatu da cuntratti intelligenti creati apposta chì permettenu di pruvà un sottosistema separatu. Per pruvà l'almacenamiento, u cuntrattu guarda dati aleatorii in a catena di bloccu, è per pruvà i risorsi di a rete, u cuntrattu di prova richiede una grande quantità di dati di input, inflating thereby u voluminu di transazzione - lanciando un flussu di tali transazzione in punti arbitrarii in u tempu, a squadra teste simultaneamente a stabilità di u codice è a forza di i validatori.

Un prublema separatu hè l'aghjurnà u codice di i nodi è cunducendu forche duru. Hè necessariu chì in casu d'un bug, vulnerabilità, o collusione di validatori maliziusi, i validatori anu da avè un pianu d'azzione chì hè digià statu travagliatu in u ghjocu di validatori. Quì pudete vene cun schemi per l'accumulazione di VP per applicà rapidamente una furchetta dura, per esempiu, finendu tutti i validatori chì ùn anu micca ancu lanciatu una nova versione di u codice di node, ma questu hè difficiule di implementà è complica u calculu. Pudete simule a situazione di l'usu d'urgenza di una furchetta dura da "rumpendu" artificialmente a blockchain in un bloccu datu. A produzzione di blocchi si ferma, è à a fine i vincitori seranu quelli chì saltanu in prima è cumincianu à firmà blocchi, cusì VP basatu annantu à u numeru di blocchi firmati hè un bonu fitu quì.

Cumu informà i participanti nantu à u statutu di a rete è corregge l'errori

Malgradu a sfiducia trà i validatori, a ricezione puntuale di l'infurmazioni aghjurnati nantu à u statu di a rete hè benefica per tutti per piglià decisioni più veloce, cusì a squadra di u prughjettu hà risuscitatu un serviziu per a cullizzioni è a visualizazione di parechje metriche da i servitori di validatori. chì permette di vede a situazione simultaneamente per tutta a reta, chì vi permette di determinà rapidamente ciò chì succede. Inoltre, hè benefiziu per i validatori è u prughjettu chì a squadra di u prughjettu corregge rapidamente l'errori truvati, cusì in più di cullà metriche, hè sensu per cumincià immediatamente à cullà logs è dati d'errore da e macchine di validatori in una macchina accessibile à blockchain. sviluppatori. Quì, ùn hè micca benefiziu per nimu di distorsionà l'infurmazioni, cusì sti servizii sò sviluppati da a squadra di u prughjettu è ponu esse fiducia. Hè sensu di cullà e metriche di u sistema da i validatori, è, sicuru, i metrichi più impurtanti di u blockchain stessu - per DAOBet - sò u tempu di finalizazione è u lag di l'ultimu blocu finalizatu. Grazie à questu, a squadra vede un aumentu di u cunsumu di memoria nantu à i nodi quandu eseguisce u benchmark, prublemi cù validatori individuali.

Punti impurtanti per fà un ghjocu validatore

Comu risulta, sè vo vulete ufficialmente permette à i validatori di attaccà e macchine di l'altri (in modu extraufficiali ponu fà questu in ogni modu), avete bisognu di furmulà questu legalmente cum'è teste di sicurezza, postu chì sottu a lege di certi paesi DDoS o attacchi di rete ponu esse. punitu. Un altru prublema impurtante hè cumu premià i validatori. I premii naturali sò tokens di prughjettu, chì saranu trasferiti à a rete principale, ma una distribuzione massiva di tokens à quellu chì hà sappiutu lancià un node ùn hè ancu micca a megliu opzione. Hè assai prubabile chì duverete equilibrà trà duie opzioni estreme:

Distribuite u premiu tutale secondu u VP guadagnatu
hè assai demucraticu è permette à tutti quelli chì anu investitu tempu è risorse in u ghjocu validatore per guadagnà soldi
ma attrae persone aleatorii à u ghjocu senza infrastruttura preparata

Distribuite u premiu top-N à i validatori basati nantu à i risultati di u ghjocu
I vincitori seranu assai prubabilmente i validatori chì durò u più consistente durante u ghjocu è sò assai rigurosamente determinati à vince.
certi validatori ùn volenu micca participà, bassu valutà e so chances di vincere, soprattuttu se i participanti includenu validatori venerabili

Quale opzione di sceglie hè à voi

Ci hè un puntu più - ùn hè micca un fattu chì decine di validatori si precipiteranu à participà à u ghjocu à a vostra chjama, è di quelli chì decidenu di pruvà, micca tutti ùn anu ancu installatu è lanciate u node - di solitu, in questa tappa, i prughjetti anu una documentazione piuttostu sparsa, l'errori sò scontru, è i sviluppatori chì travaglianu sottu a pressione di u tempu ùn rispondenu micca à e dumande assai rapidamente. Dunque, prima di lancià u ghjocu, hè ancu necessariu di furnisce l'azzioni se u numeru necessariu di validatori ùn hè micca righjuntu. In questu casu, à l'iniziu di u ghjocu, i validatori mancanti sò lanciati da a squadra di u prugettu, participanu à u cunsensu, ma ùn pò micca esse vincitori.

cunchiusioni

In cunclusione, aghju pruvatu à cumpilà da quì sopra una lista di ciò chì deve esse pensatu, fattu è lanciatu per realizà un ghjocu validatore.

Ciò chì duvete fà per eseguisce un veru ghjocu di validatore:
sviluppate u vostru propiu blockchain :)

  • fà è cresce una interfaccia web è furnisce una CLI per u votu per i validatori
  • assicuratevi chì e metriche da un node validatore in esecuzione ponu esse mandate à un serviziu centralizatu (per esempiu Prometheus)
  • elevà un servitore di cullizzioni di metrica (Prometheus + Grafana) per u ghjocu di validatore
  • Scuprite cumu i Punti di Validatore (VP) seranu calculati
  • sviluppà un script publicu chì calculates validator VP basatu nantu dati da u blockchain
  • sviluppà una interfaccia web per vede i validatori superiori, è u statutu di u ghjocu di i validatori (quantu tempu resta finu à a fine, quale hà quantu VP, etc.)
  • sviluppà è automatizà u lanciamentu di un numeru arbitrariu di i vostri nodi, cuncepisce u prucessu di cunnessione di validatori à u ghjocu (quandu è cumu si scollega i vostri nodi, sottumette è sguassate i voti per elli)
  • calculate quantu tokens deve esse emessu è sviluppà un cuntrattu faucet
  • fà un script di benchmark (trasferimenti di token, usu di almacenamentu massivu, usu di rete massiva)
  • riunite tutti i participanti in una chat per una cumunicazione rapida
  • lanciari u blockchain un pocu prima di u principiu di u ghjocu
  • aspettate u bloccu di partenza, cuminciate u ghjocu
  • pruvà a reta cù parechji tippi di transazzione
  • stende una forchetta dura
  • cambià a lista di validatori
  • ripetite i passi 13,14,15, XNUMX, XNUMX in ordini diffirenti, mantenendu a stabilità di a rete
  • aspittà per u bloccu finali, finisce u ghjocu, conta VP

Ci vole à dì chì u ghjocu di validatori hè una nova storia, è hè stata realizata solu un paru di volte, perchè ùn deve micca piglià stu testu cum'è una guida pronta. Ùn ci hè micca analoghi in l'affari di l'IT mudernu - imagine chì i banche, prima di lancià un sistema di pagamentu, cumpetenu cù l'altri per vede quale serà u megliu à fà transazzione di i clienti. L'approcciu tradiziunali hè improbabile di aiutà à creà grandi reti decentralizate, cusì maestru di novi mudelli di cummerciale, eseguite i vostri ghjochi, identificà i degni, ricumpinsate è mantene i vostri sistemi distribuiti in esecuzione rapida è stabile.

Source: www.habr.com

Add a comment