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

Pubsub Provider

Pubsub Provider — это операторский сервис, который поднимает совместимый с Bitsocial резервный pubsub-релей вместе со встроенным узлом Kubo. Современные клиенты Bitsocial, такие как 5chan и Seedit, по умолчанию работают в браузере через чистую одноранговую сеть, но этот сервис остаётся полезен как необязательный резервный путь для пользователей, отключивших браузерный P2P, и для операторов, которым нужны публичные точки входа для совместимости.

Что он запускает

  • публичный HTTP-прокси для маршрутов pubsub, шлюза, name-provider и делегированной маршрутизации
  • встроенный узел Kubo с включённым pubsub
  • провайдер делегированной HTTP-маршрутизации по пути /routing/v1/providers
  • метрики Prometheus по пути /metrics
  • необязательный доступ к полному Kubo RPC API по basic-auth

Порты

Значения по умолчанию выбраны так, чтобы Pubsub Provider мог работать на одном VPS рядом с Bitsocial Seeder без конфликта swarm-портов.

НазначениеПо умолчаниюПримечания
Публичный HTTP-прокси8000 в приложении, 80 на хосте DockerЗадайте PUBSUB_PROVIDER_HTTP_PORT, чтобы изменить порт на хосте.
Kubo swarm4002 TCP/UDPОбходит swarm-порт Kubo 4001, который сидер занимает по умолчанию.
Kubo API5001 только локальноИспользуется прокси внутри.
Kubo gateway8080 только локальноИспользуется прокси внутри.

Установка через Docker

git clone https://github.com/bitsocialnet/pubsub-provider.git
cd pubsub-provider
docker compose pull
docker compose up -d

Посмотреть логи:

docker logs --follow pubsub-provider

Проверить прокси:

curl http://127.0.0.1/commit-hash

Обновление

Если раньше вы использовали старый образ latest, заставьте Compose пересоздать контейнер из зафиксированного опубликованного образа:

git pull
docker compose down
docker compose pull
docker compose up -d --force-recreate

Убедитесь, что запущен исправленный образ:

docker inspect pubsub-provider --format 'image={{.Image}} restarts={{.RestartCount}}'
docker exec pubsub-provider /app/bin/ipfs version
curl http://127.0.0.1/commit-hash

В логах должна быть строка using Kubo binary at /app/bin/ipfs и не должно быть downloading ipfs.

Работа вместе с Bitsocial Seeder

Если на том же хосте запущен bitsocial-seeder, оставьте Pubsub Provider на swarm-порту 4002 или на любом другом, кроме 4001:

PUBSUB_PROVIDER_SWARM_PORT=4002 docker compose up -d

Так вы избежите конфликта портов, который возникает, когда два узла Kubo пытаются занять TCP/UDP 4001.

Конфигурация

Типичные переопределения переменных окружения:

PUBSUB_PROVIDER_HTTP_PORT=80
PUBSUB_PROVIDER_SWARM_PORT=4002
PUBSUB_PROVIDER_PORTS=8000
KUBO_RPC_URL=http://127.0.0.1:5001/api/v0
IPFS_GATEWAY_URL=http://127.0.0.1:8080
HTTP_ROUTER_URLS=https://example-router.invalid
PUBSUB_PROVIDER_ROUTING_STORE_PATH=
BASIC_AUTH_USERNAME=
BASIC_AUTH_PASSWORD=
IPFS_GATEWAY_USE_SUBDOMAINS=false
SHUTDOWN_KEY=
ETH_PROVIDER_URL=
ETH_PROVIDER_URL_WS=
SOL_PROVIDER_URL=

Используйте провайдер как резервный релей, а не как замену браузерному P2P. Инфраструктуру трекеров держите отдельно и не выключайте, когда сети нужна выделенная ёмкость для обнаружения узлов.