Báo cáo ngừng hoạt động của mạng lưới Solana và các biện pháp giải quyết

04-30-22 Solana Mainnet Beta Outage Report and Mitigation

Vào khoảng 20:30 UTC vào Thứ Bảy, ngày 30 tháng 4, cụm Mainnet Beta của Solana đã ngừng sản xuất các khối do sự đồng thuận bị đình trệ. Trong bảy giờ tiếp theo, các người quản lí vaidator đã làm việc để xác định điểm xử lí xa nhất và cùng nhau tiến hành khởi động lại mạng. Quá trình sản xuất khối được tiếp tục vào lúc 03:30 UTC vào Chủ nhật, ngày 1 tháng 5 và các nhà khai thác mạng tiếp tục khôi phục các dịch vụ khách hàng trong vài giờ tới.

Điều gì gây ra sự cố này?

Một lượng lớn giao dịch gửi đến (6 triệu mỗi giây) làm tràn ngập mạng, vượt qua 100 Gbps lưu lượng truy cập tại các node. Không có bằng chứng về một cuộc tấn công từ chối dịch vụ, nhưng thay vào đó bằng chứng cho thấy các bot đã cố gắng giành chiến thắng trong một chương trình đúc ra NFT mới sử dụng chương trình Candy Machine. Vì giá đúc có sàn cố định và không phải là một cuộc đấu giá, người dùng đầu tiên gửi giao dịch đến sẽ nhận được NFT, điều này tạo ra việc gửi một số lượng lớn giao dịch với hy vọng thắng được NFT. Lý do cụ thể khiến sự đồng thuận bị đình trệ là do các Validator bị hết bộ nhớ và bị lỗi. Nguyên nhân sâu xa của việc sử dụng bộ nhớ cao là do không đủ lượng bỏ phiếu để hoàn thiện các block trước đó, ngăn việc xóa các fork bị bỏ. Số lượng fork mà một Validator phải đánh giá vượt quá khả năng của nó để xử lí, ngay cả sau khi khởi động lại, do đó cần can thiệp thủ công.

Những gì đang được thực hiện?

Kể từ đầu tháng 1, Solana đã gặp phải các vấn đề tắc nghẽn không liên tục do hoạt động của bot nhắm vào việc đúc NFT. Sự cố ngừng hoạt động trước đó của Mainnet Beta xảy ra vào tháng 9 năm 2021 và kéo dài trong 17 giờ. Sự cố ngừng hoạt động của ngày 30 tháng 4 giống với sự ngừng hoạt động của tháng 9, nhưng mạng lần này vẫn tiếp tục hoạt động ngay cả khi khối lượng yêu cầu giao dịch đạt 10.000% so với tháng 9, do các cập nhật tốt của cộng đồng Validator.

