Pinagsama-sama ng Ethereum ang testnet Kintsugi na nahati sa bug, narito kung bakit

Ang merge event sa Ethereum network ay ang paglipat sa Proof-of-Stake consensus model mula sa kasalukuyang ginagamit na modelo ng Proof-of-Work. Ang pagsasanib na ito ay nangangahulugan na ang kasalukuyang Ethereum mainnet system at ang bagong Beacon chain, madalas na tinutukoy bilang Ethereum 2.0, ay magsasama sa isang blockchain.

Upang subukan ang pagsasanib, ang Kintsugi testnet ay na-deploy noong Disyembre. Ang layunin ng testnet ay magpatakbo ng iba't ibang edge case at obserbahan kung paano kumikilos ang system. Isa sa mga developer na kasangkot sa pagpapatakbo ng mga pagsubok sa Kintsugi ay Marius van der Wijden, Ethereum core developer na nagtatrabaho sa Geth (Go-Ethereum) client team.

"Ang testnet ay tumakbo nang walang kamali-mali sa loob ng ilang linggo. Noong nakaraang linggo gumawa ako ng fuzzer na magpapadala ng mga di-wastong bloke. Ang isang bloke ay naglalaman ng maraming impormasyon, tulad ng mga transaksyon, ang hash ng nakaraang bloke, ang limitasyon ng gas, at iba pa," sabi ni Marius van der Wijden.

Ang ilang mga pagpapatupad ay hindi naisakatuparan at na-verify ang block

Ang fuzzer ay isang karaniwang uri ng tool sa pagsubok na ginagamit sa mga developer upang makabuo ng mga random na input sa mga function o iba pang piraso ng code, at subukang sirain ang mga ito sa ilang paraan o iba pa. Ito ay tungkol sa pagbuo ng mali at hindi inaasahang mga input at pagmamasid sa kung ano ang mangyayari sa system.

Ang fuzzer na nilikha ni van der Wijden ay gumagawa ng isang wastong bloke at binabago ang isang elemento nito upang gawin itong hindi wasto. Ang isang pamamaraan na ginagamit nito ay upang baguhin ang isang elemento sa isa pa. Sa kasong ito, binago ng fuzzer ang blockhash sa parent hash.

"Dapat tanggihan ng mga node ang naturang binagong block. Gayunpaman, dahil ang hash ng magulang ay nagtuturo sa isang wastong bloke mismo, ang ilang mga pagpapatupad ay hindi aktwal na naisakatuparan at na-verify ang bloke ngunit hinanap ito sa isang cache sa halip. Dahil ang nakaraang bloke ay wasto at nasa cache, ipinapalagay nila na ang bagong bloke ay wasto rin, "paliwanag ni van der Wijden.

Dalawang beses na nahati ang network

Ang resulta ay ang kalahati ng network, ang mga kliyente ng Geth, ay tinanggihan ang block, habang ang isa pang kalahati, ang mga kliyente ng Nethermind- at Besu, ay tinanggap ito, na naging sanhi ng pagkahati ng chain dahil mayroon na tayong dalawang magkaibang pananaw sa tamang estado. Para lumala pa, may isa pang isyu sa itaas.

Ayon kay van der Wijden, ang Geth chain nodes, naman, na binubuo ng Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth at Teku-Geth, ay nahati din sa pagitan nila.

"Ang split na ito ay iniimbestigahan pa rin, ngunit mukhang ang Teku ay maaaring mayroon ding ilang mekanismo ng pag-cache na nabigo," sabi ni van der Wijden.

Dahil maraming iba't ibang tinidor ng Kintsugi testnet ang umiiral sa sandali ng pagsulat, at iniisip ng bawat node na nasa tamang tinidor ang mga ito, hindi na tinatapos ang network.

“May gagawin kami para maibalik ang network. Na-update na namin ang kliyente ng Nethermind at ang mga node na iyon ay nasa tamang chain ngayon. Kailangan pa rin namin ang pag-aayos sa Teku, dahil higit sa 33 porsiyento ng mga node ay Teku, kung hindi ay hindi matatapos ang chain,” sabi ni van der Wijden.

Nagdudulot ng kabutihan ang insidente

Ayon kay van der Wijden, ang insidenteng ito ay hindi nagbabawal o nagpapaantala ng karagdagang pagsubok sa Ethereum merge, at hindi rin nito inaantala ang merge mismo. Sa katunayan, sinabi ni van der Wijden na ang insidente ay talagang nakakatulong upang subukan ang mga gilid na kaso na mahirap subukan kung ang network ay tumatakbo nang maayos.

“Mahabang panahon ng hindi pag-finalize ay mahirap para sa mga node at napakahalaga para sa amin na makita kung paano sila kumikilos ngayon. Sa palagay namin ay magkakabalikan muli ang testnet, ngunit sa palagay ko ay hindi namin susubukang ayusin ito nang manu-mano, dahil binibigyan kami nito ng pagkakataong subukan ang mga kawili-wiling edge case.”

“I don't think that this will delay the merge, since hindi pa naka-schedule ang merge. Ngunit ipinapakita nito kung gaano kahalaga ang pagsubok. Sa tingin ko ang pagsasanib ay talagang umuunlad. Kailangan namin ng ilang linggo upang makuha ang software sa isang katanggap-tanggap na estado at pagkatapos ay kailangan namin ng ilang buwan para sa pagsubok nito, "sabi ni van der Wijden.

Paano kung mangyari ito sa mainnet?

Ang isang kawili-wiling tanong ay kung ano ang nangyari kung ang isang bug na tulad nito ay nangyari sa mainchain.

"Nagsimula kaming mag-test nang medyo maaga, kaya inaasahan namin ang isang pares ng mga bug na tulad nito. Ang ganitong bug sa mainnet ay magiging medyo pangit bagaman, dahil kailangan nating hanapin at ayusin ang bug, na kung saan ay medyo magaling tayo, ilabas ang code at pagkatapos ay ipaalam sa lahat ng staker na dapat nilang i-update ang kanilang mga node. Ang huling bahagi ay ang mahirap na bahagi sa aking opinyon, dahil ang ilang mga gumagamit ay hindi sumusunod sa pag-unlad ng masyadong malapit, "sabi ni van der Wijden.

Para sa higit pang mga detalye, hinihikayat ang interesadong mambabasa na basahin ang ni Marius van der Wijden tweet sa pangyayari.

CryptoSlate Newsletter

Nagtatampok ng buod ng pinakamahalagang pang-araw-araw na kwento sa mundo ng crypto, DeFi, NFT at higit pa.

Kumuha ng isang gilid sa merkado ng cryptoasset

Mag-access ng higit pang mga pananaw at konteksto ng crypto sa bawat artikulo bilang isang bayad na miyembro ng CryptoSlate Edge.

Pagsusuri sa on-chain

Mga snapshot ng presyo

Higit pang konteksto

Sumali ngayon sa halagang $ 19 / buwan Tuklasin ang lahat ng mga benepisyo

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