Solana om toekomstige netwerkuitschakeling te voorkomen als runtime-bug zich opnieuw voordoet: details

De Solana-netwerk ondervond de laatste storing op 1 juni, toen het Solana Mainnet Beta-cluster stopte met het maken van blokken vanwege vastgelopen consensus. Dit werd veroorzaakt door een runtime-bug in de duurzame nonce-transactiefunctie, die bepaalt hoe de blockchain omgaat met een specifieke vorm van de transactie die bedoeld is voor offline gebruik.

Na het uitschakelen van deze ‘duurzame nonce-transacties’ begonnen validators vier en een half uur later het netwerk opnieuw op te starten. De volgende dag, om 9 uur UTC, werd de blokproductie opnieuw gestart en gingen netwerkoperators de daaropvolgende uren door met het herstellen van de clientdiensten.

De recente storing duidde op een tekortkoming in het vermogen van Solana om met duurzame nonces om te gaan. De validators van het netwerk telden deze niche-inbounds dubbel als één enkele transactie op twee afzonderlijke blokhoogten, in plaats van ze als één enkele transactie te beschouwen. Solana's consensusmechanisme werd feitelijk doorbroken door deze onmogelijke situatie.

Solana neemt proactieve stap

Om de doorvoer te vergroten, gebruikt Solana parallelle verwerking van niet-overlappende transacties. Een oplopende nonce kan worden gebruikt door netwerken die transacties serieel uitvoeren; Solana gebruikt een ander mechanisme om ervoor te zorgen dat transacties niet tweemaal worden afgehandeld. Omdat het niet de bedoeling is dat duurzame nonce-transacties verlopen, vereisen ze een andere aanpak om dubbele verwerking te voorkomen en worden ze opeenvolgend afgehandeld.

advertenties

De verwerking van een duurzame nonce-transactie bracht een bug in de runtime aan het licht waardoor het netwerk tijdens de storing niet verder kon. Een succesvolle transactie zou dit probleem niet hebben veroorzaakt, omdat de duurzame nonce-transactie zou zijn mislukt.

De duurzame nonce-transactiefunctionaliteit is gedeactiveerd in releases v1.9.28/v1.10.23 om te voorkomen dat het netwerk vastloopt als dezelfde omstandigheid zich opnieuw voordoet. Duurzame nonce-transacties worden pas uitgevoerd als de beperking is geïmplementeerd en de functie in een toekomstige versie opnieuw is geactiveerd.

Bron: https://u.today/solana-to-prevent-future-network-shutdown-if-runtime-bug-arises-again-details