Пути наименьшего сопротивления: знакомство с 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% меньшая пропускная способность • Снижение задержки 90-го процентиля на 40% Резервный вариант IHAVE/IWANT обрабатывает оставшиеся 2 % пропущенных узлов.
WFR-Gossip — это не просто переадресация на самый быстрый одноранговый узел. Он сочетает в себе избыточность с фильтрацией: устойчивое случайное распространение + выборочная обрезка медленных путей. Это позволяет избежать узких мест и менее подвержено манипуляциям.
Он также минимально инвазивный: • Отсутствие новых топологий • Совместимость с одноранговой оценкой • Хорошо играет с CHOKE, IDONTWANT и т.д. • Использует только локальные правила и данные (RTT)
Что дальше? • Реализация в симуляторах libp2p • Тестирование в более реалистичных/состязательных условиях Ранние работы @open_sourcery здесь:
Ссылка на пост: Ссылка на репозиторий githup для кода моделирования: Спасибо Лео Монсенжону, @casparschwa, @_julianma, @weboftrees, @raulvk, @yannvon, @cskiraly и @open_sourcery за отзывы и обзоры!
11,92K