Các nhà phát triển Solana đã giải quyết lỗi “giao dịch nonce lâu dài” (durable nonce transaction), khiến nền tảng ngừng hoạt đồng lần thứ 5 trong năm 2022.
Nhà phát triển Solana sửa lỗi “giao dịch nonce lâu dài”
Theo đó, vào ngày 1 tháng 6, mạng lưới Solana đã ngừng hoạt động trên toàn hệ thống, hiện các nhà phát triển đã sửa lỗi, với hy vọng sự cố sẽ không tiếp tục xảy ra.
Ngày 5 tháng 6 vừa qua, Solana Labs đã công bố một báo cáo, cho biết sự cố ngừng hoạt động lần thứ 5 trên nền tảng này xuất phát từ một lỗi trong “tính năng giao dịch nonce lâu dài”, khiến mạng lưới ngừng sản xuất khối trong khoảng 4 tiếng rưỡi.
Theo báo cáo:
“Tính năng giao dịch nonce lâu dài được vô hiệu hóa trong các bản phát hành v1.9.28 /v1.10.23 để ngăn chặn mạng lưới khỏi sự tạm dừng nếu tình huống tương tự xuất hiện một lần nữa”.
Họ bổ sung:
“Các giao dịch nonce lâu dài sẽ không xử lý đến khi các biện pháp giảm thiểu được áp dụng, và tính năng này sẽ được phục hồi hoạt động trong bản phát hành sắp tới”.
Sự cố lần thứ 5 diễn ra như thế nào?
Thuật ngữ “giao dịch nonce lâu dài” nói đến một loại giao dịch trên Solana, được thiết kế để không hết hạn, khác với giao dịch thông thường trên mạng lưới, thường có thời gian tồn tại ngắn hạn, chỉ khoảng 2 phút, trước khi một blockhash trở nên quá cũ để được xác thực
Theo tài liệu của Solana, giao dịch nonce lâu dài thường được dùng để hỗ trợ giao dịch gắn với dịch vụ lưu ký – đòi hỏi nhiều thời gian hơn so với bình thường “để sản xuất một chữ ký cho giao dịch”.
Solana Labs nhấn mạnh rằng các giao dịch nonce lâu dài đòi hỏi một “cơ chế để ngăn chặn quá trình xử lý kép và được xử lý theo thứ tự” riêng biệt.
Tuy nhiên, sự cố ngừng hoạt động xuất hiện trên nền tảng sau khi một giao dịch nonce lâu dài được xử lý như một giao dịch thường và thất bại, nhưng sau đó giao dịch tiếp tục được gửi lại, dẫn đến mạng lưới tạm dừng lại.
Báo cáo của Solana Labs còn cho biết:
“Sau khi giao dịch thất bại được xử lý, nhưng trước khi nonce được sử dụng lại, người dùng đã gửi lại giao dịch tương tự để xử lý. Sự gửi lại này đã kích hoạt lỗi trong thời gian chạy”.