Перейти к основному содержанию

Bitsocial и Reticulum

Reticulum — это сетевой стек на основе криптографии для построения сетей поверх любых доступных средств связи: радиомодулей LoRa, пакетного радио, последовательных линий, Wi-Fi, Ethernet, TCP, UDP или I2P. О нём вспоминают рядом с Bitsocial, потому что оба убирают компанию-посредника. Но делают они это на разных уровнях, поэтому скорее дополняют друг друга, чем конкурируют.

Разные уровни​

Reticulum заменяет сетевой уровень. Он даёт приложениям зашифрованные маршрутизируемые конечные точки без IP-адресов, DNS, удостоверяющих центров и учётных записей и рассчитан на то, чтобы работать даже на каналах со скоростью 5 бит в секунду и MTU в 500 байт. Посты, сообщества и модерацию он не определяет: их добавляют приложения, построенные поверх него.

Bitsocial — это социальный протокол. Он работает на стеке IPFS/libp2p поверх обычных интернет-соединений, в том числе из вкладки браузера, и определяет сообщества, публикации и антиспам-проверки, которые задаёт каждое сообщество. См. P2P-протокол и P2P в браузере.

В стеке Bitsocial Reticulum занял бы примерно место libp2p, а не место протокола Bitsocial.

Как работает Reticulum​

  • Идентичности. Идентичность Reticulum — это 512-битный набор ключей: ключ X25519 для шифрования и ключ Ed25519 для подписей.
  • Точки назначения. Приложения создают точки назначения, адресуемые хешем SHA-256, усечённым до 16 байт. Пакеты не содержат адреса отправителя.
  • Анонсы. Точка назначения становится достижимой, когда рассылает анонс. Транспортные узлы пересылают его и запоминают следующий переход в обратную сторону, поэтому ни одному узлу не нужна карта всей сети.
  • Шифрование. Трафик шифруется по умолчанию; используются эфемерные ключи и прямая секретность.
  • LXMF. Слой обмена сообщениями LXMF добавляет подписанные сообщения, прямую доставку и доставку с промежуточным хранением через узлы распространения для получателей, которые не в сети.

Среди приложений, построенных таким образом, — Sideband для обмена сообщениями и Nomad Network для сообщений и размещённых страниц. В руководстве Reticulum ведётся список программ.

Сравнение​

ВопросReticulumBitsocial
Что этоСетевой стекСоциальный P2P-протокол и приложения
Для чего созданЛюбые средства связи, вплоть до медленных радиоканаловИнтернет-соединения, включая вкладки браузера
ИдентичностьНабор ключей X25519 и Ed25519Пары ключей Ed25519 для пользователей и сообществ
АдресаХеш идентичности и имени приложенияХеш открытого ключа сообщества
Поиск пираАнонсы, которые распространяют транспортные узлыHTTP-маршрутизаторы возвращают пиров-провайдеров
Социальные функцииДобавляются приложениями, например Nomad NetworkСообщества, посты, ответы и модерация заложены в протокол
Защита от спамаОграничение частоты анонсов на каждом интерфейсе; штампы proof-of-work в LXMF, которые может потребовать получатель или узелАнтиспам-проверка сообщества перед тем, как пост будет принят
Офлайн-доставкаУзлы распространения LXMF хранят и пересылают сообщенияПиры продолжают раздавать последнее состояние сообщества; для публикации его узел должен быть в сети

Может ли Bitsocial работать поверх Reticulum?​

Сейчас нет. У Bitsocial нет транспорта для Reticulum, а его модель данных рассчитана на пропускную способность интернета: клиент забирает у пиров метаданные сообщества и контент постов и обменивается сообщениями pubsub, а это плохо ложится на каналы, построенные вокруг 500-байтных пакетов и пропускной способности, которая измеряется битами или килобитами в секунду.

Реалистичный вариант скромнее: клиент, который без подключения к интернету работает через локальную mesh-сеть, а затем синхронизируется с остальной сетью Bitsocial, когда становится доступен пир или шлюз с выходом в интернет. Это был бы новый клиент и мост, а не изменение протокола, и в текущей дорожной карте такого нет.

Для разработчиков​

Reticulum распространяется под лицензией Reticulum: это условия в духе MIT плюс два ограничения. Программу нельзя использовать в системах, предназначенных для причинения вреда людям, или для создания обучающих наборов данных для ИИ и машинного обучения. Прочитайте лицензию, прежде чем включать код Reticulum в приложение Bitsocial.

Эталонная реализация написана на Python. Мейнтейнеры Reticulum предупреждают, что несколько неофициальных портов Reticulum и LXMF сгенерированы машиной и содержат заявления о лицензии, которые они считают недействительными, поэтому отдавайте предпочтение эталонной реализации или программам из списка в руководстве.