Ethereum sapludināšanas testtīkls Kintsugi sadalīts kļūdas dēļ. Lūk, kāpēc

Apvienošanās notikums Ethereum tīklā ir pāreja uz Proof-of-Stake konsensa modeli no pašlaik izmantotā Proof-of-Work modeļa. Šī apvienošanās nozīmē, ka pašreizējā Ethereum tīkla sistēma un jaunā Beacon ķēde, ko bieži dēvē par Ethereum 2.0, apvienosies vienā blokķēdē.

Lai pārbaudītu apvienošanu, Kintsugi testnet tika izvietots decembrī. Testneta mērķis ir palaist dažādus malas gadījumus un novērot, kā sistēma darbojas. Viens no Kintsugi testu veikšanā iesaistītajiem izstrādātājiem ir Mariuss van der Vīdens, Ethereum galvenais izstrādātājs, kas strādā ar Geth (Go-Ethereum) klientu komandu.

“Testnet tīkls darbojās nevainojami pāris nedēļas. Pagājušajā nedēļā es izveidoju fuzeri, kas nosūtītu nederīgus blokus. Blokā ir daudz informācijas, piemēram, darījumi, iepriekšējā bloka jaucējkods, gāzes limits utt.,” stāsta Mariuss van der Vaidens.

Dažas ieviešanas netika izpildītas un pārbaudītas blokā

Fuzzer ir izplatīts testēšanas rīks, ko izstrādātāji izmanto, lai ģenerētu nejaušas ievades funkcijās vai citos koda fragmentos un mēģinātu tos kaut kādā veidā sabojāt. Tas ir par nepareizi veidotu un negaidītu ievades ģenerēšanu un novērošanu, kas notiek ar sistēmu.

Van der Wijden izveidotais fuzeris izveido derīgu bloku un maina vienu tā elementu, lai padarītu to nederīgu. Viens no tā izmantotajiem paņēmieniem ir elementa maiņa uz citu. Šajā gadījumā izplūdes rīks nomainīja bloka jaucējkodu uz vecāku jaucēju.

“Mezglu vajadzētu noraidīt šādu mainītu bloku. Tomēr, tā kā vecākjaucējs norādīja uz pašu derīgu bloku, dažas implementācijas faktiski neizpildīja un nepārbaudīja bloku, bet gan meklēja to kešatmiņā. Tā kā iepriekšējais bloks bija derīgs un atradās kešatmiņā, viņi uzskatīja, ka arī jaunais bloks ir derīgs, ”skaidro van der Vīdens.

Tīkls sadalīts divreiz

Rezultāts bija tāds, ka puse tīkla, Geth klienti, noraidīja bloķēšanu, bet otra puse, Nethermind- un Besu klienti, to pieņēma, izraisot ķēdes sadalīšanu, jo mums tagad bija divi dažādi viedokļi par pareizo stāvokli. Lai padarītu situāciju vēl ļaunāku, bija vēl viena problēma.

Pēc van der Vīdena teiktā, starp tiem sadalījās arī Getas ķēdes mezgli, kas sastāv no Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth un Teku-Geth.

"Šis sadalījums joprojām tiek izmeklēts, taču šķiet, ka Teku varētu būt arī kāds kešatmiņas mehānisms, kas neizdevās," saka van der Vaidens.

Tā kā rakstīšanas brīdī pastāv vairākas dažādas Kintsugi testneta dakšas un katrs mezgls domā, ka tie atrodas uz pareizās dakšas, tīkls vairs netiek pabeigts.

"Mēs kaut ko izdomāsim, lai atjaunotu tīklu. Mēs jau esam atjauninājuši Nethermind klientu, un šie mezgli tagad atrodas pareizajā ķēdē. Mums joprojām ir nepieciešams Teku labojums, jo vairāk nekā 33 procenti mezglu ir Teku, pretējā gadījumā ķēde netiks pabeigta,” saka van der Vīdens.

Negadījums nes kaut ko labu

Saskaņā ar van der Wijden teikto, šis incidents neaizliedz un neaizkavē turpmāku Ethereum sapludināšanas testēšanu, kā arī neaizkavē pašu apvienošanu. Faktiski van der Wijden saka, ka incidents palīdz pārbaudīt malas gadījumus, kurus būtu bijis grūti pārbaudīt, ja tīkls darbotos pareizi.

“Ilgi nepabeigšanas periodi ir izaicinājums mezgliem, un mums ir ļoti svarīgi redzēt, kā viņi šobrīd uzvedas. Mēs domājam, ka testnet galu galā atkal sapulcēsies, taču es nedomāju, ka mēģināsim to manuāli labot, jo tas dod mums iespēju pārbaudīt interesantus malas gadījumus.

“Es nedomāju, ka tas aizkavēs apvienošanu, jo apvienošana vēl nav ieplānota. Bet tas parāda, cik svarīga ir pārbaude. Manuprāt, apvienošanās norit ļoti labi. Mums ir vajadzīgas vēl dažas nedēļas, lai programmatūra nonāktu pieņemamā stāvoklī, un pēc tam mums ir vajadzīgi pāris mēneši, lai to pārbaudītu, ”saka van der Vaidens.

Ko darīt, ja tas notiek galvenajā tīklā?

Interesants jautājums ir, kas būtu noticis, ja galvenajā ķēdē būtu notikusi šāda kļūda.

"Mēs esam sākuši testēšanu diezgan agri, tāpēc mēs gaidījām dažas šādas kļūdas. Tomēr šāda kļūda tīklā būtu diezgan nepatīkama, jo mums būtu jāatrod un jānovērš kļūda, kas mums ir diezgan laba, jāatbrīvo kods un pēc tam jāinformē visi ieinteresētie, ka viņiem ir jāatjaunina savi mezgli. Pēdējā daļa, manuprāt, ir grūtākā, jo daži lietotāji pārāk cieši neseko attīstībai,” saka van der Vijdens.

Lai iegūtu sīkāku informāciju, ieinteresētais lasītājs tiek aicināts izlasīt Mariusa van der Wijdena grāmatu tweets par notikušo.

CryptoSlate biļetens

Ietver kopsavilkumu par svarīgākajiem ikdienas stāstiem kriptovalūtu, DeFi, NFT un citu pasaulē.

Get mala kriptogrāfijas kases tirgū

Piekļūstiet vairāk kripto ieskatiem un konteksta katrā rakstā kā apmaksāts loceklis CryptoSlate Edge.

Ķēdes analīze

Cenu momentuzņēmumi

Vairāk konteksta

Pievienojieties tagad par $ 19 / mēnesī. Izpētiet visas priekšrocības

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