Ethereum merge testnet Kintsugi opdelt efter fejl, her er hvorfor

Sammenlægningsbegivenheden på Ethereum-netværket er overgangen til Proof-of-Stake-konsensusmodellen fra den i øjeblikket anvendte Proof-of-Work-model. Denne fusion betyder, at det nuværende Ethereum mainnet-system og den nye Beacon-kæde, ofte omtalt som Ethereum 2.0, vil smelte sammen til én blockchain.

For at teste fusionen blev Kintsugi-testnettet installeret i december. Formålet med testnettet er at køre forskellige edge cases og observere hvordan systemet opfører sig. En af de udviklere, der er involveret i at køre test på Kintsugi er Marius van der Wijden, Ethereum kerneudvikler, der arbejder med Geth (Go-Ethereum) klientteamet.

"Testnettet kørte fejlfrit i et par uger. I sidste uge lavede jeg en fuzzer, som ville sende ugyldige blokke. En blok indeholder en masse information, såsom transaktionerne, hashen fra den forrige blok, gasgrænsen osv.,” siger Marius van der Wijden.

Nogle implementeringer udførte og bekræftede ikke blokeringen

En fuzzer er en almindelig type testværktøj, der bruges blandt udviklere til at generere tilfældige input til funktioner eller andre stykker kode og forsøge at få dem til at bryde på en eller anden måde. Det handler om at generere forkerte og uventede input og se, hvad der sker med systemet.

Fuzzeren skabt af van der Wijden producerer en gyldig blok og ændrer et element af den for at gøre den ugyldig. En teknik, den bruger, er at ændre et element til et andet. I dette tilfælde ændrede fuzzeren blockhash til overordnet hash.

"Noder bør afvise sådan en ændret blok. Men da den overordnede hash pegede på en gyldig blok i sig selv, blev nogle implementeringer faktisk ikke eksekveret og verificeret blokken, men slog den op i en cache i stedet for. Da den forrige blok var gyldig og i cachen, antog de, at den nye blok også var gyldig,” forklarer van der Wijden.

Netværk opdelt to gange

Resultatet var, at halvdelen af ​​netværket, Geth-klienterne, afviste blokeringen, mens den anden halvdel, Nethermind- og Besu-klienterne, accepterede den, hvilket fik kæden til at splitte, da vi nu havde to forskellige visninger af den korrekte tilstand. For at gøre tingene værre var der et andet problem oveni.

Ifølge van der Wijden er Geth-kædenoderne til gengæld, som består af Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth og Teku-Geth, også delt ind imellem dem.

"Denne opdeling er stadig ved at blive undersøgt, men det ser ud til, at Teku også kan have en eller anden caching-mekanisme, der mislykkedes," siger van der Wijden.

Da der findes flere forskellige gafler i Kintsugi-testnettet i skrivende stund, og hver node tror, ​​at de er på en korrekt gaffel, er netværket ikke ved at afslutte længere.

"Vi finder ud af noget for at få netværket sammen igen. Vi har allerede opdateret Nethermind-klienten, og disse noder er i den rigtige kæde nu. Vi har stadig brug for rettelsen til Teku, da mere end 33 procent af knudepunkterne er Teku, ellers bliver kæden ikke afsluttet,” siger van der Wijden.

Hændelsen bringer noget godt

Ifølge van der Wijden forbyder eller forsinker denne hændelse ikke yderligere test af Ethereum-fusionen, og den forsinker heller ikke selve fusionen. Faktisk siger van der Wijden, at hændelsen faktisk hjælper med at teste kantsager, som ville have været svære at teste, hvis netværket kørte korrekt.

"Lange perioder med ikke-afslutning er udfordrende for noderne, og det er meget vigtigt for os at se, hvordan de opfører sig lige nu. Vi tror, ​​at testnettet med tiden vil komme sammen igen, men jeg tror ikke, at vi vil forsøge at reparere det manuelt, da det giver os mulighed for at teste interessante edge cases.”

”Jeg tror ikke, at det vil forsinke fusionen, da fusionen ikke er planlagt endnu. Men det viser, hvor vigtig test er. Jeg synes, sammenlægningen skrider rigtig godt frem. Vi har brug for et par uger mere for at få softwaren i en acceptabel tilstand, og så har vi brug for et par måneder til at teste den,” siger van der Wijden.

Hvad hvis dette sker på mainnet?

Et interessant spørgsmål er, hvad der ville være sket, hvis en fejl som denne var opstået på hovedkæden.

"Vi er begyndt at teste ret tidligt, så vi forventede et par fejl som denne. En sådan fejl på mainnet ville dog være ret grim, da vi skulle finde og rette fejlen, som vi er ret gode til, frigive koden og derefter lade alle spillere vide, at de skal opdatere deres noder. Den sidste del er efter min mening den svære del, da nogle brugere ikke følger udviklingen for tæt,” siger van der Wijden.

For flere detaljer opfordres den interesserede læser til at læse Marius van der Wijdens tweets om hændelsen.

CryptoSlate nyhedsbrev

Med en oversigt over de vigtigste daglige historier i verden af ​​krypto, DeFi, NFT'er og mere.

Få en kant på kryptoassetmarkedet

Få adgang til mere kryptoindsigt og kontekst i hver artikel som et betalt medlem af CryptoSlate Edge.

On-chain analyse

Pris snapshots

Mere sammenhæng

Deltag nu i $ 19 / måned Udforsk alle fordele

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