#dusk $DUSK @Dusk
Tôi đã thấy các nhóm blockchain coi việc “kết nối mạng” như kiểu làm ống nước. Miễn là các khối cứ đến thì kiến trúc hiếm khi được chú ý nhiều.
Kadcast lại khiến tôi nhìn vào lớp đó theo một cách khác.
Dusk không chỉ dựa vào mô hình “nhận, lan truyền, lặp lại” theo cách thông thường. Kadcast tổ chức các peer thông qua một lớp phủ (overlay) có cấu trúc kiểu Kademlia, nhờ đó việc lan truyền tin nhắn có ý thức hơn về vị trí của các nút trong mạng. Nghe có vẻ như một chi tiết cài đặt nhỏ, nhưng nó thay đổi bài toán. Thay vì hy vọng đủ nhiều peer ngẫu nhiên sẽ lan đi một thông điệp nhanh chóng, giao thức đang cố gắng làm cho quá trình lan truyền trở nên có chủ đích hơn.
Điểm tôi thấy thú vị nhất là cách nó xử lý các mạng không hoàn hảo. Kadcast dùng UDP, vốn hi sinh một số đảm bảo về phân phối, rồi bổ sung dự phòng và sửa lỗi chuyển tiếp (forward error correction) để chịu được việc mất gói. Nói cách khác, nó không cố gắng làm cho mạng trở nên hoàn toàn đáng tin cậy. Nó thiết kế dựa trên giả định rằng mạng sẽ lộn xộn.
Cách nhìn đó với tôi còn hữu ích hơn nhiều.
Tin đồn (gossip) truyền thống có được phần lớn độ bền vững từ tính dư thừa. Có vẻ như Kadcast đẩy nhiều “trí tuệ” đó sang việc chọn peer và định tuyến tin nhắn. Đánh đổi là độ phức tạp. Một lớp phủ có cấu trúc giờ đây phải tự bảo vệ các bảng định tuyến, quá trình khám phá peer và giai đoạn bootstrap trước các tác nhân xấu (bad actors) và topology bất lợi.
Vì vậy, tôi ít quan tâm đến các chỉ số benchmark lan truyền thô.
Thử nghiệm thực sự là liệu Kadcast có thể giữ độ trễ ở mức có thể dự đoán khi các nút biến mất, các gói bị rơi, các peer cư xử tệ, và khi mạng ngày càng lớn hay không.
Lan truyền nhanh là hữu ích.
Lan truyền có thể dự đoán trong điều kiện chịu áp lực mới là thứ tôi thực sự muốn đo.
Tôi đã thấy các nhóm blockchain coi việc “kết nối mạng” như kiểu làm ống nước. Miễn là các khối cứ đến thì kiến trúc hiếm khi được chú ý nhiều.
Kadcast lại khiến tôi nhìn vào lớp đó theo một cách khác.
Dusk không chỉ dựa vào mô hình “nhận, lan truyền, lặp lại” theo cách thông thường. Kadcast tổ chức các peer thông qua một lớp phủ (overlay) có cấu trúc kiểu Kademlia, nhờ đó việc lan truyền tin nhắn có ý thức hơn về vị trí của các nút trong mạng. Nghe có vẻ như một chi tiết cài đặt nhỏ, nhưng nó thay đổi bài toán. Thay vì hy vọng đủ nhiều peer ngẫu nhiên sẽ lan đi một thông điệp nhanh chóng, giao thức đang cố gắng làm cho quá trình lan truyền trở nên có chủ đích hơn.
Điểm tôi thấy thú vị nhất là cách nó xử lý các mạng không hoàn hảo. Kadcast dùng UDP, vốn hi sinh một số đảm bảo về phân phối, rồi bổ sung dự phòng và sửa lỗi chuyển tiếp (forward error correction) để chịu được việc mất gói. Nói cách khác, nó không cố gắng làm cho mạng trở nên hoàn toàn đáng tin cậy. Nó thiết kế dựa trên giả định rằng mạng sẽ lộn xộn.
Cách nhìn đó với tôi còn hữu ích hơn nhiều.
Tin đồn (gossip) truyền thống có được phần lớn độ bền vững từ tính dư thừa. Có vẻ như Kadcast đẩy nhiều “trí tuệ” đó sang việc chọn peer và định tuyến tin nhắn. Đánh đổi là độ phức tạp. Một lớp phủ có cấu trúc giờ đây phải tự bảo vệ các bảng định tuyến, quá trình khám phá peer và giai đoạn bootstrap trước các tác nhân xấu (bad actors) và topology bất lợi.
Vì vậy, tôi ít quan tâm đến các chỉ số benchmark lan truyền thô.
Thử nghiệm thực sự là liệu Kadcast có thể giữ độ trễ ở mức có thể dự đoán khi các nút biến mất, các gói bị rơi, các peer cư xử tệ, và khi mạng ngày càng lớn hay không.
Lan truyền nhanh là hữu ích.
Lan truyền có thể dự đoán trong điều kiện chịu áp lực mới là thứ tôi thực sự muốn đo.
