พื้นที่ เครือข่ายโซลาน่า ประสบปัญหาการหยุดทำงานครั้งล่าสุดเมื่อวันที่ 1 มิถุนายน เมื่อคลัสเตอร์ Solana Mainnet Beta หยุดสร้างบล็อกเนื่องจากฉันทามติที่หยุดชะงัก สิ่งนี้สร้างขึ้นโดยบั๊กรันไทม์ในฟีเจอร์ธุรกรรม nonce ที่ทนทาน ซึ่งควบคุมวิธีที่ blockchain จัดการกับรูปแบบเฉพาะของธุรกรรมที่มีไว้สำหรับการใช้งานออฟไลน์
06-01-22 รายงานการหยุดทำงานของ Solana Mainnet Beta: คุณลักษณะการทำธุรกรรมที่ไม่คงทนถูกปิดใช้งานในรุ่น v1.9.28/v1.10.23 เพื่อป้องกันไม่ให้เครือข่ายหยุดทำงานหากเกิดสถานการณ์เดียวกันขึ้นอีกครั้ง https://t.co/2HwkSWkLaR
- Wu Blockchain (@WuBlockchain) มิถุนายน 5, 2022
หลังจากปิดใช้งาน "ธุรกรรม 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