Ethereum bashkon rrjetin testues Kintsugi i ndarë me gabime, ja pse

Ngjarja e bashkimit në rrjetin Ethereum është kalimi në modelin e konsensusit Proof-of-Stake nga modeli i përdorur aktualisht Prova-of-Work. Ky bashkim do të thotë që sistemi aktual i rrjetit kryesor Ethereum dhe zinxhiri i ri Beacon, i referuar shpesh si Ethereum 2.0, do të bashkohen në një blockchain.

Për të testuar bashkimin, rrjeti testues Kintsugi u vendos në dhjetor. Qëllimi i rrjetit testues është të ekzekutojë rastet e ndryshme të skajeve dhe të vëzhgojë se si sillet sistemi. Një nga zhvilluesit e përfshirë në ekzekutimin e testeve në Kintsugi është Marius van der Wijden, Zhvilluesi kryesor i Ethereum që punon me ekipin e klientëve Geth (Go-Ethereum).

“Rrjeti testues funksionoi pa të meta për disa javë. Javën e kaluar krijova një fuzzer që do të dërgonte blloqe të pavlefshme. Një bllok përmban shumë informacione, si transaksionet, hash-in e bllokut të mëparshëm, kufirin e gazit, etj., "thotë Marius van der Wijden.

Disa zbatime nuk e kanë ekzekutuar dhe verifikuar bllokun

Një fuzzer është një lloj i zakonshëm mjeti testimi që përdoret midis zhvilluesve për të gjeneruar hyrje të rastësishme në funksione ose pjesë të tjera të kodit dhe për t'i bërë ato të prishen në një mënyrë ose në një tjetër. Bëhet fjalë për gjenerimin e inputeve të keqformuara dhe të papritura dhe shikimin e asaj që ndodh me sistemin.

Fuzzeri i krijuar nga van der Wijden prodhon një bllok të vlefshëm dhe ndryshon një element të tij për ta bërë atë të pavlefshëm. Një teknikë që përdor është ndryshimi i një elementi në një tjetër. Në këtë rast, fuzzer ndryshoi blockhash në hash prind.

"Nyjet duhet të refuzojnë një bllok të tillë të ndryshuar. Megjithatë, meqenëse hash-i prind tregoi vetë një bllok të vlefshëm, disa zbatime nuk e ekzekutuan dhe verifikuan bllokun, por e kërkuan atë në një cache. Meqenëse blloku i mëparshëm ishte i vlefshëm dhe në cache, ata supozuan se blloku i ri ishte gjithashtu i vlefshëm, "shpjegon van der Wijden.

Rrjeti ndahet dy herë

Rezultati ishte se gjysma e rrjetit, klientët Geth, hodhën poshtë bllokun, ndërsa gjysma tjetër, klientët Nethermind- dhe Besu, e pranuan atë, duke bërë që zinxhiri të ndahej pasi tani kishim dy pikëpamje të ndryshme për gjendjen e duhur. Për t'i bërë gjërat më keq, kishte një çështje tjetër në krye.

Sipas van der Wijden, nyjet e zinxhirit Geth, nga ana tjetër, e cila përbëhet nga Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth dhe Teku-Geth, gjithashtu ndahen midis tyre.

"Kjo ndarje është ende duke u hetuar, por duket se Teku mund të ketë gjithashtu një mekanizëm të ruajtjes së memories që dështoi," thotë van der Wijden.

Duke qenë se ekzistojnë disa forks të ndryshëm të rrjetit testues Kintsugi në momentin e shkrimit, dhe çdo nyje mendon se janë në një pirun të saktë, rrjeti nuk po finalizohet më.

“Ne do të gjejmë diçka për të ribashkuar rrjetin. Ne kemi përditësuar tashmë klientin Nethermind dhe ato nyje janë në zinxhirin e duhur tani. Ne kemi ende nevojë për rregullimin e Teku, pasi më shumë se 33 përqind e nyjeve janë Teku, përndryshe zinxhiri nuk do të finalizohet, "thotë van der Wijden.

Incidenti sjell të mira

Sipas van der Wijden, ky incident nuk ndalon ose vonon testimin e mëtejshëm të bashkimit të Ethereum, as nuk vonon vetë bashkimin. Në fakt, van der Wijden thotë se incidenti në të vërtetë ndihmon në testimin e rasteve që do të kishin qenë të vështira për t'u testuar nëse rrjeti funksiononte siç duhet.

“Periudhat e gjata të mos-finalizimit janë sfiduese për nyjet dhe është shumë e rëndësishme për ne të shohim se si ata sillen tani. Ne mendojmë se rrjeti testues përfundimisht do të bashkohet përsëri, por nuk mendoj se do të përpiqemi ta rregullojmë manualisht, pasi na jep mundësinë të testojmë rastet e skajshme interesante.”

“Nuk mendoj se kjo do ta vonojë bashkimin, pasi që bashkimi nuk është planifikuar ende. Por kjo tregon se sa i rëndësishëm është testimi. Unë mendoj se bashkimi po përparon vërtet mirë. Na duhen edhe disa javë për ta marrë softuerin në një gjendje të pranueshme dhe më pas na duhen disa muaj për ta testuar atë,” thotë van der Wijden.

Po sikur kjo të ndodhë në rrjetin kryesor?

Një pyetje interesante është se çfarë do të kishte ndodhur nëse një gabim si ky do të kishte ndodhur në zinxhirin kryesor.

“Ne kemi filluar testimin shumë herët, kështu që prisnim disa gabime të tilla. Megjithatë, një gabim i tillë në rrjetin kryesor do të ishte mjaft i keq, pasi do të na duhej të gjejmë dhe rregullojmë gabimin, për të cilin jemi mjaft të mirë, të lëshojmë kodin dhe më pas t'i bëjmë të ditur të gjithë pjesëmarrësit se duhet të përditësojnë nyjet e tyre. Pjesa e fundit është pjesa e vështirë për mendimin tim, pasi disa përdorues nuk po e ndjekin shumë nga afër zhvillimin, "thotë van der Wijden.

Për më shumë detaje, lexuesi i interesuar inkurajohet të lexojë atë të Marius van der Wijden tweets mbi incidentin.

Buletini CryptoSlate

Përmban një përmbledhje të historive më të rëndësishme ditore në botën e kriptove, DeFi, NFT dhe më shumë.

Merrni një buzë në tregun e kriptoasetave

Hyni në më shumë njohuri dhe kontekste kripto në çdo artikull si një anëtar i paguar i Edge CryptoSlate.

Analiza zinxhir

Fotografitë e çmimeve

Më shumë kontekst

Bashkohuni tani për 19 $ / muaj Eksploroni të gjitha përfitimet

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