Ethereum združitveni testni splet Kintsugi je razdeljen zaradi hrošča, evo zakaj

Dogodek spajanja v omrežju Ethereum je prehod na soglasni model Proof-of-Stake iz trenutno uporabljenega modela Proof-of-Work. Ta združitev pomeni, da se bosta trenutni sistem glavnega omrežja Ethereum in nova veriga Beacon, pogosto imenovana Ethereum 2.0, združila v eno verigo blokov.

Da bi preizkusili združitev, je bil decembra nameščen testni splet Kintsugi. Namen testne mreže je zagnati različne robne primere in opazovati, kako se sistem obnaša. Eden od razvijalcev, ki sodelujejo pri izvajanju testov na Kintsugi, je Marius van der Wijden, razvijalec jedra Ethereuma, ki sodeluje z odjemalsko ekipo Geth (Go-Ethereum).

»Testnet je deloval brezhibno nekaj tednov. Prejšnji teden sem ustvaril fuzzer, ki bi pošiljal neveljavne bloke. Blok vsebuje veliko informacij, kot so transakcije, hash prejšnjega bloka, omejitev plina itd.,« pravi Marius van der Wijden.

Nekatere implementacije niso izvedle in preverile bloka

Fuzzer je običajna vrsta orodja za testiranje, ki se uporablja med razvijalci za ustvarjanje naključnih vnosov v funkcije ali druge dele kode in jih poskuša na tak ali drugačen način razbiti. Gre za ustvarjanje napačno oblikovanih in nepričakovanih vnosov in opazovanje, kaj se dogaja s sistemom.

Fuzzer, ki ga je ustvaril van der Wijden, ustvari veljaven blok in spremeni en njegov element, da postane neveljaven. Ena tehnika, ki jo uporablja, je spreminjanje elementa v drugega. V tem primeru je fuzzer spremenil zgoščevanje bloka v nadrejeno razpršilo.

»Vozlišča bi morala zavrniti tako spremenjen blok. Ker pa je nadrejeni hash kazal na sam veljaven blok, nekatere implementacije dejansko niso izvršile in preverile bloka, temveč so ga namesto tega poiskale v predpomnilniku. Ker je bil prejšnji blok veljaven in v predpomnilniku, so domnevali, da je veljaven tudi novi blok,« pojasnjuje van der Wijden.

Omrežje je dvakrat razdeljeno

Rezultat je bil, da je polovica omrežja, odjemalci Geth, zavrnila blok, medtem ko ga je druga polovica, odjemalci Nethermind in Besu, sprejela, kar je povzročilo ločitev verige, saj smo imeli zdaj dva različna pogleda na pravilno stanje. Da bi bile stvari še slabše, je bilo na vrhu še ena težava.

Po van der Wijdenovem mnenju se vozlišča Gethove verige, ki jih sestavljajo Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth in Teku-Geth, prav tako razdelijo med njimi.

"Ta razdelitev se še vedno preiskuje, vendar je videti, da bi Teku morda imel tudi kakšen mehanizem predpomnjenja, ki ni uspel," pravi van der Wijden.

Ker v trenutku pisanja obstaja več različnih vilic testnega omrežja Kintsugi in vsako vozlišče meni, da je na pravilnem razcepu, se omrežje ne dokonča več.

»Izmislili bomo nekaj, da se omrežje spet poveže. Odjemalca Nethermind smo že posodobili in ta vozlišča so zdaj v pravi verigi. Še vedno potrebujemo popravek za Teku, saj je več kot 33 odstotkov vozlišč Teku, sicer se veriga ne bo dokončala,« pravi van der Wijden.

Incident prinese nekaj dobrega

Po besedah ​​van der Wijdena ta incident ne prepoveduje ali odloži nadaljnjega testiranja združitve Ethereuma, niti ne odloži same združitve. Van der Wijden pravi, da incident dejansko pomaga pri testiranju robnih primerov, ki bi jih bilo težko preizkusiti, če bi omrežje delovalo pravilno.

»Dolga obdobja nedokončanja so za vozlišča izziv in za nas je zelo pomembno, da vidimo, kako se obnašajo v tem trenutku. Menimo, da se bo testna mreža sčasoma spet združila, vendar ne mislim, da jo bomo poskušali ročno popraviti, saj nam daje priložnost, da testiramo zanimive robne primere.«

“Mislim, da to ne bo odložilo združitve, saj združitev še ni načrtovana. Toda to kaže, kako pomembno je testiranje. Mislim, da spajanje zelo dobro napreduje. Potrebujemo še nekaj tednov, da dobimo programsko opremo v sprejemljivem stanju, nato pa potrebujemo nekaj mesecev, da jo preizkusimo,« pravi van der Wijden.

Kaj pa, če se to zgodi na glavnem omrežju?

Zanimivo vprašanje je, kaj bi se zgodilo, če bi se taka napaka pojavila v glavni verigi.

»S testiranjem smo začeli precej zgodaj, zato smo pričakovali nekaj takih hroščev. Takšen hrošč v glavnem omrežju bi bil sicer precej grd, saj bi morali poiskati in popraviti napako, v čemer smo precej dobri, sprostiti kodo in nato vsem udeležencem sporočiti, da morajo posodobiti svoja vozlišča. Zadnji del je po mojem mnenju najtežji del, saj nekateri uporabniki ne spremljajo preveč natančno,« pravi van der Wijden.

Za več podrobnosti, zainteresiranega bralca spodbujamo k branju Mariusa van der Wijdna tweets o incidentu.

Glasilo CryptoSlate

Vsebuje povzetek najpomembnejših dnevnih zgodb v svetu kripto, DeFi, NFT in še več.

Get rob na trgu kriptoasset

Dostopite do več kripto vpogledov in konteksta v vsakem članku kot plačan član CryptoSlate Edge.

Analiza verige

Utrinki cen

Več konteksta

Pridružite se zdaj za 19 USD / mesec Raziščite vse ugodnosti

Vir: https://cryptoslate.com/ethereum-merge-testnet-kintsugi-split-by-bug-heres-why/