Passa al contenuto principale

Pubsub Provider

Pubsub Provider è un servizio per operatori che permette di eseguire un relay pubsub di ripiego compatibile con Bitsocial, con un nodo Kubo integrato. I client Bitsocial moderni come 5chan e Seedit usano per impostazione predefinita il networking peer-to-peer puro nel browser, ma questo servizio resta utile come percorso alternativo opzionale per gli utenti che disattivano il P2P nel browser o per gli operatori che vogliono offrire endpoint pubblici di compatibilità.

Che cosa esegue

  • un proxy HTTP pubblico per le rotte pubsub, gateway, name-provider e routing delegato
  • un nodo Kubo integrato con il pubsub abilitato
  • un provider di routing HTTP delegato su /routing/v1/providers
  • metriche Prometheus su /metrics
  • accesso opzionale con basic auth all'intera API RPC di Kubo

Porte

I valori predefiniti sono scelti in modo che Pubsub Provider possa girare accanto a Bitsocial Seeder sullo stesso VPS senza conflitti sulla porta swarm.

ScopoPredefinitoNote
Proxy HTTP pubblico8000 app, 80 host DockerImposta PUBSUB_PROVIDER_HTTP_PORT per cambiare porta host.
Swarm Kubo4002 TCP/UDPEvita la porta swarm Kubo predefinita del seeder, 4001.
API Kubo5001 solo localeUsata internamente dal proxy.
Gateway Kubo8080 solo localeUsato internamente dal proxy.

Installazione con Docker

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

Controlla i log:

docker logs --follow pubsub-provider

Verifica il proxy:

curl http://127.0.0.1/commit-hash

Aggiornamento

Se in precedenza usavi la vecchia immagine latest, obbliga Compose a ricreare il container a partire dall'immagine pubblicata e fissata a una versione:

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

Verifica che sia in esecuzione l'immagine corretta:

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

I log dovrebbero contenere using Kubo binary at /app/bin/ipfs e non dovrebbero contenere downloading ipfs.

Esecuzione insieme a Bitsocial Seeder

Se lo stesso host esegue anche bitsocial-seeder, tieni Pubsub Provider sulla porta swarm 4002 o su un'altra porta diversa da 4001:

PUBSUB_PROVIDER_SWARM_PORT=4002 docker compose up -d

In questo modo si evita il conflitto che si verifica quando due nodi Kubo provano entrambi a occupare la porta TCP/UDP 4001.

Configurazione

Variabili d'ambiente sovrascritte più di frequente:

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 il provider come relay di ripiego, non come sostituto del P2P nel browser. Continua a gestire separatamente l'infrastruttura dei tracker quando la rete ha bisogno di capacità dedicata per la scoperta dei peer.