#dusk $DUSK @Dusk
Я видел, как команды, работающие с блокчейном, воспринимают сети как водопровод. Пока блоки приходят, архитектуре обычно не уделяют особого внимания.

Kadcast заставляет меня иначе смотреть на этот слой.

Dusk не полагается только на привычную модель «получи — разошли сплетнями — повтори». Kadcast организует узлы через структурированное оверлей-соединение в стиле Kademlia, так что распространение сообщений учитывает, где узлы находятся в сети. На первый взгляд это небольшая деталь реализации, но она меняет задачу. Вместо того чтобы надеяться, что достаточное число случайных пиров быстро разнесёт сообщение, протокол пытается сделать распространение более преднамеренным.

Самое интересное для меня — как он справляется с несовершенными сетями. Kadcast использует UDP, что означает отказ от некоторых гарантий доставки, а затем добавляет избыточность и прямую коррекцию ошибок, чтобы переживать потерю пакетов. Другими словами, он не пытается сделать сеть идеально надёжной. Он проектирует с учётом того, что сеть будет «грязной» и хаотичной.

Для меня это гораздо более полезная рамка.

Традиционное распространение сплетнями во многом обязано своей устойчивостью избыточности. Похоже, Kadcast переносит больше этой «интеллектуальности» в выбор пиров и маршрутизацию сообщений. Цена — сложность. Теперь структурированный оверлей должен защищать свои таблицы маршрутизации, процесс обнаружения пиров и процедуру загрузки от злоумышленников и неблагоприятной топологии.

Поэтому меня меньше интересуют «сырые» бенчмарки распространения.

Настоящая проверка — сможет ли Kadcast сохранять предсказуемую задержку, когда узлы исчезают, пакеты теряются, пиров ведут себя плохо и сеть становится больше.

Быстрое распространение полезно.

Предсказуемое распространение под нагрузкой — вот что я действительно хотел бы измерить.