Аяксий's avatar
Аяксий 1 month ago
### Описание Scuttlebutt Secure Scuttlebutt (SSB), или просто Scuttlebutt, — это децентрализованный протокол peer-to-peer коммуникаций, mesh-сеть и экосистема для само-хостинга социальной сети, где каждый пользователь самостоятельно хостит свой контент на устройстве. В основе лежит база данных для неизменяемых (append-only) фидов сообщений, которые невозможно подделать, поскольку обновления возможны только от владельца фида. Протокол моделирует реальные социальные взаимодействия через механизм "сплетен" (gossip protocol), синхронизируя криптографически верифицированные фиды между узлами без центральных серверов. SSB ориентирован на оффлайн-работу: данные реплицируются локально и обмениваются при встречах узлов (например, по Wi-Fi или Bluetooth), не требуя постоянного интернета или реального времени, что делает его устойчивым к цензуре и отключениям. Идентичность пользователя — это криптографическая пара ключей, а социальная сеть строится на подписках на фиды друзей, с поддержкой сообщений, постов, чатов и даже Git-репозиториев. ### Реализация Реализация SSB строится вокруг создания, верификации и репликации фидов: пользователь генерирует фиды сообщений, подписывает их приватным ключом, а публичный ключ служит идентификатором. Синхронизация происходит через gossip: узлы обмениваются обновлениями фидов по запросу, используя эффективные алгоритмы вроде Plumtree для multicast-деревьев, чтобы минимизировать трафик. Криптография обеспечивает неизменяемость (Ed25519 для подписей), аутентификацию (Secret Handshake для безопасных каналов) и шифрование (NaCl/libsodium для метаданных и контента). RPC-команды (muxrpc) позволяют взаимодействовать с фидами, а репликация оптимизирована для p2p: узлы хранят только релевантные данные (свои и друзей), с lazy-push для эффективности. Основная логика реализована в JavaScript, с фокусом на модульность: библиотеки для фидов, индексации и сетевого стека. ### Технические требования Технические требования SSB минимальны, поскольку это легковесный p2p-протокол для локального хранения и обмена. На hardware: любой современный компьютер или мобильное устройство с 1 ГБ RAM и 100 МБ свободного места для базы (растет с фолловерами, ~1-10 МБ на 1000 постов). Нет жестких лимитов CPU/GPU, но репликация больших сетей требует стабильного соединения. Software: Node.js версии 10+ (рекомендуется LTS), ОС — Linux/macOS/Windows/Android/iOS через эмуляцию. Для полной функциональности нужен Tor-daemon (если используется onion), без интернета работает оффлайн. Нет зависимости от облаков; установка через npm, без pip или компиляции. Поддержка IPv6, но IPv4 по умолчанию; порт 8008 для репликации. ### Стек технологий Стек SSB преимущественно JavaScript/Node.js: core — ssb-server для запуска узла, ssb-db/ssb-db2 для хранения фидов (LevelDB-подобная база). Крипто: libsodium (Ed25519, XSalsa20). Сеть: TCP/UDP для muxrpc, Secret Handshake для TLS-like каналов. Дополнительно: pull-stream для асинхронных потоков, multiformats для адресов (ssb://). Для UI — Electron/React в клиентах вроде Patchwork. Нет фреймворков вроде Django; фокус на модулях npm (ssb-ref, ssb-ebt). Для мобильных — React Native в Manyverse. ### Интеграция с другими сетями SSB спроектирован как изолированный p2p-протокол, но поддерживает мосты и прокси для других сетей. С Tor: встроенная поддержка — узлы могут релеить сообщения через onion-сеть, если запущен TOR-daemon; это обеспечивает анонимность и доступ к .onion-эндпоинтам без изменения кода, просто настройка порта 9050. С Nostr: прямой интеграции нет, но есть сравнения и миграции — Nostr проще в онбординге (relay-based vs. gossip), некоторые проекты (как Nos) переходят с SSB на Nostr для лучшей масштабируемости, с возможностью импорта фидов через скрипты. С Matrix: отсутствует нативная интеграция, хотя оба децентрализованы (Matrix — federated серверы, SSB — чистый p2p); возможны мосты через кастомные боты или ReP2P-расширения для P2P-улучшения Matrix, но SSB остается отдельным для оффлайн-сценариев. С Simplex: нет упоминаний об интеграции — Simplex фокусируется на one-time адресах без ID, в отличие от ключевых фидов SSB; потенциал в прокси для анонимного обмена, но без готовых решений. ### Готовые решения со ссылками на репозитории Готовые решения SSB включают серверы, клиенты и библиотеки на GitHub. Основной сервер — ssb-server от ssbc (https://github.com/ssbc/ssb-server), но рекомендуется ssb-db2 для новой БД (https://github.com/ssbc/ssb-db2) — замена старой ssb-db с лучшей производительностью и индексацией. Библиотека для фидов и репликации — secure-scuttlebutt (https://github.com/staltz/secure-scuttlebutt), с инструментами для создания/верификации сообщений. Scuttlebot как gossip-сервер (https://github.com/marcbachmann/scuttlebot) для базовой репликации. Организация ssbc содержит общие libs (https://github.com/ssbc), включая sips для спецификаций протокола (https://github.com/ssbc/sips). Клиенты: Patchwork для десктопа (https://github.com/ssbc/patchwork) — UI для постов/чатов; Manyverse для мобильных (https://github.com/staltz/manyverse), оффлайн-дружественный. Туториал для новичков — ssb-tutorial (https://github.com/don-smith/ssb-tutorial). Для Git-интеграции — git-ssb (https://github.com/ssb-git/git-ssb). Все решения open-source под MIT/Apache, устанавливаются npm install.