Ethereum merge testnet Kintsugi suskaidytas dėl klaidos, štai kodėl

Sujungimo įvykis „Ethereum“ tinkle yra perėjimas prie „Proof-of-Stake“ konsensuso modelio nuo šiuo metu naudojamo „Proof-of-Work“ modelio. Šis susijungimas reiškia, kad dabartinė Ethereum mainnet sistema ir nauja Beacon grandinė, dažnai vadinama Ethereum 2.0, susijungs į vieną blokų grandinę.

Norint išbandyti sujungimą, gruodžio mėn. buvo įdiegtas Kintsugi testnet. Testneto tikslas yra paleisti skirtingus kraštutinius atvejus ir stebėti, kaip sistema elgiasi. Vienas iš kūrėjų, dalyvaujančių Kintsugi bandymuose, yra Marius van der Wijden, „Ethereum“ pagrindinis kūrėjas, dirbantis su „Geth“ („Go-Ethereum“) klientų komanda.

„Testnet porą savaičių veikė nepriekaištingai. Praėjusią savaitę sukūriau „fuzzer“, kuris siųstų netinkamus blokus. Bloke yra daug informacijos, pavyzdžiui, operacijos, ankstesnio bloko maiša, dujų limitas ir kt.“, – sako Marius van der Wijden.

Kai kurie diegimai nevykdė ir nepatvirtino bloko

„Fuzzer“ yra įprastas testavimo įrankis, naudojamas kūrėjams, norint generuoti atsitiktines įvestis į funkcijas ar kitas kodo dalis ir bandyti jas vienaip ar kitaip sugadinti. Kalbama apie netinkamai suformuotų ir netikėtų įvesčių generavimą ir stebėjimą, kas atsitiks su sistema.

Van der Wijden sukurtas fuzeris sukuria tinkamą bloką ir pakeičia vieną jo elementą, kad jis būtų negaliojantis. Viena jo naudojama technika yra elemento keitimas kitu. Šiuo atveju „fuzzer“ bloko maišą pakeitė į pirminę maišą.

„Mazgai turėtų atmesti tokį pakeistą bloką. Tačiau kadangi pirminė maiša nurodė patį galiojantį bloką, kai kurie diegimai iš tikrųjų nevykdė ir nepatikrino bloko, o ieškojo jo talpykloje. Kadangi ankstesnis blokas galiojo ir buvo talpykloje, jie manė, kad naujasis blokas taip pat galioja “, - aiškina van der Wijden.

Tinklas padalijamas du kartus

Rezultatas buvo toks, kad pusė tinklo, Geth klientų, atmetė blokavimą, o kita pusė, Nethermind- ir Besu klientai, jį priėmė, todėl grandinė suskilo, nes dabar turime du skirtingus teisingos būsenos vaizdus. Kad viskas būtų dar blogiau, iškilo dar viena problema.

Anot van der Wijden, Geto grandinės mazgai, kuriuos sudaro Švyturys-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth ir Teku-Geth, taip pat pasidalijo tarp jų.

„Šis padalijimas vis dar tiriamas, tačiau panašu, kad „Teku“ taip pat gali turėti tam tikrą talpyklos mechanizmą, kuris nepavyko“, – sako van der Wijdenas.

Kadangi rašymo metu egzistuoja kelios skirtingos Kintsugi testneto šakutės ir kiekvienas mazgas mano, kad jos yra tinkamoje šakėje, tinklas nebebaigiamas.

„Mes ką nors sugalvosime, kad tinklas vėl būtų sujungtas. Mes jau atnaujinome Nethermind klientą ir dabar tie mazgai yra tinkamoje grandinėje. Mums vis tiek reikia „Teku“ pataisymo, nes daugiau nei 33 procentai mazgų yra „Teku“, kitaip grandinė nebus baigta“, – sako van der Wijden.

Incidentas atneša gero

Van der Wijden teigimu, šis incidentas nedraudžia ir nevilkina tolesnio „Ethereum“ sujungimo bandymo, taip pat neuždelsia ir paties sujungimo. Tiesą sakant, van der Wijdenas sako, kad incidentas iš tikrųjų padeda išbandyti kraštutinius atvejus, kuriuos būtų buvę sunku patikrinti, jei tinklas veiktų tinkamai.

„Ilgi nepabaigimo laikotarpiai yra sudėtingi mazgams, todėl mums labai svarbu pamatyti, kaip jie elgiasi šiuo metu. Manome, kad „testnet“ ilgainiui vėl susijungs, bet nemanau, kad bandysime jį taisyti rankiniu būdu, nes tai suteikia mums galimybę išbandyti įdomius kraštutinius atvejus.

„Nemanau, kad tai užvilkins sujungimą, nes sujungimas dar nenumatytas. Tačiau tai parodo, koks svarbus yra bandymas. Manau, kad susijungimas vyksta tikrai gerai. Mums reikia dar poros savaičių, kad programinė įranga būtų priimtinos būklės, o tada mums reikia poros mėnesių ją išbandyti“, – sako van der Wijden.

O jei tai atsitiks pagrindiniame tinkle?

Įdomus klausimas, kas būtų nutikę, jei pagrindinėje grandinėje būtų įvykusi tokia klaida.

„Bandymą pradėjome gana anksti, todėl tikėjomės kelių tokių klaidų. Tačiau tokia klaida internetiniame tinkle būtų gana bjauri, nes turėtume rasti ir ištaisyti klaidą, kuri mums puikiai sekasi, išleisti kodą ir pranešti visiems dalyviams, kad jie turėtų atnaujinti savo mazgus. Mano nuomone, paskutinė dalis yra sudėtingiausia, nes kai kurie vartotojai per daug neseka kūrimo“, – sako van der Wijden.

Norėdami sužinoti daugiau, susidomėjęs skaitytojas raginamas perskaityti Mariaus van der Wijden laiškuose, "Twitter" pranešimuose apie įvykį.

„CryptoSlate“ naujienlaiškis

Pateikiama svarbiausių kasdienių istorijų kriptovaliutų, DeFi, NFT ir kt. pasaulyje santrauka.

Gaukite kraštas kriptografinių rinkinių rinkoje

Pasiekite daugiau šifravimo įžvalgų ir konteksto kiekviename straipsnyje kaip mokamas narys „CryptoSlate Edge“.

Grandininė analizė

Kainos momentinės nuotraukos

Daugiau konteksto

Prisijunkite dabar ir gaukite 19 USD per mėnesį. Naršykite visus privalumus

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