Việc phát hành phiên bản beta v1.10, hiện đang ổn định trên Testnet, bao gồm các cải tiến sử dụng bộ nhớ để kéo dài thời gian các node có thể chịu được sự đồng thuận chậm hoặc bị đình trệ. Các node thử nghiệm chạy v1.10 được triển khai trên Mainnet Beta đã tiếp tục cho 2000 vị trí bổ sung ngoài các peer tương tự ở v1.9. Ba biện pháp giảm thiểu đang được thực hiện để giải quyết sự ổn định và khả năng phục hồi của mạng là:

  1. QUIC – Ngày nay, Solana sử dụng giao thức dựa trên UDP để chuyển giao dịch giữa RPC node và Leader hiện tại. Vì UDP không kết nối và thiếu cả kiểm soát luồng cũng như xác nhận bên nhận, nên không có cách nào có ý nghĩa để ngăn cản hoặc giảm thiểu hành vi lạm dụng. Để ảnh hưởng đến việc kiểm soát lưu lượng mạng, các giao thức cốt lõi của Solana đang được hoàn thiện lại trên QUIC, một giao thức do Google xây dựng, được thiết kế cho giao tiếp không đồng bộ nhanh như UDP, nhưng với phiên và kiểm soát luồng như TCP. Sau khi được thông qua, sẽ có nhiều tùy chọn khác có sẵn để điều chỉnh và tối ưu hóa quá trình nhập dữ liệu.
  2. Stake-weighted transaction QoS : Ưu tiên giao dịch dựa trên số lượng stake

    Băng thông mạng của Leader có dung lượng cố định và để sử dụng hiệu quả nó, sự ưu tiên là điều bắt buộc cần có để ngừng việc chấp nhận giao dịch bừa bãi hiện theo kiểu “ai đến trước được phục vụ trước” mà không cần quan tâm đến nguồn gửi. Vì Solana là một mạng PoS, việc sử dụng “tỷ trọng cổ phần” (stake-weighted) với việc ưu tiên giao dịch là một lựa chọn tự nhiên. Theo mô hình này, một node có 0,5% cổ phần sẽ có quyền truyền ít nhất 0,5% gói tin cho Leader và phần còn lại của mạng. Stake-weighted song song phát triển với QUIC ngày nay, Stake-weighted sẽ mạnh mẽ hơn khi kết hợp với QUIC.

  3. Fee-based execution priority: Ưu tiên thực hiện giao dịch dựa trên phí.

    Các giao dịch vẫn có thể tranh chấp để nhanh chóng chia sẻ dữ liệu. Sự tranh chấp này hiện tại được giải quyết bằng cách đơn giản ai đến trước được phục vụ trước tương tự như dữ liệu mạng, khiến người dùng không có cách nào để thể hiện mức độ khẩn cấp của việc thực hiện giao dịch của họ. Bởi vì bất kỳ ai cũng có thể gửi giao dịch đến mạng lưới, stake-weighted không phù hợp để dùng thể hiện mức độ ưu tiên. Thay vào đó, một hướng dẫn mới đang được đưa vào chương trình Compute Budget, cung cấp cho người dùng khả năng chỉ định “phí bổ sung” tùy ý sẽ được thu khi thực hiện giao dịch và đưa nó vào một khối. Phí này yêu cầu các đơn vị tính toán sẽ sử lí giao dịch này trước . Phí bổ sung sẽ được xử lý giống như phí cơ sở như hiện tại.

Các khoản phí sẽ đến với Solana

Phí trên Solana không giống như trên Ethereum. Trên Solana, có ít sự cạnh tranh về không gian khối hơn là khả năng ghi vào một phần trạng thái cụ thể, chẳng hạn như hợp đồng đúc một NFT. Các giao dịch Solana không tương tác với tất cả trạng thái Solana, thay vào đó chúng chỉ định trạng thái nào họ cần đọc và trạng thái nào họ cần viết. Các lần đọc có thể chồng chéo và song song, không thể ghi. Đây thường được gọi là vấn đề “điểm phát sóng” cơ sở dữ liệu, mà các cuộc đấu giá trạng thái được thiết kế để giải quyết. Ví dụ, nếu có 10 giây giá trị công việc cần được viết trong cùng một trạng thái, nhưng lượng thời gian là 1 giây, thì cần có một cơ chế nào đó ưu tiên công việc nào được hoàn thành và công việc nào không thành công. Vì các giao dịch được đóng gói thành các khối theo mức độ ưu tiên “đơn vị tính phí / phí cao nhất”, các giao dịch trả tiền cao hơn sẽ được ghi đầu tiên nếu các validator hành động vì lợi ích của họ.

Để so sánh, Ethereum sử dụng thị trường phí để phân bổ một cùng một nguồn tài nguyên khan hiếm, đó là không gian khối. Mức độ ưu tiên phí của Solana chỉ nên tác động đến trạng thái cụ thể chứ không phải toàn bộ khối. Điều này tạo ra một hệ thống giống như ‘phí khu vực tiếp theo’ thay vì ‘phí toàn cầu.’ được lên lịch cho khối tiếp theo, nhưng các giao dịch khác tương tác với các tài khoản khác vẫn có thể được thêm vào cùng một khối, ngay cả khi họ đang trả phí thấp hơn. Việc ưu tiên phí đang được tiến hành và được nhắm mục tiêu cho bản phát hành v1.11.

Theo tin của Solana.com

 

Coin79 – kênh thông tin thị trường tiền mã hoá đa ngôn ngữ (tiếng Việt, tiếng Anh và tiếng Thái) duy nhất tại Việt Nam, đảm bảo tính cập nhật và chính xác.

Tham Gia Các Cộng Đồng Của Coin79

Hotline Chat Zalo Telegram Group