Skip to content

Epic: Move staging to a dedicated Contabo VM (gateway + testnet Bee) #240

Description

@crtahlin

Epic: Move the staging environment to a dedicated VM on provider C (gateway + testnet Bee)

Today staging and production run on the same host and share the same Bee node. That coupling is the root of the propagation-debugging pain in #236: we could not tell whether staging upload failures were gateway bugs or node/connectivity problems, because staging experiments write to the same (mainnet) Bee that prod depends on. Testing Flow B (#225) there also means spending real xBZZ on every createBatch.

This epic stands up an isolated staging environment on its own VM on provider C — a Sepolia testnet Bee + the staging gateway on one box — so staging is fully decoupled from prod, free to test against (testnet funds), and inspectable (we control the host + logs).

A companion epic (#249) moves production to C after staging is proven.

Why this shape

  • A fresh, self-contained VM cleanly decouples staging from the shared prod host/Bee with no dependency on the current setup.
  • Light Bee, not full node: the gateway buys batches via the chain client and stamps are signed off-chain, so staging needs only upload/pushsync — a light node (no reserve disk, no BZZ stake) is sufficient and cheap.
  • Testnet = Sepolia (chain id 11155111) — the gateway's GNOSIS_CHAIN_ID=11155111 path already exists; an existing funded Sepolia signer wallet means no new real spend to test Flow A + Flow B end-to-end.

Networking is the thing to get right (the #236 lesson)

The old node showed networkAvailability=Unavailable (outbound-dial failures, likely IPv6 egress). On the new VM we control egress, so every Bee bring-up must verify: p2p port (1634) reachable, working IPv4 and IPv6 egress, connectedPeers climbing, and networkAvailability=Available — observable now via the debug proxy + /health node section — before any upload test is trusted.

Sub-issues

Dependency-ordered. The VM + Bee gate everything; the retests gate sign-off.

Acceptance criteria (epic)

  • Staging runs on its own VM; no shared Bee with production.
  • Staging Bee is a Sepolia light node with networkAvailability=Available and a healthy peer count.
  • dev pushes auto-deploy to the staging gateway via CI/CD (old shared-host dev deploy retired).
  • Staging gateway reachable over HTTPS on its own subdomain.
  • The full install is documented as a runbook reproducible for future installs (incl. prod).
  • Flow A (pre-signed chunks) verified end-to-end on staging: sign → POST /chunks → Bee accepts → retrievable.
  • Flow B verified end-to-end on staging: gateway createBatch(owner=…) → owner signs a stamp → upload via Flow A → retrievable; spend is testnet only.

Constraints / notes

  • Reuse the existing funded Sepolia signer wallet (keys held locally; never commit or paste keys/addresses into issues/PRs).
  • No secrets, IPs, hostnames, or provider-account details in this public repo — keep them in the private store referenced by the runbook.
  • Branch from dev; never push to dev/main directly. No customer/private data on the staging node.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestepicTracks a group of sub-issuesopsInfrastructure, deployment, monitoringp3Low priority — someday

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions