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 ведётся список программ.
Сравнение
| Вопрос | Reticulum | Bitsocial |
|---|---|---|
| Что это | Сетевой стек | Социальный 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 сгенерированы машиной и содержат заявления о лицензии, которые они считают недействительными, поэтому отдавайте предпочтение эталонной реализации или программам из списка в руководстве.