Solana เพื่อป้องกันการปิดเครือข่ายในอนาคตหากข้อผิดพลาดรันไทม์เกิดขึ้นอีกครั้ง: รายละเอียด

พื้นที่ เครือข่ายโซลาน่า ประสบปัญหาการหยุดทำงานครั้งล่าสุดเมื่อวันที่ 1 มิถุนายน เมื่อคลัสเตอร์ Solana Mainnet Beta หยุดสร้างบล็อกเนื่องจากฉันทามติที่หยุดชะงัก สิ่งนี้สร้างขึ้นโดยบั๊กรันไทม์ในฟีเจอร์ธุรกรรม nonce ที่ทนทาน ซึ่งควบคุมวิธีที่ blockchain จัดการกับรูปแบบเฉพาะของธุรกรรมที่มีไว้สำหรับการใช้งานออฟไลน์

หลังจากปิดใช้งาน "ธุรกรรม nonce ที่ทนทาน" เหล่านี้แล้ว ผู้ตรวจสอบความถูกต้องก็เริ่มรีสตาร์ทเครือข่ายในอีกสี่ชั่วโมงครึ่งต่อมา วันรุ่งขึ้น เวลา 9 น. UTC การผลิตแบบบล็อกเริ่มต้นใหม่ และผู้ให้บริการเครือข่ายยังคงกู้คืนบริการลูกค้าต่อไปในหลายชั่วโมงข้างหน้า

การหยุดทำงานล่าสุดชี้ให้เห็นถึงความล้มเหลวในความสามารถของ Solana ในการจัดการ nonces ที่ทนทาน เครื่องมือตรวจสอบความถูกต้องของเครือข่ายนับสองครั้งที่ขาเข้าเฉพาะเหล่านี้เป็นธุรกรรมเดียวที่ความสูงของบล็อกแยกจากกัน แทนที่จะพิจารณาว่าเป็นธุรกรรมเดียว กลไกฉันทามติของ Solana ถูกทำลายอย่างมีประสิทธิภาพด้วยสถานการณ์ที่เป็นไปไม่ได้นี้

Solana ดำเนินการเชิงรุก

เพื่อเพิ่มปริมาณงาน Solana ใช้การประมวลผลแบบขนานของธุรกรรมที่ไม่ทับซ้อนกัน เครือข่ายที่ดำเนินการธุรกรรมแบบต่อเนื่องสามารถใช้ nonce ที่เพิ่มขึ้นได้ Solana ใช้กลไกที่แตกต่างกันเพื่อให้แน่ใจว่าจะไม่มีการจัดการธุรกรรมสองครั้ง เนื่องจากธุรกรรม nonce ที่คงทนไม่ได้ถูกกำหนดให้หมดอายุ พวกเขาจึงต้องการแนวทางที่แตกต่างเพื่อหลีกเลี่ยงการประมวลผลซ้ำซ้อนและได้รับการจัดการตามลำดับ

โฆษณา

การประมวลผลธุรกรรม nonce ที่ทนทานเผยให้เห็นจุดบกพร่องในรันไทม์ที่หยุดเครือข่ายไม่ให้คืบหน้าตลอดการหยุดทำงาน ธุรกรรมที่ประสบความสำเร็จจะไม่ทำให้เกิดปัญหานี้เนื่องจากธุรกรรมที่มีความทนทานจะล้มเหลว

ฟังก์ชันการทำธุรกรรม nonce ที่ทนทานถูกปิดใช้งานในรุ่น v1.9.28/v1.10.23 เพื่อป้องกันไม่ให้เครือข่ายหยุดชะงักหากเกิดเหตุการณ์เดียวกันขึ้นอีกครั้ง ธุรกรรม nonce ที่ทนทานจะไม่ดำเนินการจนกว่าจะมีการปรับใช้การบรรเทาผลกระทบและเปิดใช้งานคุณสมบัติอีกครั้งในเวอร์ชันอนาคต

ที่มา: https://u.today/solana-to-prevent-future-network-shutdown-if-runtime-bug-arises-again-details