Lansarea Shardeum: o realizare inovatoare

Imagini generate de AI
Luni, 27 ianuarie 2024, a avut loc un eveniment revoluționar în lumea web3, care poate fi asemănat cu isprava istorică a unei nave spațiale care a revenit perfect la rampa de lansare după prima sa misiune de test de zbor. În acest scenariu extraordinar, Shardeum nu numai că s-a confruntat cu provocări grele, dar a și ieșit învingător, rezistența rețelei sale marcând prima dată când o rețea shard s-ar putea auto-vindeca în domeniul tehnologiei registrului distribuit.
La fel cum călătoria unei nave spațiale implică planificare atentă, inginerie de precizie și execuție a manevrelor complexe fără obstacole, restaurarea betanetului Sphinx al Shardeum, care a suferit o prăbușire critică, necesită un nivel de stăpânire tehnologică și inovație echivalent. Capacitatea de a menține toate datele din rețea, în special cele care funcționează folosind sharding-ul de stare dinamic, este o nouă descoperire.
Când am început această explorare, nu sărbătorim doar aterizarea importantă a Shardeum, ci o recunoaștem și ca un moment important în evoluția tehnologiei web3—o salt care poate redefini limitele rezilienței rețelelor IT și integritatea datelor.
Prima rețea shard care recuperează și menține date în mod autonom
Menținerea și recuperarea rețelei shard în mod dinamic, așa cum este Shardeum, include un spectru de provocări tehnice complexe care o diferențiază de rețelele blockchain tradiționale precum Bitcoin sau Ethereum. Într-un mediu shard declarat dinamic cu scalare automată, realocarea și echilibrarea nodurilor și resurselor continue în întreaga diversitate de sharduri sunt esențiale pentru optimizarea performanței și scalabilității. Schimbările constante în arhitectura rețelei adaugă o complexitate semnificativă în menținerea consistenței datelor, asigurând stabilitatea rețelei și facilitând recuperarea eficientă a defectelor.
Importanța acestei provocări este subliniată atunci când comparăm răspunsul Shardeum la fluctuațiile nodurilor cu Bitcoin. Rețeaua Bitcoin își menține funcționalitatea chiar și cu un număr mic de noduri, deoarece fiecare nod activ are un statut și un istoric complet al tranzacțiilor. Pe de altă parte, fiecare nod activ din Shardeum nu are un statut și un istoric complet al tranzacțiilor, deoarece rețeaua shard Shardeum, iar fiecare validator deține doar o parte din întregul stat. Consecința acestui sharding este că toate nodurile validator devin foarte ușoare. Prin urmare, aceasta creează o mulțime de oportunități și provocări de inginerie. Dacă un nod moare, cum ne asigurăm că toate datele rămân intacte? Shardeum are două modalități principale.
În primul rând, Shardeum utilizează sharding de stare dinamic, unde întregul spațiu de adresare este împărțit (sau divizat) în funcție de numărul de noduri active. Fiecare nod este responsabil pentru partiția asignată, împreună cu un anumit rază (R) în jurul său și partiții suplimentare (E) adiacente, asigurând astfel o capacitate de adaptare dinamică și redundanță puternică a datelor în cadrul rețelei. Așadar, deși un nod moare, există în continuare continuitatea rețelei și nu se pierde nicio dată.
În plus, Shardeum folosește noduri arhivar pentru a stoca starea completă a întregii rețele. Acest lucru se realizează prin faptul că nodurile active transmit starea parțial stocată către arhivari pentru a fi colectată. Datorită acestor două factori și optimizării designului, recuperarea unei astfel de rețele trebuie să fie concepută într-un mod nou pentru a continua să faciliteze caracteristici benefice precum scalarea automată și scalarea liniară.
Înțelegerea prăbușirii
Acum că am înțeles elementele de bază ale sharding-ului de stare dinamic și că nodurile arhivar sunt implicate, să detaliem câteva componente suplimentare mai profund și să le explicăm. Pentru a înțelege prăbușirea și recuperarea betanetului Shardeum, mai întâi trebuie să înțelegem puțin despre următoarele:
Noduri arhivar
Detecția arhivarului pierdut
Mod de rețea
Mod de recuperare
Înțelegerea elementelor de bază ale fiecăruia dintre acestea este esențială înainte de a ne adânci în bugurile existente, așa că să ne uităm!
Noduri arhivar: Stocare interstelară
În Shardeum, nodurile arhivar, cunoscute și sub denumirea de arhivari, constituie o categorie de noduri extrem de importante, având responsabilitatea de a stoca întreaga stare și înregistrările istorice ale rețelei. Spre deosebire de nodurile active, arhivarii nu participă la procesul de consens; funcția lor principală este de a arhiva datele complete ale rețelei în mod cuprinzător, inclusiv tranzacțiile și chitanțele. Contribuția nodurilor arhivar este esențială pentru a asigura integritatea rețelei și pentru a se asigura că operațiunile sale decurg fără probleme, subliniind astfel statutul Shardeum ca o rețea puternică, completă și de încredere. Deoarece arhivarii sunt o parte integrantă a rețelei sale, Shardeum trebuie să aibă un protocol pentru a detecta arhivarii (și validatori) care nu răspund.
Detecția arhivului pierdut: Tehnologia extraterestră lansată
Shardeum are un protocol numit protocolul de detecție a nodurilor pierdute care detectează atunci când un nod activ devine inoperabil—acesta este destinat doar nodurilor active. Cu toate acestea, Shardeum are și un protocol pentru arhivi care face lucruri similare numit detecția arhivarului pierdut. Detecția arhivarului pierdut este un protocol special conceput pentru a gestiona scenariile rare în care unul sau mai mulți arhivari devin inoperabili și sunt marcați ca pierduți. Deoarece nodurile arhivar sunt foarte importante pentru menținerea integrității și accesibilității datelor istorice în rețea, este esențial ca, în momentul în care acestea nu sunt responsabile sau nu funcționează, acest eveniment critic să fie capturat pentru a reduce efectele în aval. Deși arhivarii pierduți nu provoacă această prăbușire specifică, interacțiunea dintre protocolul de detectare a arhivarului pierdut și anumite moduri de rețea o cauzează. Acum să vedem ce moduri de rețea există în Shardeum.
Modul de rețea în Shardeum: Nu este nevoie de NASA
Inovația de vârf a Shardeum, susținută de protocolul Shardus care o stă la baza, este cadrul modului de rețea. Aceste moduri depășesc condițiile operaționale de bază, manifestând o coordonare complexă a diferitelor activități ale nodurilor, metode de sincronizare a datelor și sisteme de gestionare a tranzacțiilor. O astfel de configurare a rețelei joacă un rol crucial în menținerea integrității operaționale a rețelei, mai ales în scenarii marcate de pierderea nodurilor și datelor—deoarece Shardeum este o rețea shard.
La un nivel mai simplu, cel mai bun mod de a înțelege modurile de rețea din Shardeum este ca un plan de contingență bine codificat care permite continuitatea operațiunilor pentru întreaga rețea—chiar și în condiții imposibile cum ar fi o rețea în cădere sau degradare în întreaga rețea. Această reziliență și durabilitate operațională programate anterior se asigură că Shardeum va fi întotdeauna activ—indiferent de dificultățile întâmpinate de rețea.
Deși înțelegerea erorilor nu necesită o înțelegere a fiecărui aspect al cadrului modului de rețea, ar fi foarte util să știți elementele de bază. Esența cadrului modului de rețea este integrarea mai multor faze diferite ale rețelei: Formare, Procesare, Securitate, Recuperare, Repornire, Recuperare și Oprire. Aceste moduri sunt create cu atenție pentru a aborda diverse situații de rețea și urgențe. Cu toate acestea, modul care ne preocupă în acest articol este modul de recuperare.

