AI Initiative logoAI Initiative
Reading room / Manthan

Manthan Testnet (Phase 4)

Manthan Testnet (Phase 4). Covers What's here; Run the testnet (local-service); Inspect the running testnet; Health and readiness.

Project explanation / technical method
This is the retained source text, not a new validation of its claims. Numerical results and comparative claims require the accompanying source review before public reuse.

Read the connected case study or article →

Not explicitly stated in source · Date not established

Provenance, authorship and editorial notes

Manthan Testnet (Phase 4)

Id

manthan-herald-protocol-services-testnet-readme

Project

Manthan

Source path

manthan/herald-protocol/services/testnet/README.md

Source sha256

1571c7f3bed40a5f90651b2bce96b588c4e7f782303680997ec13aba33a29c96

Local copy sha256

1571c7f3bed40a5f90651b2bce96b588c4e7f782303680997ec13aba33a29c96

Repo head

3a94084024a3434cef331fecac91c2c3b43f0313

Date
Not recorded
Date basis

Original publication date not established; Git revision date retained separately.

Author

Not explicitly stated in source

Author basis

Unknown; Git committer not substituted for document author.

Last source commit

8b75d1b0157c20a0a463f0e31008ef9f73099beb

Last source commit date

2026-06-08T07:40:14Z

Document status

Project explanation / technical method

Summary

Manthan Testnet (Phase 4). Covers What's here; Run the testnet (local-service); Inspect the running testnet; Health and readiness.

Topics
  • Exploration architecture and selection
  • What's here
  • Run the testnet (local-service)
  • Inspect the running testnet
Theme

Exploration architecture and selection

Priority

deep

Related ids
  • manthan-readme
  • manthan-docs-architecture
  • manthan-docs-business-overview
  • manthan-docs-demo-walkthrough
  • manthan-docs-principles
  • manthan-docs-qd-measurement-direction-plan
  • manthan-docs-swarm-evolution-integration
Evidence concerns
  • Recovered source text is preserved verbatim. Assertions, comparisons, commands and results belong to its original context; they were not re-executed or externally re-verified during this corpus review.
Word count

1036

Bytes

8052

Source relative

herald-protocol/services/testnet/README.md

Remote mirror

manthan/herald-protocol/services/testnet/README.md

Full text preserved

True

Manthan Testnet (Phase 4)

Phase-4 testnet per the platform tracker. Three Manthan nodes (genesis-alpha, genesis-beta, genesis-gamma) running locally with filled-in Charter / LOTS / privacy-policy / observability / incident runbook. Localhost is the dev stage; AWS is the production target.

What's here

PathContents
nodes/genesis-{alpha,beta,gamma}/charter.mdFilled-in operator Charter per R-203 (T-335)
nodes/genesis-{alpha,beta,gamma}/lots.mdFilled-in Log Operator Transparency Statement per T-106 (T-335)
nodes/genesis-{alpha,beta,gamma}/privacy-policy.mdFilled-in privacy policy per G-011
nodes/genesis-{alpha,beta,gamma}/data/Runtime: operator key, SQLite ledger (created at first run)
deploy/bootstrap-seed-list.jsonSigned seed list per T-337 / G-006 §3.1
deploy/gen-certs.shSelf-signed TLS cert generation (T-336; local-service only)
observability/alerts.yamlPrometheus alert rules per G-012
observability/dashboard.mdGrafana dashboard panels per G-012
incident-response/runbook.mdOperational runbook per T-338
src/bootstrap-issuer.tsGenerates the signed seed list (re-runnable)
src/testnet-node.tsSpins up all 3 nodes + gossip ring + HTTP/MWP endpoints

Run the testnet (local-service)

cd services/testnet
npm install
npm run bootstrap     # Generate signed seed list (run once)
npm run certs         # Generate self-signed TLS certs (local-service wss:// only)
npm start             # Spin up the 3-node testnet

You'll see:

[testnet] loaded bootstrap seed list (3 seeds, signed by sigil:gng3urrvyq3i…)
[testnet] starting 3 nodes…
[genesis-alpha] sigil=sigil:omff5x… local-service/ ws://local-service/
[genesis-beta]  sigil=sigil:wkf2vm… local-service/ ws://local-service/
[genesis-gamma] sigil=sigil:esyduy… local-service/ ws://local-service/
[testnet] wiring gossip ring…
[testnet] genesis ceremony: alpha originates first network envelope…
[testnet] genesis envelope id=…
[testnet] ledger state after 
[genesis-alpha] seen=0 verified=1
[genesis-beta] seen=0 verified=1
[genesis-gamma] seen=0 verified=1

