Vậy nên tôi hoàn toàn hiểu $DUSK sử dụng một thứ gọi là Kadcast làm giao thức chính để lan truyền các khối, giao dịch và phiếu bầu đồng thuận trên toàn mạng. Đây không phải là thứ được xây dựng từ con số không; thực ra nó lấy khá nhiều cảm hứng từ cách thiết lập bảng băm phân tán (distributed hash table) của Kademlia, đặc biệt là khái niệm khoảng cách XOR. Nói đơn giản, thay vì chỉ “quăng” tin nhắn lên mọi hàng xóm như các giao thức gossip kiểu cũ, nó thông minh hơn: nó truyền dữ liệu qua các đường đi được cấu trúc theo cách nhất định, thông qua những peer được chọn.
Phân rã một chút:
Mỗi nút đều có định danh riêng, và khoảng cách XOR giữa các nút quyết định cách các peer được tổ chức xoay quanh nhau.
Các peer không chỉ được kết nối ngẫu nhiên; chúng được gom vào cái gọi là các “routing buckets” (nhóm định tuyến), dựa trên việc chúng cách một nút bao xa.
Khi cần lan truyền một tin nhắn, nó không được gửi đến tất cả mọi người cùng lúc—thay vào đó, nó được chuyển tiếp thông qua một tập hợp peer được chọn, chứ không phải kiểu phát tràn (flooding) toàn bộ mạng.
Vì mỗi bucket chứa nhiều hơn một peer, nên có một “lưới an toàn”: nếu một peer rời đi hoặc thất bại, vẫn còn các đường khác sẵn sàng để mang tin nhắn tiếp tục đi.
Cũng có một lớp bảo mật tích hợp sẵn: các tin nhắn được ký, và trước khi bất cứ thứ gì được chuyển tiếp tiếp, chữ ký đó được kiểm tra. Điều này giúp ngăn các kẻ xấu can thiệp vào cách dữ liệu lan truyền.
Và xét về hiệu năng thực tế, @Dusk đã báo cáo rằng thiết lập này cắt giảm việc sử dụng băng thông khoảng 25–50% so với các giao thức gossip thông thường. Tuy vậy, cũng nên lưu ý rằng con số này đến từ các bài kiểm thử và tuyên bố thiết kế của Dusk—nó không phải là một cam kết cố định chắc chắn sẽ luôn đúng trong mọi thiết lập hay mọi điều kiện ngoài thực tế. #dusk
Phân rã một chút:
Mỗi nút đều có định danh riêng, và khoảng cách XOR giữa các nút quyết định cách các peer được tổ chức xoay quanh nhau.
Các peer không chỉ được kết nối ngẫu nhiên; chúng được gom vào cái gọi là các “routing buckets” (nhóm định tuyến), dựa trên việc chúng cách một nút bao xa.
Khi cần lan truyền một tin nhắn, nó không được gửi đến tất cả mọi người cùng lúc—thay vào đó, nó được chuyển tiếp thông qua một tập hợp peer được chọn, chứ không phải kiểu phát tràn (flooding) toàn bộ mạng.
Vì mỗi bucket chứa nhiều hơn một peer, nên có một “lưới an toàn”: nếu một peer rời đi hoặc thất bại, vẫn còn các đường khác sẵn sàng để mang tin nhắn tiếp tục đi.
Cũng có một lớp bảo mật tích hợp sẵn: các tin nhắn được ký, và trước khi bất cứ thứ gì được chuyển tiếp tiếp, chữ ký đó được kiểm tra. Điều này giúp ngăn các kẻ xấu can thiệp vào cách dữ liệu lan truyền.
Và xét về hiệu năng thực tế, @Dusk đã báo cáo rằng thiết lập này cắt giảm việc sử dụng băng thông khoảng 25–50% so với các giao thức gossip thông thường. Tuy vậy, cũng nên lưu ý rằng con số này đến từ các bài kiểm thử và tuyên bố thiết kế của Dusk—nó không phải là một cam kết cố định chắc chắn sẽ luôn đúng trong mọi thiết lập hay mọi điều kiện ngoài thực tế. #dusk