Imagine generată de AI
Modul de recuperare al ingineriei inverse: Rosewell revizuit
Modul de recuperare este 1 din 7 moduri de rețea menționate mai sus. Modul de recuperare se activează atunci când numărul de noduri active din rețea scade sub un prag critic stabilit (în prezent configurat la 75% sau mai puțin). Acest prag poate fi ajustat în funcție de nevoile rețelei. În acest mod, rețeaua suspendă temporar procesarea tranzacțiilor aplicațiilor și sincronizarea datelor aplicațiilor. Această strategie este concepută pentru a facilita extinderea rețelei prin realizarea de cicluri fluente în nodurile de rezervă ca parte a rotației nodurilor, restabilind astfel numărul de noduri active la un nivel optim, ideal peste 100%.
În timpul modului de recuperare, arhitectura rețelei Shardeum permite creșterea treptată a nodurilor, limitată la o creștere de 20% pe ciclu (fiecare ciclu durează aproximativ 60 de secunde). Această rată controlată de creștere este esențială pentru menținerea stabilității rețelei și asigurarea integrării fluente a noilor noduri. Creșterea rapidă a numărului de noduri, cum ar fi un vârf de 50%, poate perturba stabilitatea rețelei și poate îngreuna procesul de integrare.
Fiecare nod nou adăugat necesită resurse de rețea pentru sincronizare și integrare. Limitând creșterea la 20% pe ciclu, rețeaua se asigură că infrastructura sa poate susține adăugarea de noduri noi în mod adecvat fără tensiuni. Această abordare nu doar că menține stabilitatea rețelei, ci și minimizează riscurile de inconsistență sau erori de date în timpul procesului de sincronizare, menținând astfel integritatea datelor în lanțul de cicluri.
Cauza principală a prăbușirii: Orizontul evenimentelor
Este important de menționat că există două erori diferite. Bugul bibliotecii Neon—care a provocat prăbușiri ale validatorilor în mod aleator și bugul protocolului de detectare a arhivarului pierdut—care nu voia să accepte o listă de validatori goală. Deși bugul protocolului de detectare a arhivarului pierdut a provocat prăbușirea versiunii de betanet actuale, aș dori să discut mai întâi despre bugul bibliotecii Neon.
În versiunea Sphinx 1.9.1, am integrat actualizări ale bibliotecii care utilizează legături Neon pentru a conecta funcțiile Rust și TypeScript deoarece Shardeum este în mare parte construit în TypeScript. Neon este cunoscut pentru abordarea sa inovatoare, deși experimentală, care adesea împinge limitele practicii convenționale de dezvoltare software. Această integrare are scopul de a îmbunătăți interoperabilitatea între aceste două limbaje, permițând o comunicare mai eficientă și directă în arhitectura noastră software. Cu toate acestea, aceasta a dus la erori care au provocat ieșiri ale nodurilor din rețea în mod aleator.
În al doilea rând, în incidentul recent care a dus la prăbușirea betanetului în Shardeum, cauza principală a fost identificată ca o anomalie critică provenită din interacțiunea dintre două subsisteme diferite menționate mai sus: mecanismul de detectare a arhivarului pierdut și protocolul modului de recuperare a rețelei.
Această scurtă prăbușire a fost provocată de activarea simultană a acestor două mecanisme, un scenariu care nu a fost întâlnit sau testat anterior. Procesul de arhivare pierdut a fost activat simultan cu modul de recuperare a rețelei și din cauza bugului din modul de arhivare pierdut care nu a acceptat o listă goală de noduri active. Acest lucru a dus la prăbușirea rețelei.
Cronică de recuperare: De la șocuri sistemice la renașterea stelelor
Deci, ce s-a întâmplat cu adevărat și când? Cronologia evenimentelor legate de prăbușirea rețelei și soluționarea acesteia este următoarea:
Vulnerabilități și îmbunătățiri inițiale: Rețeaua a experimentat vulnerabilități marcate de procesul de linting 1.9.1 în biblioteca npm (neon). Îmbunătățiri au fost implementate pentru a aborda această problemă. Cu toate acestea, aceste îmbunătățiri au generat din întâmplare excepții care nu au fost reproduse în timpul testării locale.
Excepții sporadice ale bibliotecii care provoacă oprirea validatorului: Biblioteca neon a experimentat excepții sporadice care au dus la oprirea periodică a validatorilor rețelei. Deși designul rețelei permite reziliența prin reîncărcarea acestor validatori, din păcate, timpul de defectare simultană între mai mulți validatori activează modul de recuperare al rețelei.
Activarea modului de recuperare a rețelei: După ce s-a aflat în modul de recuperare a rețelei, protocolul trebuie să curățe și să recreeze lista nodurilor active. Bugul concomitent din sistemul de arhivare pierdut, care nu acomoda o listă goală de validatori, este cauza principală a prăbușirii rețelei.
Rezolvare și recuperare a rețelei: Prăbușirea a fost reparată, iar rețeaua a fost recuperată cu succes folosind datele stocate în arhivă. Aceasta este prima dată în istorie când o rețea shard de nivel 1 care a suferit o prăbușire a reușit să se recupereze, menținând toate datele din rețea intacte. Acest lucru nu s-a mai realizat în nicio rețea, cu atât mai puțin într-o rețea cu sharding de stare dinamic. Această realizare marchează succesul „aterizării rachetei” în ceea ce privește recuperarea rețelei.
Reparații finalizate: Reparațiile inițiale au fost implementate pentru a aborda problema bibliotecii, dar în eforturi continue de a îmbunătăți stabilitatea rețelei, versiunea 1.9.5 a fost lansată. Această actualizare introduce o reparație unică, dar importantă, care abordează un alt exemplu de prăbușire a legăturii neon, arătând exact și corectând anumite vulnerabilități fără a impune o actualizare în întreaga rețea. Inițial, utilizatorii care operau pe versiunea 1.9.4 aveau flexibilitatea de a rămâne pe versiunea curentă sau de a alege să se actualizeze la 1.9.5, în funcție de evaluarea lor asupra performanței rețelei și preferințelor de stabilitate. Cu toate acestea, s-a decis în cele din urmă că, în scopul de a îmbunătăți stabilitatea rețelei și de a aborda problemele persistente legate de legătura neon, versiunea minimă necesară pentru validatori trebuie să fie actualizată la 1.9.5. Această actualizare are scopul de a exclude sistematic validatorii care operează pe versiunea 1.9.4, care au fost identificați ca fiind vulnerabili la prăbușiri din cauza complicațiilor legăturii neon menționate mai sus. Acest lucru este necesar pentru a asigura că bugul neon a fost complet eliminat și corectat.
Acum că am aflat despre cronologia și cum au avut loc evenimentele majore, să ne uităm la ce s-a întâmplat pentru ca rețeaua să fie recuperată rapid.
Spre recuperare
Recuperare agilă
Recuperarea rețelei constă din multe părți, dar una dintre cele principale este modul de recuperare Shardeum. Așa cum s-a menționat anterior, modul de recuperare se activează când numărul de noduri active din rețea scade sub un prag critic stabilit și permite creșterea rapidă, controlată și eficientă a rețelei într-un mod sigur pentru a recupera rețeaua. Este important să subliniem că fără ingeniozitatea tehnologică a designerilor și dezvoltatorilor modurilor de rețea—Shardeum nu ar putea să se recupereze ușor din prăbușire și nici să-și demonstreze măiestria sa inovatoare.
În plus, eforturi importante sunt depuse de echipa tehnologică Shardeum atunci când lansează acțiuni imediate. Primul pas implică o analiză cuprinzătoare pentru a identifica cauza principală a prăbușirii, care este urmărită până la anomalii în interacțiunea dintre detecția arhivării pierdute din rețea și sistemul său de moduri de recuperare. Înțelegând complexitatea acestei probleme, echipa a aplicat rapid o abordare multi-segment pentru a aborda impactul direct și vulnerabilitățile subiacente.
Răspunsuri variate din partea echipei tehnologice Shardeum
Din punct de vedere tehnic, răspunsurile date sunt variate: în primul rând, echipa izolează componentele afectate pentru a preveni degradarea suplimentară a rețelei. În același timp, aplică un patch pentru a remedia bugul din sistemul de arhivare pierdut, asigurându-se că acest sistem poate gestiona o listă goală de validatori—o eroare critică care a declanșat prăbușirea rețelei. Pentru a readuce rețeaua la capacitatea operațională completă, datele stocate în arhivă sunt activate și folosite pentru a reconstrui condițiile rețelei înainte de prăbușire, asigurându-se că nu s-au pierdut date în acest proces.
Din punct de vedere logistic, echipa colaborează în diverse fusuri orare și discipline, folosind instrumente bazate pe cloud pentru colaborare și monitorizare în timp real. Aceste eforturi coordonate nu doar că facilitează dezvoltarea și implementarea rapidă a soluțiilor, ci și asigură că toți membrii echipei sunt aliniați în procesul de recuperare și în pașii următori.
Acest incident servește ca un test riguros pentru protocolul de gestionare a prăbușirilor Shardeum și subliniază importanța unui răspuns agil și inovator la provocările neprevăzute. Acesta evidențiază angajamentul echipei de a menține o rețea robustă și sigură, pregătită să facă față obstacolelor tehnice complexe pe măsură ce apar.
Inovația aterizării sigure & legată de spațiul cosmic
În concluzie, succesul recuperării rețelei shard Shardeum marchează o schimbare semnificativă în tehnologia rețelelor, marcând un punct de reper cu implicații largi pentru industrie. Deși în prezent nu este foarte cunoscut, inovații precum modurile de rețea vor stabili în cele din urmă noi standarde industriale în întreaga web3.
Este o convingere pe care am avut-o de mult timp că inovațiile de bază ale Shardeum sunt foarte probabil să influențeze dezvoltarea tehnologică în viitor, inspirând inovații și o nouă generație de tehnologii de carte de registre. După ce am fost martor direct la prima recuperare a rețelei Shardeum, știam că acesta va fi un catalizator pentru reevaluarea standardelor industriei, care ar putea conduce la adoptarea unor protocoale și metodologii mai stricte în proiectarea și arhitectura rețelelor.
Acest eveniment nu doar că demonstrează măiestria tehnică și inovația echipei Shardeum, ci semnalează și începutul unei ere în care rețelele descentralizate devin mai puternice, mai ușor de adaptat și capabile să facă față provocărilor neprevăzute în ceea ce privește planificarea recuperării în caz de dezastru. În cele din urmă, tehnologia Shardeum va marca o nouă eră a descentralizării.