Пути наименьшего сопротивления: представляем WFR-Gossip Кратко: WFR-Gossip применяет принципы оптимального транспорта к слою сплетен Ethereum. Он сохраняет устойчивость Gossipsub, одновременно сокращая пропускную способность на 50% и уменьшая задержку на 90-м процентиле на 40% в симуляциях.
Gossipsub в Ethereum надежен, но неэффективен. Узлы часто получают одно и то же сообщение много раз. Хорошо для устойчивости, но дорого в плане пропускной способности/задержки. WFR-Gossip использует другой подход: вдохновленный теорией оптимального транспорта, он пересылает сообщения по более быстрым путям. 👇
Классические сплетни рассматривают распространение как случайный процесс. WFR-Gossip переосмысляет это как массовый транспорт: сообщение похоже на кучу песка, а задержка — это стоимость его перемещения. Это естественно связано с теорией оптимального транспорта.
В сети сплетен: • перемещение массы = пересылка сообщения • создание массы = дублирование сообщения • уничтожение массы = удаление дубликата Метрика Вассерштейна-Фишера-Рао (WFR) это фиксирует, позволяя нам моделировать поток сообщений с физической интуицией.
Каждый узел использует простое правило: • Переадресация к нескольким одноранговым узлам с низкой задержкой (D₍robust₎ ≈ 3) • Для остальных пересылайте только в случае RTT_out < RTT_in Эта эвристика «вниз по наклонной» не требует глобальной координации. Просто местное время кругового пути (RTT), уже в libp2p.
При D_robust = 3 WFR-Gossip достигает: • ~98% охвата сети • на 50% меньше пропускной способности • на 40% ниже латентность 90-го процентиля Резервный вариант IHAVE/IWANT обрабатывает оставшиеся 2% пропущенных узлов.
WFR-Gossip не просто пересылает данные к самому быстрому узлу. Он сочетает в себе избыточность с фильтрацией: надежная случайная пропаганда + выборочная обрезка медленных путей. Это избегает узких мест и менее подвержено манипуляциям.
Это также минимально инвазивно: • Нет новых топологий • Совместимо с оценкой участников • Хорошо работает с CHOKE, IDONTWANT и т.д. • Использует только локальные правила и данные (RTT)
Что дальше? • Реализация в симуляторах libp2p • Тестирование в более реалистичных/враждебных условиях ранняя работа от @open_sourcery здесь:
Ссылка на пост: Ссылка на репозиторий githup для кода симуляции: Спасибо Лео Монсеньону, @casparschwa, @_julianma, @weboftrees, @raulvk, @yannvon, @cskiraly и @open_sourcery за отзывы и рецензии!
11,74K