Saltar al contenido principal

Proveedor de pubsub

Pubsub Provider es un servicio para operadores que ejecuta un relé de respaldo de pubsub compatible con Bitsocial junto con un nodo Kubo integrado. Los clientes modernos de Bitsocial, como 5chan y Seedit, usan de forma predeterminada redes peer-to-peer puras en el navegador, pero este servicio sigue siendo útil como vía de respaldo opcional para quienes desactivan el P2P en el navegador o para operadores que quieren ofrecer extremos públicos de compatibilidad.

Qué ejecuta

  • un proxy HTTP público para las rutas de pubsub, pasarela, proveedor de nombres y enrutamiento delegado
  • un nodo Kubo integrado con pubsub habilitado
  • un proveedor de enrutamiento HTTP delegado en /routing/v1/providers
  • métricas de Prometheus en /metrics
  • acceso opcional con autenticación básica a la API RPC completa de Kubo

Puertos

Los valores predeterminados se han elegido para que Pubsub Provider pueda ejecutarse junto a Bitsocial Seeder en el mismo VPS sin conflicto de puerto de swarm.

PropósitoPredeterminadoNotas
Proxy HTTP público8000 app, 80 host de DockerCambia PUBSUB_PROVIDER_HTTP_PORT para modificar el puerto del host.
Swarm de Kubo4002 TCP/UDPEvita el puerto de swarm 4001 que el seeder usa de forma predeterminada.
API de Kubo5001 solo localEl proxy la usa internamente.
Pasarela de Kubo8080 solo localEl proxy la usa internamente.

Instalación con Docker

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

Consulta los registros:

docker logs --follow pubsub-provider

Prueba el proxy:

curl http://127.0.0.1/commit-hash

Actualización

Si antes ejecutabas la antigua imagen latest, obliga a Compose a recrear el contenedor a partir de la imagen publicada y fijada:

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

Comprueba que se está ejecutando la imagen corregida:

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

Los registros deberían incluir using Kubo binary at /app/bin/ipfs y no deberían incluir downloading ipfs.

Ejecución junto a Bitsocial Seeder

Si el mismo host ejecuta también bitsocial-seeder, mantén Pubsub Provider en el puerto de swarm 4002 o en otro puerto distinto de 4001:

PUBSUB_PROVIDER_SWARM_PORT=4002 docker compose up -d

Así se evita el conflicto de puertos que se produce cuando dos nodos Kubo intentan enlazar a la vez TCP/UDP 4001.

Configuración

Sustituciones habituales de variables de entorno:

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=

Usa el proveedor como relé de respaldo, no como sustituto del P2P en el navegador. Mantén la infraestructura de tracker funcionando por separado cuando la red necesite capacidad dedicada de descubrimiento de pares.