Điều gì xảy ra với một khoản thanh toán Rayls nếu các validator gặp sự cố giữa chừng?

Tôi đã biên dịch Axyl, ứng dụng khách đồng thuận của Rayls, từ mã nguồn, chạy 4 validator trên laptop và làm chúng gặp sự cố trong lúc các khoản thanh toán đang được xử lý.

Một validator ngừng hoạt động: cả 240/240 khoản thanh toán đều được hoàn tất. Thời gian tạm dừng lâu nhất là 2,58 giây.

Hai validator ngừng hoạt động: chuỗi dừng lại cho đến khi chúng hoạt động trở lại. Một node vẫn chấp nhận khoản thanh toán của tôi sau 15 mili giây mà không báo lỗi, và khoản thanh toán được hoàn tất 41 giây sau đó. Cả 45 khoản thanh toán được gửi trong những đợt gián đoạn đó đều được hoàn tất, từ 8 đến 69 giây sau khi gửi.

Gửi cùng một nonce đến hai validator, 24 lần: cả hai đều trả về một hash, nhưng chỉ một khoản thanh toán được hoàn tất. Không xảy ra chi tiêu kép.

Vậy nên, với thiết lập này, mạng bị đình trệ chứ không phân nhánh. Bài học cho các ứng dụng: nhận được hash không có nghĩa là đã thanh toán.

Trên testnet công khai, 150 khoản thanh toán có thời gian trung vị từ lúc gửi đến khi nhận biên nhận là 2,44 giây, theo ghi nhận từ một client. Con số này bao gồm khoảng 0,4 giây cho thời gian khứ hồi của mạng.

Giới hạn: chỉ dùng một laptop, chỉ thử nghiệm bằng cách làm hệ thống gặp sự cố, mẫu nhỏ, không có khoản thanh toán nào trên mainnet. Một validator khởi động lại đã bị lệch trạng thái trong một lần chạy ban đầu khá lộn xộn. Tôi không thể tái hiện sự cố đó và đã báo riêng cho Rayls.

Dữ liệu và mã nguồn: https://github.com/anshxft/rayls-axyl-failure-tests

Đây không phải lời khuyên tài chính.+