Перевод I2P/Tor «белый шум»

Тема в разделе "Статьи", создана пользователем TheFuzzStone, 8 авг 2019.

  1. TheFuzzStone

    Команда форума Администратор Модератор

    Регистрация:
    18 авг 2017
    Сообщения:
    217
    Симпатии:
    61
    Это добавит «белый шум», предложенный во второй части моего CCS. Что также приближает monerod к Dandelion++ (есть код, который может быть разделен между функциями). К сожалению, это не завершает вторую часть моего CCS, одной из предложенных целей было создание отдельного мемпула (также необходимого для Dandelion++). Это будет сделано в надежде на то, что скоро будет выпущен патч - взлом мемпула достоин отдельного анализа. Также метка времени в p2p протоколе не была очищена (не обязательно для CCS).

    Для завершения Dandelion+++ понадобится:
    • Отдельный мемпул (указан в моем CCS)
    • Обнаружение контура (в основном дополняется отдельным мемпулом)
    • Поддержка отправки транзакций в режиме «стебля»
    • Переход от «флуда» к «пушинке» (см. технический документ и/или реализацию Bitcoin).
    Последние два должны быть значительно проще в реализации после этого патча. Часть стебля в основном реализована и протестирована, теперь требуется только соединение между этими частями. Любой, кто хочет это проверить, может обратиться к разделу test/unit_tests/levin.cpp, тестовый фреймворк должен облегчить тестирование выбора стебля и т.д.

    Код:
    byte_slice
    Я также представил golang-подобную концепцию «среза» для байтов данных, чтобы «белый шум» мог быть увеличен, а не постоянно копировался для каждого соединения. Это также позволило снять блокировку для каждого отправляемого p2p-сообщения. Я не измерял его, но уверен, что это повысит эффективность трансляции транзакции и в конечном итоге заблокирует её повторную ретрансляцию (каждое p2p сообщение генерируется раз, а не копируется повторно).

    Отличия от CCS

    Этот патч также отличается от предложения в CCS и моей речи на Monerokon. Может понадобиться еще один markdown-файл, но:
    • Два исходящих соединения I2P/Tor выбираются для белого шума каждые 5 минут.
    • Каждые 10-15 секунд по этим ссылкам отправляется 3 килобайта фиктивного сообщения или фрагмента транзакции.
    • Скрытая служба I2P/Tor, которая получает транзакцию, немедленно передает её по сети общего пользования, а не с задержкой. Это происходит потому, что Dandelion++ предпочтительнее, чем произвольная задержка (Dandelion++ имеет «стеблевую» фазу, а затем «пушистую» фазу, которая уже имеет некоторое время ожидания).
    Я думаю, что эти изменения оправданны, хотя последний из них спорный. Я изменил его, потому что, как только стало очевидно, что Dandelion++ будет встроен в monerod, стало проще работать «внутри» этого дизайна, а не делать что-то другое. Я оставляю это на усмотрение CCS, чтобы решить, должны ли средства быть выплачены - это может означать, что для выполнения задачи мне придется выполнить Dandelion++.

    Источник: I2P/Tor White Noise #5793

    Перевод:
    TheFuzzStone (@TheFuzzStone)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.