The genesis envelope propagates through the ring and is verified by all three nodes, exercising the full stack: signed Charter at startup, MWP handshake, ENVELOPE_GOSSIP, dedupe, ledger persistence, verify-on-receive.

By default the testnet auto-stops after 30s. To keep it running:

MANTHAN_RUN_FOREVER=1 npm start

If the default local-service ports are already in use, override the bases:

MANTHAN_HTTP_BASE_PORT=10120 MANTHAN_MWP_BASE_PORT=10220 npm start

Inspect the running testnet

# Health and readiness
curl local-service/healthz
curl local-service/readyz

# Operator transparency documents (signed at startup)
curl local-service/charter | jq .          # signed Charter
curl local-service/lots                    # LOTS markdown
curl local-service/privacy-policy          # privacy policy

# Operational
curl local-service/sth                     # latest tree head
curl local-service/canary                  # warrant canary
curl local-service/incidents               # incident registry
curl local-service/metrics                 # Prometheus metrics (G-012)

What this proves

Phase 4 deliverables, per the tracker:

Tracker itemWhere it lives
P-006: Deploy initial "Network Genesis" with 3 nodessrc/testnet-node.ts runs them; genesis envelope ceremony fires on startup
G-011: Metadata and Privacy Policynodes/*/privacy-policy.md
G-012: Operations and Observabilityobservability/alerts.yaml + observability/dashboard.md + /metrics endpoint per node
T-335: Filled-in Charter and LOTSnodes//charter.md and nodes//lots.md
T-336: TLS deployment plumbingdeploy/gen-certs.sh generates self-signed certs; AWS production still needs ALB/ACM termination wiring
T-337: Persistent discovery / bootstrapdeploy/bootstrap-seed-list.json (signed by bootstrap authority)
T-338: Rollback and incident-responseincident-response/runbook.md (12 procedures)

AWS deployment plan

This testnet is the dev stage. Mapping each component to AWS:

Local componentAWS production equivalent
3 local-service ports3 ECS tasks (or EC2 instances), each in a different AZ (start) → eventually different AWS regions
data/operator.key.json (mode 0600)AWS Secrets Manager + KMS envelope encryption; IAM-attached role
data/ledger.sqliteEFS-mounted volume; hourly snapshots → S3
local ws://local-service MWPpublic wss:// at ALB/ACM → private ws:// to ECS task
local local-service APIpublic https:// at ALB/ACM → private HTTP to ECS task
bootstrap-seed-list.jsonVersioned S3 bucket (public-read); URL pinned in node software
Self-signed certsACM auto-renewing certs
/metrics endpointScraped by Prometheus running in EKS or ECS Fargate
Alertmanager rulesForwarded to PagerDuty (SEV-1/2) and Slack (SEV-3)
Runbook URLS3 + CloudFront (public-read), linked from PagerDuty alerts
Hourly backupEFS snapshot → S3 cross-region

To deploy on AWS:

1. Build a Docker image: docker build -t manthan-testnet-node:0.2.0 . (Dockerfile TBD; uses node:24-alpine base, copies lib/ and services/, runs node --experimental-strip-types services/testnet/src/testnet-node.ts).
2. Push to ECR.
3. Apply Terraform/CDK for the ECS service definitions, ALB, EFS, KMS, Secrets Manager, ACM cert, S3 buckets.
4. Per-node Charter and LOTS get committed to S3 (versioned), mounted into the ECS task at /etc/manthan/.
5. Bootstrap seed list signed once (offline) by a real bootstrap authority key (HSM-backed); committed to S3.
6. Replace <TBD> markers in Charter §1, §5, §9 with real values.
7. Operator runs the incident-response/runbook.md procedures; verify each before declaring production-ready.

Some deployment adaptation is still required. The next phase supplies the Dockerfile, ECS/ALB/EFS/KMS/Secrets Manager/ACM/S3 IaC, real legal/operator values, and production bootstrap signing.

What the testnet is NOT

These deficiencies are catalogued explicitly — that's the point of the testnet exemplar Charter/LOTS. Production deployments inherit these documents and replace the testnet-specific markers.

Cumulative project status

After Phase 4:

The HERALD v0.2 protocol stack is feature-complete at local-service/testnet-dev level. Phase 5 is deployment engineering: containerization, IaC, real wss:///https://, real operator values, real alert routing, backups, and runbook drills.

Continue exploring