Шляхи найменшого опору: знайомство з WFR-Gossip tldr: 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 ВФР-Пліткар досягає: • ~98% покриття мережі • На 50% менша пропускна здатність • На 40% нижча латентність 90-го процентиля Резервний варіант IHAVE/IWANT обробляє решту 2% пропущених вузлів.
WFR-Gossip – це не просто пересилання найшвидшому піру. Він поєднує в собі надмірність з фільтрацією: надійне випадкове поширення + вибіркова обрізка повільних стежок. Це дозволяє уникнути вузьких місць і менш схильний до маніпуляцій.
Він також є малоінвазивним: • Відсутність нових топологій • Сумісність з рівною оцінкою • Добре грає з CHOKE, IDONTWANT і т.д. • Використовує лише локальні правила та дані (RTT)
Що далі? • Реалізація в симуляторах libp2p • Тестування в більш реалістичних/змагальних умовах Ранні роботи @open_sourcery тут:
Посилання на допис: Посилання на репозиторій githup для коду симуляції: Дякуємо Leo Monsaingeon, @casparschwa, @_julianma, @weboftrees, @raulvk, @yannvon, @cskiraly та @open_sourcery за відгуки та огляди!
11,73K