docs(09): lock arena-as-relay architecture decision (decentralized framing, Foundation arena = default rendezvous)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-07-30 21:11:04 -04:00
parent de022b7b4e
commit 65d7edbd08

View File

@ -17,6 +17,16 @@ BotFights is a standalone app (separate repo) distributed to Archipelago nodes a
3. **BOT-03 — Shared public match endpoint on VPS2.** Every node's BotFights instance must use a public arena endpoint hosted on VPS2 (146.59.87.168, docker + nginx-proxy-manager; subdomains under `archipelago-foundation.org` available, pattern: new NPM proxy host + Let's Encrypt) **by default**, so all nodes see all fighters and battle across nodes. Node-local instance remains the runtime but match/fighter state is the shared public arena.
4. **BOT-04 — Registry/manifest update.** New app version: build + push new image to the vps2 registry, bump `apps/botfights/manifest.yml`, regenerate + re-sign + republish the signed catalog (catalog manifest overlay supremacy — disk edits don't apply to catalog-covered apps).
## Architecture Decision (user, 2026-07-30): Arena-as-relay
BOT-03 is built and DOCUMENTED as a decentralized "arena = nostr relay" model, per project philosophy:
- **Any node can host a public arena** — it is the same app image; a public arena is just a BotFights instance without `ARENA_UPSTREAM_URL` that others point at.
- **Each node chooses its arena community** via `ARENA_UPSTREAM_URL` (env/manifest); unset = standalone.
- **The Foundation's VPS2 arena (`http://146.59.87.168:9100`) is only the well-known default**, like the vps2 FIPS anchor — a rendezvous, not an authority. Nothing in the code hardcodes a center.
- The game UI is always served from the user's own node; only match/fighter state lives on the chosen arena.
- The unified AI prompt + docs (BOT-02) and `docs/arena-deployment.md` MUST present it this way, including "how to host your own arena" as a first-class section.
- Later phase (roadmap note): nostr-event-based fighter/arena discovery across multiple arenas.
## Claude's Discretion
- Exact architecture for BOT-03 (thin-client mode vs sync/federation protocol) — chosen during planning based on research; bias toward the simplest thing that makes "all nodes see all fighters" true.