Những con đường ít kháng cự nhất: Giới thiệu WFR-Gossip tldr: WFR-Gossip áp dụng các nguyên tắc vận chuyển tối ưu cho lớp gossip của Ethereum. Nó bảo toàn khả năng phục hồi của Gossipsub, đồng thời cắt băng thông xuống 50% và giảm 40% độ trễ phần trăm thứ 90 trong mô phỏng.
Gossipsub của Ethereum mạnh mẽ nhưng không hiệu quả. Các nút thường nhận được cùng một thông điệp nhiều lần. Tốt cho khả năng phục hồi, tốn kém về băng thông/độ trễ. WFR-Gossip có một cách tiếp cận khác: Lấy cảm hứng từ lý thuyết vận chuyển tối ưu, nó chuyển tiếp thông điệp theo các con đường nhanh hơn. 👇
Những câu chuyện phiếm cổ điển coi việc nhân giống như một quá trình ngẫu nhiên. WFR-Gossip định hình lại nó như một phương tiện giao thông đại chúng: một thông điệp giống như một đống cát, và độ trễ là chi phí để di chuyển nó. Điều này kết nối một cách tự nhiên với lý thuyết vận chuyển tối ưu.
Trong mạng tin đồn: • khối lượng di chuyển = chuyển tiếp tin nhắn • tạo khối lượng = sao chép một tin nhắn • Phá hủy khối lượng = rơi một bản sao Số liệu Wasserstein-Fisher-Rao (WFR) nắm bắt được điều này, cho phép chúng tôi mô hình hóa luồng thông điệp bằng trực giác vật lý.
Mỗi nút sử dụng một quy tắc đơn giản: • Chuyển tiếp đến một vài ngang hàng có độ trễ thấp (D₍robust₎ ≈ 3) • Đối với những người khác, chỉ chuyển tiếp nếu RTT_out < RTT_in Phương pháp phỏng đoán "xuống dốc" này không yêu cầu sự phối hợp toàn cầu. Chỉ là Thời gian khứ hồi (RTT) địa phương, đã có sẵn trong libp2p.
Ở D_robust = 3, WFR-Gossip đạt được: • ~98% vùng phủ sóng mạng • Băng thông ít hơn 50% • Độ trễ phần trăm thứ 90 thấp hơn 40% Dự phòng IHAVE / IWANT xử lý 2% các nút còn lại bị bỏ lỡ.
WFR-Gossip không chỉ chuyển tiếp đến ngang hàng nhanh nhất. Nó kết hợp dự phòng với lọc: lan truyền ngẫu nhiên mạnh mẽ + cắt tỉa có chọn lọc các đường đi chậm. Điều này tránh tắc nghẽn và ít bị thao túng hơn.
Nó cũng xâm lấn tối thiểu: • Không có cấu trúc liên kết mới • Tương thích với tính điểm ngang hàng • Chơi tốt với CHOKE, IDONTWANT, v.v. • Chỉ sử dụng các quy tắc và dữ liệu địa phương (RTT)
Điều gì tiếp theo? • Triển khai trong trình mô phỏng libp2p • Thử nghiệm trong điều kiện thực tế / đối nghịch hơn Công việc ban đầu của @open_sourcery tại đây:
Liên kết đến bài đăng: Liên kết đến repo githup cho mã mô phỏng: Cảm ơn Leo Monsaingeon, @casparschwa, @_julianma, @weboftrees, @raulvk, @yannvon, @cskiraly và @open_sourcery đã phản hồi và đánh giá!
11,92K