#dusk $DUSK
Cụm từ "chế độ khẩn cấp" cứ liên tục xuất hiện trong whitepaper của Dusk, và tôi cứ bỏ qua nó. Khi tôi thực sự đọc phần đó, cơ chế này cụ thể hơn nhiều so với cái tên gợi ý.
Đồng thuận thông thường của Dusk: mỗi vòng chạy tối đa 50 lần lặp. Mỗi bước, Đề xuất (Proposal), Xác thực (Validation), Xác nhận (Ratification) đều có thời hạn (timeout). Nếu trước thời hạn mà không hình thành đủ số lượng (quorum), bước sẽ được chuyển sang, và cuối cùng một vòng lặp mới bắt đầu. Trình tự, có giới hạn, và có thể dự đoán.
Chế độ khẩn cấp thì khác. Nó được kích hoạt sau 16 lần lặp thất bại liên tiếp — trong đó thất bại nghĩa là không đạt được quorum, thường là vì các validator đang offline hoặc bị cô lập. Khi đã kích hoạt: các timeout của bước sẽ bị tắt. Các vòng lặp mới được khởi tạo, nhưng mỗi vòng lặp đang diễn ra vẫn tiếp tục hoạt động thay vì đóng lại. Nhiều vòng lặp đang mở chạy song song. Điều này làm tăng cơ hội tạo được một block. Nó cũng làm tăng khả năng xảy ra fork.
Các fork trong chế độ khẩn cấp được xử lý bằng cách chọn block thuộc vòng lặp có số thứ tự thấp nhất. Nếu mạng vẫn không thể tạo block, phương án cuối cùng là một emergency block: một block rỗng, không có giao dịch, được Dusk (thực thể) ký bằng khóa công khai toàn cục của nó. Các provisioner nắm giữ đa số cổ phần (stake) yêu cầu điều này.
Vậy tại sao mạng không chỉ chạy chế độ khẩn cấp bất cứ khi nào cần nhanh hơn.
Chế độ bình thường đánh đổi một phần tốc độ để đổi lấy tính hoàn tất (finality) rõ ràng hơn. Các vòng lặp mở đồng thời giúp tăng tính sống (liveness) khi chịu áp lực nhưng đồng thời đưa thêm độ phức tạp. Cơ chế fallback cho block rỗng là một can thiệp mang tính tập trung — chuỗi vẫn tiếp tục chạy, nhưng chính Dusk (thực thể) là người đang thúc nó.
Tôi thấy câu hỏi thiết kế về emergency block còn thú vị hơn — vì điều đó có nghĩa là bảo đảm liveness cuối cùng phụ thuộc vào sự sẵn sàng và ý chí của thực thể Dusk trong việc ký. An toàn giao thức (protocol safety) và phi tập trung (decentralization) kéo theo hai hướng hơi khác nhau tại đó.
Thứ tôi chưa thấy được giải thích là điều gì xảy ra với các giao dịch đang “trong chuyến bay” khi một emergency block thay thế một block bình thường — liệu chúng có được đưa lại vào vòng tiếp theo hay bị loại bỏ. @Dusk
$DUSK #dusk
Cụm từ "chế độ khẩn cấp" cứ liên tục xuất hiện trong whitepaper của Dusk, và tôi cứ bỏ qua nó. Khi tôi thực sự đọc phần đó, cơ chế này cụ thể hơn nhiều so với cái tên gợi ý.
Đồng thuận thông thường của Dusk: mỗi vòng chạy tối đa 50 lần lặp. Mỗi bước, Đề xuất (Proposal), Xác thực (Validation), Xác nhận (Ratification) đều có thời hạn (timeout). Nếu trước thời hạn mà không hình thành đủ số lượng (quorum), bước sẽ được chuyển sang, và cuối cùng một vòng lặp mới bắt đầu. Trình tự, có giới hạn, và có thể dự đoán.
Chế độ khẩn cấp thì khác. Nó được kích hoạt sau 16 lần lặp thất bại liên tiếp — trong đó thất bại nghĩa là không đạt được quorum, thường là vì các validator đang offline hoặc bị cô lập. Khi đã kích hoạt: các timeout của bước sẽ bị tắt. Các vòng lặp mới được khởi tạo, nhưng mỗi vòng lặp đang diễn ra vẫn tiếp tục hoạt động thay vì đóng lại. Nhiều vòng lặp đang mở chạy song song. Điều này làm tăng cơ hội tạo được một block. Nó cũng làm tăng khả năng xảy ra fork.
Các fork trong chế độ khẩn cấp được xử lý bằng cách chọn block thuộc vòng lặp có số thứ tự thấp nhất. Nếu mạng vẫn không thể tạo block, phương án cuối cùng là một emergency block: một block rỗng, không có giao dịch, được Dusk (thực thể) ký bằng khóa công khai toàn cục của nó. Các provisioner nắm giữ đa số cổ phần (stake) yêu cầu điều này.
Vậy tại sao mạng không chỉ chạy chế độ khẩn cấp bất cứ khi nào cần nhanh hơn.
Chế độ bình thường đánh đổi một phần tốc độ để đổi lấy tính hoàn tất (finality) rõ ràng hơn. Các vòng lặp mở đồng thời giúp tăng tính sống (liveness) khi chịu áp lực nhưng đồng thời đưa thêm độ phức tạp. Cơ chế fallback cho block rỗng là một can thiệp mang tính tập trung — chuỗi vẫn tiếp tục chạy, nhưng chính Dusk (thực thể) là người đang thúc nó.
Tôi thấy câu hỏi thiết kế về emergency block còn thú vị hơn — vì điều đó có nghĩa là bảo đảm liveness cuối cùng phụ thuộc vào sự sẵn sàng và ý chí của thực thể Dusk trong việc ký. An toàn giao thức (protocol safety) và phi tập trung (decentralization) kéo theo hai hướng hơi khác nhau tại đó.
Thứ tôi chưa thấy được giải thích là điều gì xảy ra với các giao dịch đang “trong chuyến bay” khi một emergency block thay thế một block bình thường — liệu chúng có được đưa lại vào vòng tiếp theo hay bị loại bỏ. @Dusk
$DUSK #dusk

