From 3e9645274a5f6e2cbc5bae1dff55d3aed0295cbf Mon Sep 17 00:00:00 2001 From: defiQUG Date: Wed, 11 Mar 2026 12:58:00 -0700 Subject: [PATCH] Phoenix Deploy API: OpenAPI spec, Swagger UI at /api-docs, railing and health routes - openapi.yaml, docs/index.html; GET /api-docs and /api-docs/spec.yaml - Health, Infra, VE, VM lifecycle, Prometheus proxy, webhook - docs/00-meta/SANKOFA_API_COMPLETE_TASK_LIST.md Made-with: Cursor --- .../00-meta/SANKOFA_API_COMPLETE_TASK_LIST.md | 133 ++++ .../NEXT_STEPS_RUN_20260208_093333.md | 558 --------------- .../NEXT_STEPS_RUN_20260208_100911.md | 558 --------------- .../NEXT_STEPS_RUN_20260208_110832.md | 558 --------------- .../NEXT_STEPS_RUN_20260221_152652.md | 652 ------------------ .../NEXT_STEPS_RUN_20260222_131244.md | 652 ------------------ .../NEXT_STEPS_RUN_20260222_161727.md | 652 ------------------ ...NEXT_STEPS_RUN_20260223_SMOM_DEPLOYMENT.md | 33 - .../NEXT_STEPS_RUN_20260224_021728.md | 648 ----------------- phoenix-deploy-api/README.md | 27 + phoenix-deploy-api/docs/index.html | 26 + phoenix-deploy-api/openapi.yaml | 256 +++++++ phoenix-deploy-api/server.js | 271 +++++++- 13 files changed, 711 insertions(+), 4313 deletions(-) create mode 100644 docs/00-meta/SANKOFA_API_COMPLETE_TASK_LIST.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_093333.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_100911.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_110832.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260221_152652.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_131244.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_161727.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260223_SMOM_DEPLOYMENT.md delete mode 100644 docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260224_021728.md create mode 100644 phoenix-deploy-api/docs/index.html create mode 100644 phoenix-deploy-api/openapi.yaml diff --git a/docs/00-meta/SANKOFA_API_COMPLETE_TASK_LIST.md b/docs/00-meta/SANKOFA_API_COMPLETE_TASK_LIST.md new file mode 100644 index 0000000..103f849 --- /dev/null +++ b/docs/00-meta/SANKOFA_API_COMPLETE_TASK_LIST.md @@ -0,0 +1,133 @@ +# Complete Task List — Sankofa Phoenix API + +**Purpose:** Single list of all tasks required to complete the API for Sankofa (GraphQL + REST railing, client API, docs, Gitea). +**Last Updated:** 2026-03-11 +**Refs:** [PHOENIX_API_RAILING_TASKS.md](../02-architecture/PHOENIX_API_RAILING_TASKS.md), [PHOENIX_API_RAILING_SPEC.md](../02-architecture/PHOENIX_API_RAILING_SPEC.md), [SANKOFA_PHOENIX_GITEA_REPOS_REVIEW.md](../04-configuration/SANKOFA_PHOENIX_GITEA_REPOS_REVIEW.md) + +--- + +## 1. Remaining Railing / Client API (Sankofa) + +| # | Task | Owner | Priority | Notes | +|---|------|--------|----------|--------| +| 1.1 | **API key store (Vault or DB)** — key hash, tenant_id, scopes (read / read-write) for client and partner API keys | Sankofa / Operator | High | Blocking for 1.2. See PHOENIX_VAULT_CLUSTER_DEPLOYMENT; identity/JWT used today. | +| 1.2 | **Issue API keys for Site24x7 users** (Gitea team → Phoenix API keys) | Operator | Optional | After 1.1. Per GITEA_TEAM_MEMBERS_API. | + +--- + +## 2. Code and Repo Sync (Delivery) + +| # | Task | Owner | Priority | Notes | +|---|------|--------|----------|--------| +| 2.1 | **Commit and push Sankofa API changes to Gitea** | Dev/Operator | High | Uncommitted: `api/src/routes/phoenix-railing.ts`, `api/src/server.ts`, migrations, typeDefs, sovereign-stack, setup docs. Push to `sankofa_phoenix` (and optionally `gitea` d-bis/Sankofa). | +| 2.2 | **Re-sync Phoenix_API repo on Gitea** | Dev/Operator | High | After 2.1: `git subtree split -P api -b phoenix-api` then push to `Sankofa_Phoenix/Phoenix_API` so Gitea has latest API code. | +| 2.3 | **Commit and push proxmox phoenix-deploy-api to Gitea** | Dev/Operator | Medium | Uncommitted: `openapi.yaml`, `docs/index.html`, README, server.js. Push to `gitea` (d-bis/proxmox). | + +--- + +## 3. Configuration and Deployment + +| # | Task | Owner | Priority | Notes | +|---|------|--------|----------|--------| +| 3.1 | **Set PHOENIX_RAILING_URL in Sankofa API** | Operator | High | Point to phoenix-deploy-api base URL (e.g. `http://phoenix-deploy-api:4001` or public URL) so Sankofa REST proxy works. | +| 3.2 | **Set PHOENIX_RAILING_API_KEY (optional)** | Operator | Low | If phoenix-deploy-api enforces PHOENIX_PARTNER_KEYS, set this in Sankofa so server-to-server calls succeed. | +| 3.3 | **Proxmox env on phoenix-deploy-api** | Operator | High | PROXMOX_HOST, PROXMOX_TOKEN_NAME, PROXMOX_TOKEN_VALUE (and optional PHOENIX_VE_LIFECYCLE_ENABLED=1, PROMETHEUS_URL) for live Infra/VE/Health. | + +--- + +## 4. API Documentation + +| # | Task | Owner | Priority | Notes | +|---|------|--------|----------|--------| +| 4.1 | **GraphQL schema export / interactive docs** | Sankofa | Medium | Publish schema (SDL or introspection JSON); add GraphQL Playground or Apollo Studio for interactive docs. | +| 4.2 | **OpenAPI for GraphQL endpoint (optional)** | Sankofa | Low | Minimal OpenAPI describing POST /graphql; or keep schema as source of truth. | +| 4.3 | **REST railing OpenAPI in Phoenix_API repo (optional)** | Sankofa | Low | Copy or link phoenix-deploy-api openapi.yaml into Sankofa/Phoenix_API docs so one repo has full API doc. | +| 4.4 | **API versioning strategy** | Sankofa | Low | Document in Sankofa docs/api/API_VERSIONING.md; align /api/v1/ with strategy. | + +--- + +## 5. Testing and Quality + +| # | Task | Owner | Priority | Notes | +|---|------|--------|----------|--------| +| 5.1 | **Integration tests for REST railing routes** | Sankofa | Medium | Test GET /api/v1/infra/nodes, /ve/vms, /health/summary and tenant me routes (with mock or real PHOENIX_RAILING_URL). | +| 5.2 | **E2E: Portal → Phoenix API → Railing** | Sankofa | Medium | After Portal calls are implemented, add E2E that hits Sankofa API and (optionally) railing. | + +--- + +## 6. Portal Implementation (Depends on API) + +| # | Task | Owner | Priority | Notes | +|---|------|--------|----------|--------| +| 6.1 | **Portal: Infrastructure overview** — call GET /api/v1/infra/nodes, /api/v1/infra/storage | Sankofa | High | See docs/phoenix/PORTAL_RAILING_WIRING.md. | +| 6.2 | **Portal: VM/CT list and actions** — call GET/POST /api/v1/ve/vms/* | Sankofa | High | List, status, start/stop/reboot. | +| 6.3 | **Portal: Health/dashboards** — call GET /api/v1/health/summary, /alerts, /metrics | Sankofa | High | Dashboards and alerts. | +| 6.4 | **Portal: Keycloak token for API** | Sankofa | High | Server-side or BFF uses token for Phoenix API calls; token includes tenant when applicable. | + +--- + +## 7. Optional / Later + +| # | Task | Owner | Notes | +|---|------|--------|--------| +| 7.1 | Rate limiting per tenant (beyond global) | Sankofa | rateLimitMiddleware exists; per-tenant limits if needed. | +| 7.2 | Swagger UI in phoenix-deploy-api at /api-docs | Proxmox | Add swagger-ui-express; serve openapi.yaml. | +| 7.3 | Alert webhook (alert fired → POST to partner URL) | Proxmox | Beyond deploy webhook; optional. | + +--- + +## Summary Checklist + +**Must-do to “complete” the API for Sankofa:** + +- [x] **1.1** API key store (DB: api_keys + verifyApiKey; X-API-Key in tenant-auth for /api/v1/*) +- [ ] **2.1** Commit and push Sankofa API changes to Gitea +- [ ] **2.2** Re-sync Phoenix_API Gitea repo from api/ subtree +- [ ] **3.1** Set PHOENIX_RAILING_URL in Sankofa API +- [ ] **3.3** Configure Proxmox (and optional Prometheus) env for phoenix-deploy-api + +**Should-do:** + +- [ ] **2.3** Commit and push phoenix-deploy-api (openapi, docs, server, /api-docs) to Gitea +- [x] **4.1** GraphQL schema export + interactive docs +- [x] **4.2–4.4** OpenAPI GraphQL, api/docs, versioning doc +- [x] **5.1** Integration tests for railing (phoenix-railing.test.ts) +- [x] **7.2** Swagger UI at /api-docs in phoenix-deploy-api +- [ ] **6.1–6.4** Portal wiring to Infra/VE/Health APIs and Keycloak + +**Optional:** + +- [ ] 1.2 Site24x7 API keys (after 1.1) +- [ ] 4.2, 4.3, 4.4 API docs enhancements +- [ ] 5.1, 5.2 Tests +- [ ] 7.x Optional items + +--- + +## Quick Commands + +**Sankofa — commit and push to Sankofa_Phoenix:** +```bash +cd /home/intlc/projects/Sankofa +git add api/ +git status # review +git commit -m "API: phoenix-railing proxy, tenant me routes, sovereign-stack, migrations" +git push sankofa_phoenix main +``` + +**Sankofa — re-sync Phoenix_API repo:** +```bash +cd /home/intlc/projects/Sankofa +git subtree split -P api -b phoenix-api +# Use GITEA_TOKEN from proxmox .env: +git push https://oauth2:${GITEA_TOKEN}@gitea.d-bis.org/Sankofa_Phoenix/Phoenix_API.git phoenix-api:main +git branch -D phoenix-api +``` + +**Proxmox — commit and push phoenix-deploy-api to Gitea:** +```bash +cd /home/intlc/projects/proxmox +git add phoenix-deploy-api/openapi.yaml phoenix-deploy-api/docs/ phoenix-deploy-api/README.md phoenix-deploy-api/server.js +git commit -m "Phoenix Deploy API: OpenAPI spec, Swagger UI doc, railing and health routes" +git push gitea main +``` diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_093333.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_093333.md deleted file mode 100644 index ac4e9e4..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_093333.md +++ /dev/null @@ -1,558 +0,0 @@ -# Next Steps — Automated Run - -**Date:** 2026-02-08T09:33:33-08:00 -**Report:** `/home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_093333.md` - -## Automated steps run - -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -| Dependencies | OK | `check-dependencies.sh` | - -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -| Config validation | OK | `validate-config-files.sh` | - -=== Run all validation (no LAN/SSH) === - -1. Dependencies... -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -[✓] Dependencies OK - -2. Config files... -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -[✓] Config validation OK - -3. Genesis — skipped (--skip-genesis) - -[✓] All validation passed. -| Run all validation | OK | `run-all-validation.sh --skip-genesis` | - -[INFO] ACCEPT_ANY_DNS=1 (CLOUDFLARE_TUNNEL_ID in .env, Option B tunnel) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🔍 End-to-End Routing Verification -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] Progress: domain 1/33 -[INFO] -[INFO] Testing domain: dbis-admin.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-admin.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-admin.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:11 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-admin.d-bis.org returned HTTP 502 (Time: 3.120982s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 2/33 -[INFO] -[INFO] Testing domain: rpc-alltra-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-3.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra-3.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 3/33 -[INFO] -[INFO] Testing domain: rpc-hybx-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-2.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx-2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 4/33 -[INFO] -[INFO] Testing domain: cacti-hybx.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: cacti-hybx.d-bis.org returned HTTP 502 (Time: 0.128922s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 5/33 -[INFO] -[INFO] Testing domain: sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:17 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: sankofa.nexus returned HTTP 200 (Time: 0.082830s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 6/33 -[INFO] -[INFO] Testing domain: rpc-alltra.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 7/33 -[INFO] -[INFO] Testing domain: rpc-http-pub.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-pub.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-http-pub.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 8/33 -[INFO] -[INFO] Testing domain: rpc.public-0138.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.public-0138.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: defi-oracle.io) -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 | Expires: Apr 4 08:26:02 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.public-0138.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 9/33 -[INFO] -[INFO] Testing domain: dbis-api.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:33 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api.d-bis.org returned HTTP 502 (Time: 3.259171s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 10/33 -[INFO] -[INFO] Testing domain: rpc-hybx-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-3.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx-3.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 11/33 -[INFO] -[INFO] Testing domain: rpc.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 12/33 -[INFO] -[INFO] Testing domain: www.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:41 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.sankofa.nexus returned HTTP 200 (Time: 0.044073s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 13/33 -[INFO] -[INFO] Testing domain: mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:01 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: mim4u.org returned HTTP 200 (Time: 0.031617s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 14/33 -[INFO] -[INFO] Testing domain: ws.rpc.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:43:05 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 15/33 -[INFO] -[INFO] Testing domain: phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:57:08 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: phoenix.sankofa.nexus returned HTTP 200 (Time: 0.079323s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 16/33 -[INFO] -[INFO] Testing domain: www.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:17 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: www.mim4u.org returned HTTP 502 (Time: 0.052842s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 17/33 -[INFO] -[INFO] Testing domain: wss.defi-oracle.io (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: wss.defi-oracle.io → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for wss.defi-oracle.io -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:44:57 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 18/33 -[INFO] -[INFO] Testing domain: the-order.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: the-order.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for the-order.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:53 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: the-order.sankofa.nexus returned HTTP 200 (Time: 0.046807s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 19/33 -[INFO] -[INFO] Testing domain: rpc2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 20/33 -[INFO] -[INFO] Testing domain: rpc-ws-pub.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-pub.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-pub.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:51 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 21/33 -[INFO] -[INFO] Testing domain: rpc-alltra-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra-2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 22/33 -[INFO] -[INFO] Testing domain: rpc-http-prv.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-prv.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-prv.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 23/33 -[INFO] -[INFO] Testing domain: www.phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:59:28 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.phoenix.sankofa.nexus returned HTTP 200 (Time: 1.045995s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 24/33 -[INFO] -[INFO] Testing domain: secure.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.mim4u.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:40 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: secure.mim4u.org returned HTTP 200 (Time: 0.036570s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 25/33 -[INFO] -[INFO] Testing domain: training.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: training.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for training.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:06 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: training.mim4u.org returned HTTP 200 (Time: 0.031131s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 26/33 -[INFO] -[INFO] Testing domain: explorer.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: explorer.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for explorer.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 7 23:15:36 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: explorer.d-bis.org returned HTTP 200 (Time: 0.035560s) -[INFO] Test 3b: Blockscout API (optional) -[⚠] Blockscout API: HTTP 502 or invalid response (optional; run from LAN if backend unreachable) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 27/33 -[INFO] -[INFO] Testing domain: dbis-api-2.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api-2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api-2.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:22 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api-2.d-bis.org returned HTTP 502 (Time: 3.094991s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 28/33 -[INFO] -[INFO] Testing domain: secure.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:28 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: secure.d-bis.org returned HTTP 502 (Time: 3.144886s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 29/33 -[INFO] -[INFO] Testing domain: rpc-hybx.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 30/33 -[INFO] -[INFO] Testing domain: rpc.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc.defi-oracle.io -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 -[INFO] Expires: May 7 09:51:23 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc.defi-oracle.io failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 31/33 -[INFO] -[INFO] Testing domain: rpc-ws-prv.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-prv.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-prv.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:38 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 32/33 -[INFO] -[INFO] Testing domain: cacti-alltra.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-alltra.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: cacti-alltra.d-bis.org returned HTTP 502 (Time: 0.111150s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 33/33 -[INFO] -[INFO] Testing domain: ws.rpc2.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc2.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 30 03:43:58 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] 📊 Verification Summary -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Total domains: 33 -[✓] DNS passed: 33 -[✓] HTTPS passed: 9 -[✗] Failed: 10 -[INFO] All failures are RPC (edge may block POST). For full RPC pass see docs/05-network/E2E_RPC_EDGE_LIMITATION.md -[✓] E2E success (DNS + HTTPS pass; RPC blocked by edge - expected until UDM Pro allows POST or Tunnel used) -[INFO] Average response time: 0.896678125s - -[✓] Verification complete! -[✓] Report: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260208_093333/verification_report.md -[✓] All results: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260208_093333/all_e2e_results.json -| E2E routing | OK | `verify-end-to-end-routing.sh` (RPC may skip off-LAN) | - - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Explorer links + block production — quick check -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] 1. Explorer URL (https://explorer.d-bis.org) -[OK] Explorer HTTPS: 200 -[INFO] 2. Blockscout API (https://explorer.d-bis.org/api/v2/stats) -[SKIP] Blockscout API: unreachable or invalid (run from LAN for backend 192.168.11.140) -[INFO] 3. RPC (public) — eth_chainId -[SKIP] RPC: no result (tunnel/edge may block POST; run from LAN or see E2E runbook) -[INFO] 4. Block production (RPC_CORE_1) -[FAIL] Block production: stalled at 1879594. Run: scripts/monitoring/monitor-blockchain-health.sh - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[FAIL] Quick check: 1 failure(s). See docs/08-monitoring/EXPLORER_LINKS_AND_BLOCK_PRODUCTION_STATUS.md -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -| Explorer + block production | WARN | `verify-explorer-and-block-production.sh` (block production needs LAN) | - -DRY-RUN: cast send 0x971cD9D156f193df8051E48043C476e53ECd4693 sendCrossChain(5009297550715157269,0x4A666F96fC8764181194447A7dFdb7d471b301C8,10000000000000000) --gas-price 1000000000 --legacy -Simulation: (check params) -| Bridge dry-run | OK | `run-send-cross-chain.sh 0.01 --dry-run` | - -[Security] Proxmox hosts: 192.168.11.10 192.168.11.11 192.168.11.12 (DRY_RUN=true) ---- 192.168.11.10 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.11 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.12 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 -Done. -| Security dry-run | OK | `run-security-on-proxmox-hosts.sh` (no --apply) | - -Crontab line: 0 3 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/verify/backup-npmplus.sh >> /home/intlc/projects/proxmox/logs/npmplus-backup.log 2>&1 -Daily (O-1, O-2): 0 8 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh daily >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -Weekly (O-3): 0 9 * * 0 cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh weekly >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -| Cron (show) | — | `schedule-npmplus-backup-cron.sh --show`, `schedule-daily-weekly-cron.sh --show` | - - ---- - -## Run from LAN / Proxmox (when ready) - -| # | What | Command | -|---|------|---------| -| 7 | Bridge (real) | `bash scripts/bridge/run-send-cross-chain.sh 0.01` | -| 8 | Security apply | `bash scripts/security/run-security-on-proxmox-hosts.sh --apply` | -| 13a | Deploy contracts | `cd smom-dbis-138 && source .env && bash scripts/deployment/deploy-all-contracts.sh` | -| 13c | Verify contracts (Blockscout) | `source smom-dbis-138/.env && ./scripts/verify/run-contract-verification-with-proxy.sh` | -| NPMplus backup | Backup NPMplus | `bash scripts/verify/backup-npmplus.sh` | -| Wave 0 from LAN | NPMplus RPC fix + backup | `bash scripts/run-wave0-from-lan.sh` | -| Validators + block production | Fix validators / tx-pool | `bash scripts/fix-all-validators-and-txpool.sh` then `scripts/monitoring/monitor-blockchain-health.sh` | - ---- - -## Manual / UI - -| # | What | Where | -|---|------|--------| -| 9 | 2506–2508 JWT and identity | [CHAIN138_JWT_AUTH_REQUIREMENTS.md](../../04-configuration/CHAIN138_JWT_AUTH_REQUIREMENTS.md), `scripts/generate-jwt-token-for-container.sh` | -| 10 | Explorer SSL | NPMplus https://192.168.11.167:81 → SSL → Let's Encrypt explorer.d-bis.org | -| 11 | NPMplus cert 134 | NPMplus → SSL Certificates → cross-all.defi-oracle.io re-request/re-save | -| 12 | Wave 2 & 3 | [WAVE2_WAVE3_OPERATOR_CHECKLIST.md](../../00-meta/WAVE2_WAVE3_OPERATOR_CHECKLIST.md) | - ---- - -## References - -- [NEXT_STEPS_OPERATOR.md](../../00-meta/NEXT_STEPS_OPERATOR.md) -- [CONTINUE_AND_COMPLETE.md](../../archive/00-meta-pruned/CONTINUE_AND_COMPLETE.md) (archived) -- [NEXT_STEPS_ALL.md](../../00-meta/NEXT_STEPS_ALL.md) -- [FULL_FIXES_PREPARED.md](../FULL_FIXES_PREPARED.md) diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_100911.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_100911.md deleted file mode 100644 index 9042c66..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_100911.md +++ /dev/null @@ -1,558 +0,0 @@ -# Next Steps — Automated Run - -**Date:** 2026-02-08T10:09:11-08:00 -**Report:** `/home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_100911.md` - -## Automated steps run - -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -| Dependencies | OK | `check-dependencies.sh` | - -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -| Config validation | OK | `validate-config-files.sh` | - -=== Run all validation (no LAN/SSH) === - -1. Dependencies... -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -[✓] Dependencies OK - -2. Config files... -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -[✓] Config validation OK - -3. Genesis — skipped (--skip-genesis) - -[✓] All validation passed. -| Run all validation | OK | `run-all-validation.sh --skip-genesis` | - -[INFO] ACCEPT_ANY_DNS=1 (CLOUDFLARE_TUNNEL_ID in .env, Option B tunnel) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🔍 End-to-End Routing Verification -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] Progress: domain 1/33 -[INFO] -[INFO] Testing domain: dbis-admin.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-admin.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-admin.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:11 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-admin.d-bis.org returned HTTP 502 (Time: 3.590031s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 2/33 -[INFO] -[INFO] Testing domain: rpc-alltra-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-3.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra-3.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 3/33 -[INFO] -[INFO] Testing domain: rpc-hybx-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx-2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 4/33 -[INFO] -[INFO] Testing domain: cacti-hybx.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-hybx.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: cacti-hybx.d-bis.org returned HTTP 502 (Time: 0.262422s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 5/33 -[INFO] -[INFO] Testing domain: sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:17 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: sankofa.nexus returned HTTP 200 (Time: 0.260974s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 6/33 -[INFO] -[INFO] Testing domain: rpc-alltra.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 7/33 -[INFO] -[INFO] Testing domain: rpc-http-pub.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-pub.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-http-pub.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 8/33 -[INFO] -[INFO] Testing domain: rpc.public-0138.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.public-0138.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: defi-oracle.io) -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 | Expires: Apr 4 08:26:02 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.public-0138.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 9/33 -[INFO] -[INFO] Testing domain: dbis-api.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:33 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api.d-bis.org returned HTTP 502 (Time: 3.180748s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 10/33 -[INFO] -[INFO] Testing domain: rpc-hybx-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-3.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx-3.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 11/33 -[INFO] -[INFO] Testing domain: rpc.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 12/33 -[INFO] -[INFO] Testing domain: www.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:41 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.sankofa.nexus returned HTTP 200 (Time: 0.121996s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 13/33 -[INFO] -[INFO] Testing domain: mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:01 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: mim4u.org returned HTTP 200 (Time: 0.054147s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 14/33 -[INFO] -[INFO] Testing domain: ws.rpc.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:43:05 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 15/33 -[INFO] -[INFO] Testing domain: phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:57:08 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: phoenix.sankofa.nexus returned HTTP 200 (Time: 0.485694s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 16/33 -[INFO] -[INFO] Testing domain: www.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:17 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: www.mim4u.org returned HTTP 502 (Time: 0.306964s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 17/33 -[INFO] -[INFO] Testing domain: wss.defi-oracle.io (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: wss.defi-oracle.io → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for wss.defi-oracle.io -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:44:57 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 18/33 -[INFO] -[INFO] Testing domain: the-order.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: the-order.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for the-order.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:53 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: the-order.sankofa.nexus returned HTTP 200 (Time: 0.066065s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 19/33 -[INFO] -[INFO] Testing domain: rpc2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 20/33 -[INFO] -[INFO] Testing domain: rpc-ws-pub.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-pub.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-pub.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:51 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 21/33 -[INFO] -[INFO] Testing domain: rpc-alltra-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra-2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 22/33 -[INFO] -[INFO] Testing domain: rpc-http-prv.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-prv.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-prv.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 23/33 -[INFO] -[INFO] Testing domain: www.phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:59:28 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.phoenix.sankofa.nexus returned HTTP 200 (Time: 0.482485s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 24/33 -[INFO] -[INFO] Testing domain: secure.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.mim4u.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:40 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: secure.mim4u.org returned HTTP 200 (Time: 0.166138s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 25/33 -[INFO] -[INFO] Testing domain: training.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: training.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for training.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:06 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: training.mim4u.org returned HTTP 200 (Time: 0.916216s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 26/33 -[INFO] -[INFO] Testing domain: explorer.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: explorer.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for explorer.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 7 23:15:36 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: explorer.d-bis.org returned HTTP 200 (Time: 0.536888s) -[INFO] Test 3b: Blockscout API (optional) -[⚠] Blockscout API: HTTP 502 or invalid response (optional; run from LAN if backend unreachable) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 27/33 -[INFO] -[INFO] Testing domain: dbis-api-2.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api-2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api-2.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:22 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api-2.d-bis.org returned HTTP 502 (Time: 3.383404s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 28/33 -[INFO] -[INFO] Testing domain: secure.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:28 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: secure.d-bis.org returned HTTP 502 (Time: 3.156180s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 29/33 -[INFO] -[INFO] Testing domain: rpc-hybx.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 30/33 -[INFO] -[INFO] Testing domain: rpc.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc.defi-oracle.io -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 -[INFO] Expires: May 7 09:51:23 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc.defi-oracle.io failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 31/33 -[INFO] -[INFO] Testing domain: rpc-ws-prv.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-prv.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-prv.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:38 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 32/33 -[INFO] -[INFO] Testing domain: cacti-alltra.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-alltra.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: cacti-alltra.d-bis.org returned HTTP 502 (Time: 0.116295s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 33/33 -[INFO] -[INFO] Testing domain: ws.rpc2.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc2.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 30 03:43:58 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] 📊 Verification Summary -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Total domains: 33 -[✓] DNS passed: 33 -[✓] HTTPS passed: 9 -[✗] Failed: 10 -[INFO] All failures are RPC (edge may block POST). For full RPC pass see docs/05-network/E2E_RPC_EDGE_LIMITATION.md -[✓] E2E success (DNS + HTTPS pass; RPC blocked by edge - expected until UDM Pro allows POST or Tunnel used) -[INFO] Average response time: 1.0679154375000002s - -[✓] Verification complete! -[✓] Report: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260208_100911/verification_report.md -[✓] All results: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260208_100911/all_e2e_results.json -| E2E routing | OK | `verify-end-to-end-routing.sh` (RPC may skip off-LAN) | - - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Explorer links + block production — quick check -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] 1. Explorer URL (https://explorer.d-bis.org) -[OK] Explorer HTTPS: 200 -[INFO] 2. Blockscout API (https://explorer.d-bis.org/api/v2/stats) -[SKIP] Blockscout API: unreachable or invalid (run from LAN for backend 192.168.11.140) -[INFO] 3. RPC (public) — eth_chainId -[SKIP] RPC: no result (tunnel/edge may block POST; run from LAN or see E2E runbook) -[INFO] 4. Block production (RPC_CORE_1) -[FAIL] Block production: stalled at 1879594. Run: scripts/monitoring/monitor-blockchain-health.sh - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[FAIL] Quick check: 1 failure(s). See docs/08-monitoring/EXPLORER_LINKS_AND_BLOCK_PRODUCTION_STATUS.md -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -| Explorer + block production | WARN | `verify-explorer-and-block-production.sh` (block production needs LAN) | - -DRY-RUN: cast send 0x971cD9D156f193df8051E48043C476e53ECd4693 sendCrossChain(5009297550715157269,0x4A666F96fC8764181194447A7dFdb7d471b301C8,10000000000000000) --gas-price 1000000000 --legacy -Simulation: (check params) -| Bridge dry-run | OK | `run-send-cross-chain.sh 0.01 --dry-run` | - -[Security] Proxmox hosts: 192.168.11.10 192.168.11.11 192.168.11.12 (DRY_RUN=true) ---- 192.168.11.10 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.11 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.12 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 -Done. -| Security dry-run | OK | `run-security-on-proxmox-hosts.sh` (no --apply) | - -Crontab line: 0 3 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/verify/backup-npmplus.sh >> /home/intlc/projects/proxmox/logs/npmplus-backup.log 2>&1 -Daily (O-1, O-2): 0 8 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh daily >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -Weekly (O-3): 0 9 * * 0 cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh weekly >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -| Cron (show) | — | `schedule-npmplus-backup-cron.sh --show`, `schedule-daily-weekly-cron.sh --show` | - - ---- - -## Run from LAN / Proxmox (when ready) - -| # | What | Command | -|---|------|---------| -| 7 | Bridge (real) | `bash scripts/bridge/run-send-cross-chain.sh 0.01` | -| 8 | Security apply | `bash scripts/security/run-security-on-proxmox-hosts.sh --apply` | -| 13a | Deploy contracts | `cd smom-dbis-138 && source .env && bash scripts/deployment/deploy-all-contracts.sh` | -| 13c | Verify contracts (Blockscout) | `source smom-dbis-138/.env && ./scripts/verify/run-contract-verification-with-proxy.sh` | -| NPMplus backup | Backup NPMplus | `bash scripts/verify/backup-npmplus.sh` | -| Wave 0 from LAN | NPMplus RPC fix + backup | `bash scripts/run-wave0-from-lan.sh` | -| Validators + block production | Fix validators / tx-pool | `bash scripts/fix-all-validators-and-txpool.sh` then `scripts/monitoring/monitor-blockchain-health.sh` | - ---- - -## Manual / UI - -| # | What | Where | -|---|------|--------| -| 9 | 2506–2508 JWT and identity | [CHAIN138_JWT_AUTH_REQUIREMENTS.md](../../04-configuration/CHAIN138_JWT_AUTH_REQUIREMENTS.md), `scripts/generate-jwt-token-for-container.sh` | -| 10 | Explorer SSL | NPMplus https://192.168.11.167:81 → SSL → Let's Encrypt explorer.d-bis.org | -| 11 | NPMplus cert 134 | NPMplus → SSL Certificates → cross-all.defi-oracle.io re-request/re-save | -| 12 | Wave 2 & 3 | [WAVE2_WAVE3_OPERATOR_CHECKLIST.md](../../00-meta/WAVE2_WAVE3_OPERATOR_CHECKLIST.md) | - ---- - -## References - -- [NEXT_STEPS_OPERATOR.md](../../00-meta/NEXT_STEPS_OPERATOR.md) -- [CONTINUE_AND_COMPLETE.md](../../archive/00-meta-pruned/CONTINUE_AND_COMPLETE.md) (archived) -- [NEXT_STEPS_ALL.md](../../00-meta/NEXT_STEPS_ALL.md) -- [FULL_FIXES_PREPARED.md](../FULL_FIXES_PREPARED.md) diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_110832.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_110832.md deleted file mode 100644 index 1f15737..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_110832.md +++ /dev/null @@ -1,558 +0,0 @@ -# Next Steps — Automated Run - -**Date:** 2026-02-08T11:08:33-08:00 -**Report:** `/home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260208_110832.md` - -## Automated steps run - -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -| Dependencies | OK | `check-dependencies.sh` | - -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -| Config validation | OK | `validate-config-files.sh` | - -=== Run all validation (no LAN/SSH) === - -1. Dependencies... -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -[✓] Dependencies OK - -2. Config files... -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -[✓] Config validation OK - -3. Genesis — skipped (--skip-genesis) - -[✓] All validation passed. -| Run all validation | OK | `run-all-validation.sh --skip-genesis` | - -[INFO] ACCEPT_ANY_DNS=1 (CLOUDFLARE_TUNNEL_ID in .env, Option B tunnel) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🔍 End-to-End Routing Verification -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] Progress: domain 1/33 -[INFO] -[INFO] Testing domain: dbis-admin.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-admin.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-admin.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:11 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-admin.d-bis.org returned HTTP 502 (Time: 3.187005s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 2/33 -[INFO] -[INFO] Testing domain: rpc-alltra-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-3.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra-3.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 3/33 -[INFO] -[INFO] Testing domain: rpc-hybx-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-2.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx-2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 4/33 -[INFO] -[INFO] Testing domain: cacti-hybx.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: cacti-hybx.d-bis.org returned HTTP 502 (Time: 0.187708s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 5/33 -[INFO] -[INFO] Testing domain: sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:17 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: sankofa.nexus returned HTTP 200 (Time: 0.084326s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 6/33 -[INFO] -[INFO] Testing domain: rpc-alltra.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 7/33 -[INFO] -[INFO] Testing domain: rpc-http-pub.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-pub.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-http-pub.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 8/33 -[INFO] -[INFO] Testing domain: rpc.public-0138.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.public-0138.defi-oracle.io → 104.21.91.43 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: defi-oracle.io) -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 | Expires: Apr 4 08:26:02 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.public-0138.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 9/33 -[INFO] -[INFO] Testing domain: dbis-api.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:33 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api.d-bis.org returned HTTP 502 (Time: 3.588403s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 10/33 -[INFO] -[INFO] Testing domain: rpc-hybx-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-3.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx-3.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 11/33 -[INFO] -[INFO] Testing domain: rpc.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 12/33 -[INFO] -[INFO] Testing domain: www.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:41 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.sankofa.nexus returned HTTP 200 (Time: 0.115882s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 13/33 -[INFO] -[INFO] Testing domain: mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:01 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: mim4u.org returned HTTP 200 (Time: 0.053242s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 14/33 -[INFO] -[INFO] Testing domain: ws.rpc.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:43:05 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 15/33 -[INFO] -[INFO] Testing domain: phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:57:08 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: phoenix.sankofa.nexus returned HTTP 200 (Time: 0.080514s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 16/33 -[INFO] -[INFO] Testing domain: www.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:17 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: www.mim4u.org returned HTTP 502 (Time: 0.172731s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 17/33 -[INFO] -[INFO] Testing domain: wss.defi-oracle.io (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: wss.defi-oracle.io → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for wss.defi-oracle.io -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:44:57 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 18/33 -[INFO] -[INFO] Testing domain: the-order.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: the-order.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for the-order.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:53 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: the-order.sankofa.nexus returned HTTP 200 (Time: 0.140662s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 19/33 -[INFO] -[INFO] Testing domain: rpc2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc2.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 20/33 -[INFO] -[INFO] Testing domain: rpc-ws-pub.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-pub.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-pub.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:51 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 21/33 -[INFO] -[INFO] Testing domain: rpc-alltra-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-2.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-alltra-2.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 22/33 -[INFO] -[INFO] Testing domain: rpc-http-prv.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-prv.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-prv.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 23/33 -[INFO] -[INFO] Testing domain: www.phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:59:28 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.phoenix.sankofa.nexus returned HTTP 200 (Time: 0.105827s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 24/33 -[INFO] -[INFO] Testing domain: secure.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.mim4u.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:40 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: secure.mim4u.org returned HTTP 200 (Time: 0.059210s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 25/33 -[INFO] -[INFO] Testing domain: training.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: training.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for training.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:06 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: training.mim4u.org returned HTTP 200 (Time: 0.265693s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 26/33 -[INFO] -[INFO] Testing domain: explorer.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: explorer.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for explorer.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 7 23:15:36 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: explorer.d-bis.org returned HTTP 200 (Time: 0.330849s) -[INFO] Test 3b: Blockscout API (optional) -[⚠] Blockscout API: HTTP 502 or invalid response (optional; run from LAN if backend unreachable) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 27/33 -[INFO] -[INFO] Testing domain: dbis-api-2.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api-2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api-2.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:22 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api-2.d-bis.org returned HTTP 502 (Time: 3.115486s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 28/33 -[INFO] -[INFO] Testing domain: secure.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:28 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: secure.d-bis.org returned HTTP 502 (Time: 3.169162s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 29/33 -[INFO] -[INFO] Testing domain: rpc-hybx.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc-hybx.d-bis.org failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 30/33 -[INFO] -[INFO] Testing domain: rpc.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc.defi-oracle.io -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 -[INFO] Expires: May 7 09:51:23 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✗] RPC: rpc.defi-oracle.io failed (HTTP 502) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 31/33 -[INFO] -[INFO] Testing domain: rpc-ws-prv.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-prv.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-prv.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:38 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 32/33 -[INFO] -[INFO] Testing domain: cacti-alltra.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-alltra.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: cacti-alltra.d-bis.org returned HTTP 502 (Time: 0.356824s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 33/33 -[INFO] -[INFO] Testing domain: ws.rpc2.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc2.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 30 03:43:58 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 502) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] 📊 Verification Summary -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Total domains: 33 -[✓] DNS passed: 33 -[✓] HTTPS passed: 9 -[✗] Failed: 10 -[INFO] All failures are RPC (edge may block POST). For full RPC pass see docs/05-network/E2E_RPC_EDGE_LIMITATION.md -[✓] E2E success (DNS + HTTPS pass; RPC blocked by edge - expected until UDM Pro allows POST or Tunnel used) -[INFO] Average response time: 0.93834525s - -[✓] Verification complete! -[✓] Report: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260208_110833/verification_report.md -[✓] All results: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260208_110833/all_e2e_results.json -| E2E routing | OK | `verify-end-to-end-routing.sh` (RPC may skip off-LAN) | - - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Explorer links + block production — quick check -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] 1. Explorer URL (https://explorer.d-bis.org) -[OK] Explorer HTTPS: 200 -[INFO] 2. Blockscout API (https://explorer.d-bis.org/api/v2/stats) -[SKIP] Blockscout API: unreachable or invalid (run from LAN for backend 192.168.11.140) -[INFO] 3. RPC (public) — eth_chainId -[SKIP] RPC: no result (tunnel/edge may block POST; run from LAN or see E2E runbook) -[INFO] 4. Block production (RPC_CORE_1) -[FAIL] Block production: stalled at 1879594. Run: scripts/monitoring/monitor-blockchain-health.sh - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[FAIL] Quick check: 1 failure(s). See docs/08-monitoring/EXPLORER_LINKS_AND_BLOCK_PRODUCTION_STATUS.md -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -| Explorer + block production | WARN | `verify-explorer-and-block-production.sh` (block production needs LAN) | - -DRY-RUN: cast send 0x971cD9D156f193df8051E48043C476e53ECd4693 sendCrossChain(5009297550715157269,0x4A666F96fC8764181194447A7dFdb7d471b301C8,10000000000000000) --gas-price 1000000000 --legacy -Simulation: (check params) -| Bridge dry-run | OK | `run-send-cross-chain.sh 0.01 --dry-run` | - -[Security] Proxmox hosts: 192.168.11.10 192.168.11.11 192.168.11.12 (DRY_RUN=true) ---- 192.168.11.10 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.11 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.12 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 -Done. -| Security dry-run | OK | `run-security-on-proxmox-hosts.sh` (no --apply) | - -Crontab line: 0 3 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/verify/backup-npmplus.sh >> /home/intlc/projects/proxmox/logs/npmplus-backup.log 2>&1 -Daily (O-1, O-2): 0 8 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh daily >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -Weekly (O-3): 0 9 * * 0 cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh weekly >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -| Cron (show) | — | `schedule-npmplus-backup-cron.sh --show`, `schedule-daily-weekly-cron.sh --show` | - - ---- - -## Run from LAN / Proxmox (when ready) - -| # | What | Command | -|---|------|---------| -| 7 | Bridge (real) | `bash scripts/bridge/run-send-cross-chain.sh 0.01` | -| 8 | Security apply | `bash scripts/security/run-security-on-proxmox-hosts.sh --apply` | -| 13a | Deploy contracts | `cd smom-dbis-138 && source .env && bash scripts/deployment/deploy-all-contracts.sh` | -| 13c | Verify contracts (Blockscout) | `source smom-dbis-138/.env && ./scripts/verify/run-contract-verification-with-proxy.sh` | -| NPMplus backup | Backup NPMplus | `bash scripts/verify/backup-npmplus.sh` | -| Wave 0 from LAN | NPMplus RPC fix + backup | `bash scripts/run-wave0-from-lan.sh` | -| Validators + block production | Fix validators / tx-pool | `bash scripts/fix-all-validators-and-txpool.sh` then `scripts/monitoring/monitor-blockchain-health.sh` | - ---- - -## Manual / UI - -| # | What | Where | -|---|------|--------| -| 9 | 2506–2508 JWT and identity | [CHAIN138_JWT_AUTH_REQUIREMENTS.md](../../04-configuration/CHAIN138_JWT_AUTH_REQUIREMENTS.md), `scripts/generate-jwt-token-for-container.sh` | -| 10 | Explorer SSL | NPMplus https://192.168.11.167:81 → SSL → Let's Encrypt explorer.d-bis.org | -| 11 | NPMplus cert 134 | NPMplus → SSL Certificates → cross-all.defi-oracle.io re-request/re-save | -| 12 | Wave 2 & 3 | [WAVE2_WAVE3_OPERATOR_CHECKLIST.md](../../00-meta/WAVE2_WAVE3_OPERATOR_CHECKLIST.md) | - ---- - -## References - -- [NEXT_STEPS_OPERATOR.md](../../00-meta/NEXT_STEPS_OPERATOR.md) -- [CONTINUE_AND_COMPLETE.md](../../archive/00-meta-pruned/CONTINUE_AND_COMPLETE.md) (archived) -- [NEXT_STEPS_ALL.md](../../00-meta/NEXT_STEPS_ALL.md) -- [FULL_FIXES_PREPARED.md](../FULL_FIXES_PREPARED.md) diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260221_152652.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260221_152652.md deleted file mode 100644 index 3c9b508..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260221_152652.md +++ /dev/null @@ -1,652 +0,0 @@ -# Next Steps — Automated Run - -**Date:** 2026-02-21T15:26:52-08:00 -**Report:** `/home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260221_152652.md` - -## Automated steps run - -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -| Dependencies | OK | `check-dependencies.sh` | - -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[OK] Found: config/token-mapping.json -[OK] token-mapping.json: valid JSON with .tokens array -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[OK] Found: config/smart-contracts-master.json -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -| Config validation | OK | `validate-config-files.sh` | - -=== Run all validation (no LAN/SSH) === - -1. Dependencies... -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -[✓] Dependencies OK - -2. Config files... -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[OK] Found: config/token-mapping.json -[OK] token-mapping.json: valid JSON with .tokens array -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[OK] Found: config/smart-contracts-master.json -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -[✓] Config validation OK - -3. Genesis — skipped (--skip-genesis) - -[✓] All validation passed. -| Run all validation | OK | `run-all-validation.sh --skip-genesis` | - -[INFO] ACCEPT_ANY_DNS=1 (CLOUDFLARE_TUNNEL_ID in .env, Option B tunnel) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🔍 End-to-End Routing Verification -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] Progress: domain 1/40 -[INFO] -[INFO] Testing domain: ws.rpc-fireblocks.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:48:21 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 2/40 -[INFO] -[INFO] Testing domain: dbis-admin.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-admin.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-admin.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:11 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-admin.d-bis.org returned HTTP 502 (Time: 3.439054s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 3/40 -[INFO] -[INFO] Testing domain: rpc-alltra-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-3.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 4/40 -[INFO] -[INFO] Testing domain: mifos.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mifos.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: mifos.d-bis.org returned HTTP 502 (Time: 0.116799s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 5/40 -[INFO] -[INFO] Testing domain: rpc-hybx-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 6/40 -[INFO] -[INFO] Testing domain: cacti-hybx.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-hybx.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-hybx.d-bis.org returned HTTP 200 (Time: 0.118221s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 7/40 -[INFO] -[INFO] Testing domain: sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:17 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: sankofa.nexus returned HTTP 200 (Time: 0.108420s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 8/40 -[INFO] -[INFO] Testing domain: rpc-alltra.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 9/40 -[INFO] -[INFO] Testing domain: rpc-http-pub.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-pub.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-pub.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 10/40 -[INFO] -[INFO] Testing domain: rpc.public-0138.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.public-0138.defi-oracle.io → 104.21.91.43 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: defi-oracle.io) -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 | Expires: Apr 4 08:26:02 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.public-0138.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 11/40 -[INFO] -[INFO] Testing domain: dbis-api.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:33 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api.d-bis.org returned HTTP 502 (Time: 3.132131s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 12/40 -[INFO] -[INFO] Testing domain: rpc-hybx-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-3.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 13/40 -[INFO] -[INFO] Testing domain: rpc.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 14/40 -[INFO] -[INFO] Testing domain: dapp.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dapp.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dapp.d-bis.org returned HTTP 200 (Time: 0.121925s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 15/40 -[INFO] -[INFO] Testing domain: www.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:41 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.sankofa.nexus returned HTTP 200 (Time: 0.085397s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 16/40 -[INFO] -[INFO] Testing domain: mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:01 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: mim4u.org returned HTTP 200 (Time: 0.031223s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 17/40 -[INFO] -[INFO] Testing domain: ws.rpc.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:43:05 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 18/40 -[INFO] -[INFO] Testing domain: phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:57:08 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: phoenix.sankofa.nexus returned HTTP 200 (Time: 0.031800s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 19/40 -[INFO] -[INFO] Testing domain: www.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:17 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: www.mim4u.org returned HTTP 502 (Time: 0.036097s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 20/40 -[INFO] -[INFO] Testing domain: wss.defi-oracle.io (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: wss.defi-oracle.io → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for wss.defi-oracle.io -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:44:57 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 21/40 -[INFO] -[INFO] Testing domain: the-order.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: the-order.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for the-order.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:53 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: the-order.sankofa.nexus returned HTTP 200 (Time: 0.038622s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 22/40 -[INFO] -[INFO] Testing domain: rpc2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 23/40 -[INFO] -[INFO] Testing domain: rpc-ws-pub.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-pub.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-pub.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:51 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 24/40 -[INFO] -[INFO] Testing domain: dev.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dev.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dev.d-bis.org returned HTTP 200 (Time: 0.103762s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 25/40 -[INFO] -[INFO] Testing domain: rpc-alltra-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 26/40 -[INFO] -[INFO] Testing domain: rpc-http-prv.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-prv.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-prv.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 27/40 -[INFO] -[INFO] Testing domain: www.phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:59:28 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.phoenix.sankofa.nexus returned HTTP 200 (Time: 0.038564s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 28/40 -[INFO] -[INFO] Testing domain: gitea.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: gitea.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: gitea.d-bis.org returned HTTP 200 (Time: 0.139581s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 29/40 -[INFO] -[INFO] Testing domain: secure.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.mim4u.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:40 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: secure.mim4u.org returned HTTP 200 (Time: 0.041585s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 30/40 -[INFO] -[INFO] Testing domain: rpc-fireblocks.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:47:15 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-fireblocks.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 31/40 -[INFO] -[INFO] Testing domain: training.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: training.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for training.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:06 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: training.mim4u.org returned HTTP 200 (Time: 0.043535s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 32/40 -[INFO] -[INFO] Testing domain: explorer.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: explorer.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for explorer.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 7 23:15:36 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: explorer.d-bis.org returned HTTP 200 (Time: 0.124822s) -[INFO] Test 3b: Blockscout API (optional) -[✓] Blockscout API: /api/v2/stats returned 200 with stats -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 33/40 -[INFO] -[INFO] Testing domain: dbis-api-2.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api-2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api-2.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:22 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api-2.d-bis.org returned HTTP 502 (Time: 3.126506s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 34/40 -[INFO] -[INFO] Testing domain: secure.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:28 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: secure.d-bis.org returned HTTP 502 (Time: 3.134512s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 35/40 -[INFO] -[INFO] Testing domain: rpc-hybx.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 36/40 -[INFO] -[INFO] Testing domain: codespaces.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: codespaces.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: codespaces.d-bis.org returned HTTP 200 (Time: 0.110483s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 37/40 -[INFO] -[INFO] Testing domain: rpc.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc.defi-oracle.io -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 -[INFO] Expires: May 7 09:51:23 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 38/40 -[INFO] -[INFO] Testing domain: rpc-ws-prv.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-prv.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-prv.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:38 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 39/40 -[INFO] -[INFO] Testing domain: cacti-alltra.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-alltra.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-alltra.d-bis.org returned HTTP 200 (Time: 0.121569s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 40/40 -[INFO] -[INFO] Testing domain: ws.rpc2.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc2.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 30 03:43:58 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] 📊 Verification Summary -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Total domains: 40 -[✓] DNS passed: 40 -[✓] HTTPS passed: 15 -[✓] Failed: 0 -[INFO] Average response time: 0.6783146666666666s - -[✓] Verification complete! -[✓] Report: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260221_152652/verification_report.md -[✓] All results: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260221_152652/all_e2e_results.json -| E2E routing | OK | `verify-end-to-end-routing.sh` (RPC may skip off-LAN) | - - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Explorer links + block production — quick check -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] 1. Explorer URL (https://explorer.d-bis.org) -[OK] Explorer HTTPS: 200 -[INFO] 2. Blockscout API (https://explorer.d-bis.org/api/v2/stats) -[OK] Blockscout API: 200 (total_blocks/tx: 2242811) -[INFO] 3. RPC (public) — eth_chainId -[OK] RPC: chainId 0x8a -[INFO] 4. Block production (RPC_CORE_1) -[OK] Block production: advancing (e.g. 2244149 → 2244151) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[OK] Quick check done. For full E2E: bash scripts/verify/verify-end-to-end-routing.sh -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -| Explorer + block production | OK | `verify-explorer-and-block-production.sh` | - -DRY-RUN: cast send 0x971cD9D156f193df8051E48043C476e53ECd4693 sendCrossChain(5009297550715157269,0x4A666F96fC8764181194447A7dFdb7d471b301C8,10000000000000000) --gas-price 1000000000 --legacy -Simulation: (check params) -| Bridge dry-run | OK | `run-send-cross-chain.sh 0.01 --dry-run` | - -[Security] Proxmox hosts: 192.168.11.10 192.168.11.11 192.168.11.12 (DRY_RUN=true) ---- 192.168.11.10 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.11 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.12 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 -Done. -| Security dry-run | OK | `run-security-on-proxmox-hosts.sh` (no --apply) | - -Crontab line: 0 3 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/verify/backup-npmplus.sh >> /home/intlc/projects/proxmox/logs/npmplus-backup.log 2>&1 -Daily (O-1, O-2): 0 8 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh daily >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -Weekly (O-3): 0 9 * * 0 cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh weekly >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -| Cron (show) | — | `schedule-npmplus-backup-cron.sh --show`, `schedule-daily-weekly-cron.sh --show` | - - ---- - -## Run from LAN / Proxmox (when ready) - -| # | What | Command | -|---|------|---------| -| 7 | Bridge (real) | `bash scripts/bridge/run-send-cross-chain.sh 0.01` | -| 8 | Security apply | `bash scripts/security/run-security-on-proxmox-hosts.sh --apply` | -| 13a | Deploy contracts | `cd smom-dbis-138 && source .env && bash scripts/deployment/deploy-all-contracts.sh` | -| 13c | Verify contracts (Blockscout) | `source smom-dbis-138/.env && ./scripts/verify/run-contract-verification-with-proxy.sh` | -| NPMplus backup | Backup NPMplus | `bash scripts/verify/backup-npmplus.sh` | -| Wave 0 from LAN | NPMplus RPC fix + backup | `bash scripts/run-wave0-from-lan.sh` | -| Validators + block production | Fix validators / tx-pool | `bash scripts/fix-all-validators-and-txpool.sh` then `scripts/monitoring/monitor-blockchain-health.sh` | - ---- - -## Manual / UI - -| # | What | Where | -|---|------|--------| -| 9 | ~~2506–2508~~ Destroyed 2026-02-08 (RPC 2500–2505 only) | N/A | -| 10 | Explorer SSL | NPMplus https://192.168.11.167:81 → SSL → Let's Encrypt explorer.d-bis.org | -| 11 | NPMplus cert 134 | NPMplus → SSL Certificates → cross-all.defi-oracle.io re-request/re-save | -| 12 | Wave 2 & 3 | [WAVE2_WAVE3_OPERATOR_CHECKLIST.md](../../00-meta/WAVE2_WAVE3_OPERATOR_CHECKLIST.md) | - ---- - -## References - -- [NEXT_STEPS_OPERATOR.md](../../00-meta/NEXT_STEPS_OPERATOR.md) -- [CONTINUE_AND_COMPLETE.md](../../00-meta/CONTINUE_AND_COMPLETE.md) -- [NEXT_STEPS_ALL.md](../../00-meta/NEXT_STEPS_ALL.md) -- [FULL_FIXES_PREPARED.md](../FULL_FIXES_PREPARED.md) diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_131244.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_131244.md deleted file mode 100644 index 9524eee..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_131244.md +++ /dev/null @@ -1,652 +0,0 @@ -# Next Steps — Automated Run - -**Date:** 2026-02-22T13:12:44-08:00 -**Report:** `/home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_131244.md` - -## Automated steps run - -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -| Dependencies | OK | `check-dependencies.sh` | - -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[OK] Found: config/token-mapping.json -[OK] token-mapping.json: valid JSON with .tokens array -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[OK] Found: config/smart-contracts-master.json -[OK] Env set: PROXMOX_TOKEN_VALUE -[OK] Env set: PROXMOX_HOST -[OK] Validation passed. -| Config validation | OK | `validate-config-files.sh` | - -=== Run all validation (no LAN/SSH) === - -1. Dependencies... -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -[✓] Dependencies OK - -2. Config files... -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[OK] Found: config/token-mapping.json -[OK] token-mapping.json: valid JSON with .tokens array -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[OK] Found: config/smart-contracts-master.json -[OK] Env set: PROXMOX_TOKEN_VALUE -[OK] Env set: PROXMOX_HOST -[OK] Validation passed. -[✓] Config validation OK - -3. Genesis — skipped (--skip-genesis) - -[✓] All validation passed. -| Run all validation | OK | `run-all-validation.sh --skip-genesis` | - -[INFO] ACCEPT_ANY_DNS=1 (CLOUDFLARE_TUNNEL_ID set, Option B tunnel) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🔍 End-to-End Routing Verification -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] Progress: domain 1/40 -[INFO] -[INFO] Testing domain: ws.rpc-fireblocks.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:48:21 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 2/40 -[INFO] -[INFO] Testing domain: dbis-admin.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-admin.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-admin.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:11 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-admin.d-bis.org returned HTTP 502 (Time: 3.119980s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 3/40 -[INFO] -[INFO] Testing domain: rpc-alltra-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-3.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 4/40 -[INFO] -[INFO] Testing domain: mifos.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mifos.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: mifos.d-bis.org returned HTTP 502 (Time: 0.114259s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 5/40 -[INFO] -[INFO] Testing domain: rpc-hybx-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 6/40 -[INFO] -[INFO] Testing domain: cacti-hybx.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-hybx.d-bis.org returned HTTP 200 (Time: 0.246566s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 7/40 -[INFO] -[INFO] Testing domain: sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:17 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: sankofa.nexus returned HTTP 200 (Time: 0.117960s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 8/40 -[INFO] -[INFO] Testing domain: rpc-alltra.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 9/40 -[INFO] -[INFO] Testing domain: rpc-http-pub.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-pub.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-pub.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 10/40 -[INFO] -[INFO] Testing domain: rpc.public-0138.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.public-0138.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: defi-oracle.io) -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 | Expires: Apr 4 08:26:02 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.public-0138.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 11/40 -[INFO] -[INFO] Testing domain: dbis-api.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:33 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api.d-bis.org returned HTTP 502 (Time: 3.220671s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 12/40 -[INFO] -[INFO] Testing domain: rpc-hybx-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-3.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 13/40 -[INFO] -[INFO] Testing domain: rpc.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 14/40 -[INFO] -[INFO] Testing domain: dapp.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dapp.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dapp.d-bis.org returned HTTP 200 (Time: 0.157589s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 15/40 -[INFO] -[INFO] Testing domain: www.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:41 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.sankofa.nexus returned HTTP 200 (Time: 0.035866s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 16/40 -[INFO] -[INFO] Testing domain: mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:01 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: mim4u.org returned HTTP 200 (Time: 0.225067s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 17/40 -[INFO] -[INFO] Testing domain: ws.rpc.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:43:05 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 18/40 -[INFO] -[INFO] Testing domain: phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:57:08 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: phoenix.sankofa.nexus returned HTTP 200 (Time: 0.042659s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 19/40 -[INFO] -[INFO] Testing domain: www.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:17 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: www.mim4u.org returned HTTP 502 (Time: 0.049049s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 20/40 -[INFO] -[INFO] Testing domain: wss.defi-oracle.io (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: wss.defi-oracle.io → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for wss.defi-oracle.io -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:44:57 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 21/40 -[INFO] -[INFO] Testing domain: the-order.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: the-order.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for the-order.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:53 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: the-order.sankofa.nexus returned HTTP 200 (Time: 0.040945s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 22/40 -[INFO] -[INFO] Testing domain: rpc2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 23/40 -[INFO] -[INFO] Testing domain: rpc-ws-pub.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-pub.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-pub.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:51 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 24/40 -[INFO] -[INFO] Testing domain: dev.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dev.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dev.d-bis.org returned HTTP 200 (Time: 0.128266s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 25/40 -[INFO] -[INFO] Testing domain: rpc-alltra-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 26/40 -[INFO] -[INFO] Testing domain: rpc-http-prv.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-prv.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-prv.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 27/40 -[INFO] -[INFO] Testing domain: www.phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:59:28 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.phoenix.sankofa.nexus returned HTTP 200 (Time: 0.032004s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 28/40 -[INFO] -[INFO] Testing domain: gitea.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: gitea.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: gitea.d-bis.org returned HTTP 200 (Time: 0.113133s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 29/40 -[INFO] -[INFO] Testing domain: secure.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.mim4u.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:40 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: secure.mim4u.org returned HTTP 200 (Time: 0.237809s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 30/40 -[INFO] -[INFO] Testing domain: rpc-fireblocks.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:47:15 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-fireblocks.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 31/40 -[INFO] -[INFO] Testing domain: training.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: training.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for training.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:06 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: training.mim4u.org returned HTTP 200 (Time: 0.102467s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 32/40 -[INFO] -[INFO] Testing domain: explorer.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: explorer.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for explorer.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 7 23:15:36 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: explorer.d-bis.org returned HTTP 200 (Time: 0.128960s) -[INFO] Test 3b: Blockscout API (optional) -[✓] Blockscout API: /api/v2/stats returned 200 with stats -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 33/40 -[INFO] -[INFO] Testing domain: dbis-api-2.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api-2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api-2.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:22 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api-2.d-bis.org returned HTTP 502 (Time: 3.184555s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 34/40 -[INFO] -[INFO] Testing domain: secure.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:28 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: secure.d-bis.org returned HTTP 502 (Time: 3.312970s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 35/40 -[INFO] -[INFO] Testing domain: rpc-hybx.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 36/40 -[INFO] -[INFO] Testing domain: codespaces.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: codespaces.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: codespaces.d-bis.org returned HTTP 200 (Time: 0.145601s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 37/40 -[INFO] -[INFO] Testing domain: rpc.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc.defi-oracle.io -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 -[INFO] Expires: May 7 09:51:23 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 38/40 -[INFO] -[INFO] Testing domain: rpc-ws-prv.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-prv.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-prv.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:38 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 39/40 -[INFO] -[INFO] Testing domain: cacti-alltra.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-alltra.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-alltra.d-bis.org returned HTTP 200 (Time: 0.138329s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 40/40 -[INFO] -[INFO] Testing domain: ws.rpc2.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc2.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 30 03:43:58 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] 📊 Verification Summary -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Total domains: 40 -[✓] DNS passed: 40 -[✓] HTTPS passed: 15 -[✓] Failed: 0 -[INFO] Average response time: 0.7092716666666666s - -[✓] Verification complete! -[✓] Report: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260222_131245/verification_report.md -[✓] All results: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260222_131245/all_e2e_results.json -| E2E routing | OK | `verify-end-to-end-routing.sh` (RPC may skip off-LAN) | - - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Explorer links + block production — quick check -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] 1. Explorer URL (https://explorer.d-bis.org) -[OK] Explorer HTTPS: 200 -[INFO] 2. Blockscout API (https://explorer.d-bis.org/api/v2/stats) -[OK] Blockscout API: 200 (total_blocks/tx: 2281081) -[INFO] 3. RPC (public) — eth_chainId -[OK] RPC: chainId 0x8a -[INFO] 4. Block production (RPC_CORE_1) -[OK] Block production: advancing (e.g. 2283271 → 2283272) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[OK] Quick check done. For full E2E: bash scripts/verify/verify-end-to-end-routing.sh -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -| Explorer + block production | OK | `verify-explorer-and-block-production.sh` | - -DRY-RUN: cast send 0x971cD9D156f193df8051E48043C476e53ECd4693 sendCrossChain(5009297550715157269,0x4A666F96fC8764181194447A7dFdb7d471b301C8,10000000000000000) --gas-price 1000000000 --legacy -Simulation: (check params) -| Bridge dry-run | OK | `run-send-cross-chain.sh 0.01 --dry-run` | - -[Security] Proxmox hosts: 192.168.11.10 192.168.11.11 192.168.11.12 (DRY_RUN=true) ---- 192.168.11.10 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.11 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.12 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 -Done. -| Security dry-run | OK | `run-security-on-proxmox-hosts.sh` (no --apply) | - -Crontab line: 0 3 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/verify/backup-npmplus.sh >> /home/intlc/projects/proxmox/logs/npmplus-backup.log 2>&1 -Daily (O-1, O-2): 0 8 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh daily >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -Weekly (O-3): 0 9 * * 0 cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh weekly >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -| Cron (show) | — | `schedule-npmplus-backup-cron.sh --show`, `schedule-daily-weekly-cron.sh --show` | - - ---- - -## Run from LAN / Proxmox (when ready) - -| # | What | Command | -|---|------|---------| -| 7 | Bridge (real) | `bash scripts/bridge/run-send-cross-chain.sh 0.01` | -| 8 | Security apply | `bash scripts/security/run-security-on-proxmox-hosts.sh --apply` | -| 13a | Deploy contracts | `cd smom-dbis-138 && source .env && bash scripts/deployment/deploy-all-contracts.sh` | -| 13c | Verify contracts (Blockscout) | `source smom-dbis-138/.env && ./scripts/verify/run-contract-verification-with-proxy.sh` | -| NPMplus backup | Backup NPMplus | `bash scripts/verify/backup-npmplus.sh` | -| Wave 0 from LAN | NPMplus RPC fix + backup | `bash scripts/run-wave0-from-lan.sh` | -| Validators + block production | Fix validators / tx-pool | `bash scripts/fix-all-validators-and-txpool.sh` then `scripts/monitoring/monitor-blockchain-health.sh` | - ---- - -## Manual / UI - -| # | What | Where | -|---|------|--------| -| 9 | ~~2506–2508~~ Destroyed 2026-02-08 (RPC 2500–2505 only) | N/A | -| 10 | Explorer SSL | NPMplus https://192.168.11.167:81 → SSL → Let's Encrypt explorer.d-bis.org | -| 11 | NPMplus cert 134 | NPMplus → SSL Certificates → cross-all.defi-oracle.io re-request/re-save | -| 12 | Wave 2 & 3 | [WAVE2_WAVE3_OPERATOR_CHECKLIST.md](../../00-meta/WAVE2_WAVE3_OPERATOR_CHECKLIST.md) | - ---- - -## References - -- [NEXT_STEPS_OPERATOR.md](../../00-meta/NEXT_STEPS_OPERATOR.md) -- [CONTINUE_AND_COMPLETE.md](../../00-meta/CONTINUE_AND_COMPLETE.md) -- [NEXT_STEPS_ALL.md](../../00-meta/NEXT_STEPS_ALL.md) -- [FULL_FIXES_PREPARED.md](../FULL_FIXES_PREPARED.md) diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_161727.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_161727.md deleted file mode 100644 index b43a926..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_161727.md +++ /dev/null @@ -1,652 +0,0 @@ -# Next Steps — Automated Run - -**Date:** 2026-02-22T16:17:27-08:00 -**Report:** `/home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260222_161727.md` - -## Automated steps run - -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -| Dependencies | OK | `check-dependencies.sh` | - -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[OK] Found: config/token-mapping.json -[OK] token-mapping.json: valid JSON with .tokens array -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[OK] Found: config/smart-contracts-master.json -[OK] Env set: PROXMOX_TOKEN_VALUE -[OK] Env set: PROXMOX_HOST -[OK] Validation passed. -| Config validation | OK | `validate-config-files.sh` | - -=== Run all validation (no LAN/SSH) === - -1. Dependencies... -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -[✓] Dependencies OK - -2. Config files... -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[OK] Found: config/token-mapping.json -[OK] token-mapping.json: valid JSON with .tokens array -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[OK] Found: config/smart-contracts-master.json -[OK] Env set: PROXMOX_TOKEN_VALUE -[OK] Env set: PROXMOX_HOST -[OK] Validation passed. -[✓] Config validation OK - -3. Genesis — skipped (--skip-genesis) - -[✓] All validation passed. -| Run all validation | OK | `run-all-validation.sh --skip-genesis` | - -[INFO] ACCEPT_ANY_DNS=1 (CLOUDFLARE_TUNNEL_ID set, Option B tunnel) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🔍 End-to-End Routing Verification -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] Progress: domain 1/40 -[INFO] -[INFO] Testing domain: ws.rpc-fireblocks.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:48:21 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 2/40 -[INFO] -[INFO] Testing domain: dbis-admin.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-admin.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-admin.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:11 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-admin.d-bis.org returned HTTP 502 (Time: 3.128418s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 3/40 -[INFO] -[INFO] Testing domain: rpc-alltra-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-3.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 4/40 -[INFO] -[INFO] Testing domain: mifos.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mifos.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: mifos.d-bis.org returned HTTP 502 (Time: 0.119337s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 5/40 -[INFO] -[INFO] Testing domain: rpc-hybx-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-2.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 6/40 -[INFO] -[INFO] Testing domain: cacti-hybx.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-hybx.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-hybx.d-bis.org returned HTTP 200 (Time: 0.137154s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 7/40 -[INFO] -[INFO] Testing domain: sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:17 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: sankofa.nexus returned HTTP 200 (Time: 0.089862s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 8/40 -[INFO] -[INFO] Testing domain: rpc-alltra.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 9/40 -[INFO] -[INFO] Testing domain: rpc-http-pub.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-pub.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-pub.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 10/40 -[INFO] -[INFO] Testing domain: rpc.public-0138.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.public-0138.defi-oracle.io → 104.21.91.43 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: defi-oracle.io) -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 | Expires: Apr 4 08:26:02 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.public-0138.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 11/40 -[INFO] -[INFO] Testing domain: dbis-api.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:33 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api.d-bis.org returned HTTP 502 (Time: 3.141858s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 12/40 -[INFO] -[INFO] Testing domain: rpc-hybx-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-3.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 13/40 -[INFO] -[INFO] Testing domain: rpc.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 14/40 -[INFO] -[INFO] Testing domain: dapp.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dapp.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dapp.d-bis.org returned HTTP 200 (Time: 0.127048s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 15/40 -[INFO] -[INFO] Testing domain: www.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:41 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.sankofa.nexus returned HTTP 200 (Time: 0.088257s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 16/40 -[INFO] -[INFO] Testing domain: mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:01 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: mim4u.org returned HTTP 200 (Time: 0.039595s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 17/40 -[INFO] -[INFO] Testing domain: ws.rpc.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:43:05 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 18/40 -[INFO] -[INFO] Testing domain: phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:57:08 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: phoenix.sankofa.nexus returned HTTP 200 (Time: 0.055765s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 19/40 -[INFO] -[INFO] Testing domain: www.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:17 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: www.mim4u.org returned HTTP 502 (Time: 0.033667s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 20/40 -[INFO] -[INFO] Testing domain: wss.defi-oracle.io (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: wss.defi-oracle.io → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for wss.defi-oracle.io -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:44:57 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 21/40 -[INFO] -[INFO] Testing domain: the-order.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: the-order.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for the-order.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:53 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: the-order.sankofa.nexus returned HTTP 200 (Time: 0.082463s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 22/40 -[INFO] -[INFO] Testing domain: rpc2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 23/40 -[INFO] -[INFO] Testing domain: rpc-ws-pub.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-pub.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-pub.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:51 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 24/40 -[INFO] -[INFO] Testing domain: dev.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dev.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dev.d-bis.org returned HTTP 200 (Time: 0.110223s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 25/40 -[INFO] -[INFO] Testing domain: rpc-alltra-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-2.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 26/40 -[INFO] -[INFO] Testing domain: rpc-http-prv.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-prv.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-prv.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 27/40 -[INFO] -[INFO] Testing domain: www.phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:59:28 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.phoenix.sankofa.nexus returned HTTP 200 (Time: 0.034922s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 28/40 -[INFO] -[INFO] Testing domain: gitea.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: gitea.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: gitea.d-bis.org returned HTTP 200 (Time: 0.113086s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 29/40 -[INFO] -[INFO] Testing domain: secure.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.mim4u.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:40 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: secure.mim4u.org returned HTTP 200 (Time: 0.037024s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 30/40 -[INFO] -[INFO] Testing domain: rpc-fireblocks.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:47:15 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-fireblocks.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 31/40 -[INFO] -[INFO] Testing domain: training.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: training.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for training.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:06 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: training.mim4u.org returned HTTP 200 (Time: 0.029561s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 32/40 -[INFO] -[INFO] Testing domain: explorer.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: explorer.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for explorer.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 7 23:15:36 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: explorer.d-bis.org returned HTTP 200 (Time: 0.043229s) -[INFO] Test 3b: Blockscout API (optional) -[✓] Blockscout API: /api/v2/stats returned 200 with stats -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 33/40 -[INFO] -[INFO] Testing domain: dbis-api-2.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api-2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api-2.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:22 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api-2.d-bis.org returned HTTP 502 (Time: 3.090385s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 34/40 -[INFO] -[INFO] Testing domain: secure.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:28 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: secure.d-bis.org returned HTTP 502 (Time: 3.098299s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 35/40 -[INFO] -[INFO] Testing domain: rpc-hybx.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 36/40 -[INFO] -[INFO] Testing domain: codespaces.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: codespaces.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: codespaces.d-bis.org returned HTTP 200 (Time: 0.128088s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 37/40 -[INFO] -[INFO] Testing domain: rpc.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc.defi-oracle.io -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 -[INFO] Expires: May 7 09:51:23 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 38/40 -[INFO] -[INFO] Testing domain: rpc-ws-prv.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-prv.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-prv.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:38 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 39/40 -[INFO] -[INFO] Testing domain: cacti-alltra.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-alltra.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-alltra.d-bis.org returned HTTP 200 (Time: 0.129389s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 40/40 -[INFO] -[INFO] Testing domain: ws.rpc2.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc2.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 30 03:43:58 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] 📊 Verification Summary -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Total domains: 40 -[✓] DNS passed: 40 -[✓] HTTPS passed: 15 -[✓] Failed: 0 -[INFO] Average response time: 0.6598871428571428s - -[✓] Verification complete! -[✓] Report: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260222_161727/verification_report.md -[✓] All results: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260222_161727/all_e2e_results.json -| E2E routing | OK | `verify-end-to-end-routing.sh` (RPC may skip off-LAN) | - - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Explorer links + block production — quick check -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] 1. Explorer URL (https://explorer.d-bis.org) -[OK] Explorer HTTPS: 200 -[INFO] 2. Blockscout API (https://explorer.d-bis.org/api/v2/stats) -[OK] Blockscout API: 200 (total_blocks/tx: 2288290) -[INFO] 3. RPC (public) — eth_chainId -[OK] RPC: chainId 0x8a -[INFO] 4. Block production (RPC_CORE_1) -[OK] Block production: advancing (e.g. 2288803 → 2288804) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[OK] Quick check done. For full E2E: bash scripts/verify/verify-end-to-end-routing.sh -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -| Explorer + block production | OK | `verify-explorer-and-block-production.sh` | - -DRY-RUN: cast send 0x971cD9D156f193df8051E48043C476e53ECd4693 sendCrossChain(5009297550715157269,0x4A666F96fC8764181194447A7dFdb7d471b301C8,10000000000000000) --gas-price 1000000000 --legacy -Simulation: (check params) -| Bridge dry-run | OK | `run-send-cross-chain.sh 0.01 --dry-run` | - -[Security] Proxmox hosts: 192.168.11.10 192.168.11.11 192.168.11.12 (DRY_RUN=true) ---- 192.168.11.10 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.11 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.12 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 -Done. -| Security dry-run | OK | `run-security-on-proxmox-hosts.sh` (no --apply) | - -Crontab line: 0 3 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/verify/backup-npmplus.sh >> /home/intlc/projects/proxmox/logs/npmplus-backup.log 2>&1 -Daily (O-1, O-2): 0 8 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh daily >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -Weekly (O-3): 0 9 * * 0 cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh weekly >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -| Cron (show) | — | `schedule-npmplus-backup-cron.sh --show`, `schedule-daily-weekly-cron.sh --show` | - - ---- - -## Run from LAN / Proxmox (when ready) - -| # | What | Command | -|---|------|---------| -| 7 | Bridge (real) | `bash scripts/bridge/run-send-cross-chain.sh 0.01` | -| 8 | Security apply | `bash scripts/security/run-security-on-proxmox-hosts.sh --apply` | -| 13a | Deploy contracts | `cd smom-dbis-138 && source .env && bash scripts/deployment/deploy-all-contracts.sh` | -| 13c | Verify contracts (Blockscout) | `source smom-dbis-138/.env && ./scripts/verify/run-contract-verification-with-proxy.sh` | -| NPMplus backup | Backup NPMplus | `bash scripts/verify/backup-npmplus.sh` | -| Wave 0 from LAN | NPMplus RPC fix + backup | `bash scripts/run-wave0-from-lan.sh` | -| Validators + block production | Fix validators / tx-pool | `bash scripts/fix-all-validators-and-txpool.sh` then `scripts/monitoring/monitor-blockchain-health.sh` | - ---- - -## Manual / UI - -| # | What | Where | -|---|------|--------| -| 9 | ~~2506–2508~~ Destroyed 2026-02-08 (RPC 2500–2505 only) | N/A | -| 10 | Explorer SSL | NPMplus https://192.168.11.167:81 → SSL → Let's Encrypt explorer.d-bis.org | -| 11 | NPMplus cert 134 | NPMplus → SSL Certificates → cross-all.defi-oracle.io re-request/re-save | -| 12 | Wave 2 & 3 | [WAVE2_WAVE3_OPERATOR_CHECKLIST.md](../../00-meta/WAVE2_WAVE3_OPERATOR_CHECKLIST.md) | - ---- - -## References - -- [NEXT_STEPS_OPERATOR.md](../../00-meta/NEXT_STEPS_OPERATOR.md) -- [CONTINUE_AND_COMPLETE.md](../../00-meta/CONTINUE_AND_COMPLETE.md) -- [NEXT_STEPS_ALL.md](../../00-meta/NEXT_STEPS_ALL.md) -- [FULL_FIXES_PREPARED.md](../FULL_FIXES_PREPARED.md) diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260223_SMOM_DEPLOYMENT.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260223_SMOM_DEPLOYMENT.md deleted file mode 100644 index c40750a..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260223_SMOM_DEPLOYMENT.md +++ /dev/null @@ -1,33 +0,0 @@ -# Next Steps — smom-dbis-138 deployment completion run - -**Date:** 2026-02-23 -**Scope:** Tree-of-thought processing of all completions; resources across project. - -## Verification results (this run) - -| Check | Result | -|-------|--------| -| **Chain 138 full deployment** | 14 success, 2 warnings, 0 errors (RPC, WETH9/10, CCIP, bridges, .env, connectivity). | -| **DApp env (check-dapp-env.sh)** | Required VITE_* for DApp build are set. | - -## Completion artifacts created/updated - -- **smom-dbis-138/docs/deployment/COMPLETION_RUN_20260223_ALL_STEPS.md** — Full run report (G1/G2 optional, run-all-four-gaps, CCIPLogger, operator checklist). -- **smom-dbis-138/docs/deployment/NEXT_STEPS_COMPLETION.md** — Session "continue and complete including optional" added; link to completion run. -- **smom-dbis-138/docs/deployment/DEPLOYMENT_INDEX.md** — Link to "Latest completion run (all steps including optional)." -- **docs/00-meta/NEXT_STEPS_AND_REMAINING_TODOS.md** — Completed in this pass (2026-02-23) for smom-dbis-138 deployment. - -## Optional and next steps (same day) - -| Check | Result | -|-------|--------| -| **Completable from anywhere** | Config OK; on-chain 36/36; run-all-validation --skip-genesis OK; reconcile-env --print. | -| **Shellcheck (optional)** | `run-shellcheck.sh --optional` now exits 0 (reports only); CI and validate pass. | -| **Validate via Proxmox SSH** | `run-via-proxmox-ssh.sh validate`: full shellcheck + genesis validation; jq installed on host when missing; genesis passed (JSON, chainId 138, extraData, QBFT, gas limit). | -| **Docs** | TODOS_CONSOLIDATED, OPERATOR_AND_EXTERNAL_COMPLETION_CHECKLIST, NEXT_STEPS_FOR_YOU updated with validate command and 2026-02-23 completions. | - -## Cross-references - -- Single runbook: smom-dbis-138/docs/deployment/ALL_NEXT_STEPS_CURRENT.md -- Project next steps index: docs/00-meta/NEXT_STEPS_INDEX.md -- Operator checklist: docs/00-meta/OPERATOR_AND_EXTERNAL_COMPLETION_CHECKLIST.md diff --git a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260224_021728.md b/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260224_021728.md deleted file mode 100644 index be12023..0000000 --- a/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260224_021728.md +++ /dev/null @@ -1,648 +0,0 @@ -# Next Steps — Automated Run - -**Date:** 2026-02-24T02:17:28-08:00 -**Report:** `/home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/NEXT_STEPS_RUN_20260224_021728.md` - -## Automated steps run - -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -| Dependencies | OK | `check-dependencies.sh` | - -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional config/token-mapping.json not found (relay uses fallback mapping) -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -| Config validation | OK | `validate-config-files.sh` | - -=== Run all validation (no LAN/SSH) === - -1. Dependencies... -All required dependencies present: bash curl jq openssl ssh -Optional (recommended for automation): sshpass rsync dig ss sqlite3 wscat websocat screen tmux htop shellcheck parallel -Missing optional: sqlite3 wscat websocat screen htop shellcheck parallel -Install (Debian/Ubuntu): sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel sqlite3 - (dig from dnsutils; ss from iproute2; wscat/websocat: npm install -g wscat or cargo install websocat) -[✓] Dependencies OK - -2. Config files... -[OK] Found: /home/intlc/projects/proxmox/config/ip-addresses.conf -[OK] .env.example present (copy to .env and fill) -[WARN] Optional config/token-mapping.json not found (relay uses fallback mapping) -[OK] Found: config/token-mapping-multichain.json -[OK] token-mapping-multichain.json: valid JSON with .pairs array -[WARN] Optional env not set: PROXMOX_TOKEN_VALUE -[WARN] Optional env not set: PROXMOX_HOST -[OK] Validation passed. -[✓] Config validation OK - -3. Genesis — skipped (--skip-genesis) - -[✓] All validation passed. -| Run all validation | OK | `run-all-validation.sh --skip-genesis` | - -[INFO] ACCEPT_ANY_DNS=1 (CLOUDFLARE_TUNNEL_ID in .env, Option B tunnel) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🔍 End-to-End Routing Verification -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] Progress: domain 1/40 -[INFO] -[INFO] Testing domain: ws.rpc-fireblocks.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:48:21 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 2/40 -[INFO] -[INFO] Testing domain: dbis-admin.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-admin.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-admin.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:11 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-admin.d-bis.org returned HTTP 502 (Time: 3.451060s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 3/40 -[INFO] -[INFO] Testing domain: rpc-alltra-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-3.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 4/40 -[INFO] -[INFO] Testing domain: mifos.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mifos.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: mifos.d-bis.org returned HTTP 502 (Time: 0.095671s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 5/40 -[INFO] -[INFO] Testing domain: rpc-hybx-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 6/40 -[INFO] -[INFO] Testing domain: cacti-hybx.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-hybx.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-hybx.d-bis.org returned HTTP 200 (Time: 0.098267s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 7/40 -[INFO] -[INFO] Testing domain: sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:17 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: sankofa.nexus returned HTTP 200 (Time: 0.739150s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 8/40 -[INFO] -[INFO] Testing domain: rpc-alltra.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 9/40 -[INFO] -[INFO] Testing domain: rpc-http-pub.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-pub.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-pub.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 10/40 -[INFO] -[INFO] Testing domain: rpc.public-0138.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.public-0138.defi-oracle.io → 172.67.209.228 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: defi-oracle.io) -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 | Expires: Apr 4 08:26:02 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.public-0138.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 11/40 -[INFO] -[INFO] Testing domain: dbis-api.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:33 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api.d-bis.org returned HTTP 502 (Time: 3.387248s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 12/40 -[INFO] -[INFO] Testing domain: rpc-hybx-3.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx-3.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx-3.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 13/40 -[INFO] -[INFO] Testing domain: rpc.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 14/40 -[INFO] -[INFO] Testing domain: dapp.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dapp.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dapp.d-bis.org returned HTTP 200 (Time: 0.564178s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 15/40 -[INFO] -[INFO] Testing domain: www.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.sankofa.nexus -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:41 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.sankofa.nexus returned HTTP 200 (Time: 0.115558s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 16/40 -[INFO] -[INFO] Testing domain: mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:01 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: mim4u.org returned HTTP 200 (Time: 0.245865s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 17/40 -[INFO] -[INFO] Testing domain: ws.rpc.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:43:05 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 18/40 -[INFO] -[INFO] Testing domain: phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:57:08 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: phoenix.sankofa.nexus returned HTTP 200 (Time: 0.022134s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 19/40 -[INFO] -[INFO] Testing domain: www.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:17 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: www.mim4u.org returned HTTP 502 (Time: 0.036693s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 20/40 -[INFO] -[INFO] Testing domain: wss.defi-oracle.io (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: wss.defi-oracle.io → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for wss.defi-oracle.io -[INFO] Issuer: E8 -[INFO] Expires: Apr 30 03:44:57 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 21/40 -[INFO] -[INFO] Testing domain: the-order.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: the-order.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for the-order.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:53 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: the-order.sankofa.nexus returned HTTP 200 (Time: 0.027754s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 22/40 -[INFO] -[INFO] Testing domain: rpc2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc2.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 23/40 -[INFO] -[INFO] Testing domain: rpc-ws-pub.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-pub.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-pub.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:51 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 24/40 -[INFO] -[INFO] Testing domain: dev.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dev.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: dev.d-bis.org returned HTTP 200 (Time: 0.100021s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 25/40 -[INFO] -[INFO] Testing domain: rpc-alltra-2.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-alltra-2.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-alltra-2.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 26/40 -[INFO] -[INFO] Testing domain: rpc-http-prv.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-http-prv.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-http-prv.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 27/40 -[INFO] -[INFO] Testing domain: www.phoenix.sankofa.nexus (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: www.phoenix.sankofa.nexus → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for www.phoenix.sankofa.nexus -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:59:28 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: www.phoenix.sankofa.nexus returned HTTP 200 (Time: 0.039005s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 28/40 -[INFO] -[INFO] Testing domain: gitea.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: gitea.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: gitea.d-bis.org returned HTTP 200 (Time: 0.263958s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 29/40 -[INFO] -[INFO] Testing domain: secure.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.mim4u.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:58:40 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: secure.mim4u.org returned HTTP 200 (Time: 1.298434s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 30/40 -[INFO] -[INFO] Testing domain: rpc-fireblocks.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-fireblocks.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-fireblocks.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 22 21:47:15 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-fireblocks.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 31/40 -[INFO] -[INFO] Testing domain: training.mim4u.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: training.mim4u.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for training.mim4u.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:59:06 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: training.mim4u.org returned HTTP 200 (Time: 0.105051s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 32/40 -[INFO] -[INFO] Testing domain: explorer.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: explorer.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for explorer.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: May 7 23:15:36 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: explorer.d-bis.org returned HTTP 200 (Time: 0.114070s) -[INFO] Test 3b: Blockscout API (optional) -[✓] Blockscout API: /api/v2/stats returned 200 with stats -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 33/40 -[INFO] -[INFO] Testing domain: dbis-api-2.d-bis.org (type: api) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: dbis-api-2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for dbis-api-2.d-bis.org -[INFO] Issuer: E8 -[INFO] Expires: Apr 16 20:56:22 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: dbis-api-2.d-bis.org returned HTTP 502 (Time: 3.368152s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 34/40 -[INFO] -[INFO] Testing domain: secure.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: secure.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for secure.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:58:28 2026 GMT -[INFO] Test 3: HTTPS Request -[⚠] HTTPS: secure.d-bis.org returned HTTP 502 (Time: 3.132169s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 35/40 -[INFO] -[INFO] Testing domain: rpc-hybx.d-bis.org (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-hybx.d-bis.org → 172.67.220.49 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc-hybx.d-bis.org responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 36/40 -[INFO] -[INFO] Testing domain: codespaces.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: codespaces.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: codespaces.d-bis.org returned HTTP 200 (Time: 0.266517s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 37/40 -[INFO] -[INFO] Testing domain: rpc.defi-oracle.io (type: rpc-http) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc.defi-oracle.io → 104.21.91.43 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc.defi-oracle.io -[INFO] Issuer: Cloudflare TLS Issuing ECC CA 3 -[INFO] Expires: May 7 09:51:23 2026 GMT -[INFO] Test 4: RPC HTTP Request -[✓] RPC: rpc.defi-oracle.io responded with chainId: 0x8a -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 38/40 -[INFO] -[INFO] Testing domain: rpc-ws-prv.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: rpc-ws-prv.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for rpc-ws-prv.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 16 20:57:38 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 39/40 -[INFO] -[INFO] Testing domain: cacti-alltra.d-bis.org (type: web) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: cacti-alltra.d-bis.org → 104.21.86.131 (accepted, ACCEPT_ANY_DNS=1) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate (shared CN: d-bis.org) -[INFO] Issuer: WE1 | Expires: Mar 29 06:24:38 2026 GMT -[INFO] Test 3: HTTPS Request -[✓] HTTPS: cacti-alltra.d-bis.org returned HTTP 200 (Time: 0.121978s) -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] Progress: domain 40/40 -[INFO] -[INFO] Testing domain: ws.rpc2.d-bis.org (type: rpc-ws) -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Test 1: DNS Resolution -[✓] DNS: ws.rpc2.d-bis.org → 76.53.10.36 (correct) -[INFO] Test 2: SSL Certificate -[✓] SSL: Valid certificate for ws.rpc2.d-bis.org -[INFO] Issuer: E7 -[INFO] Expires: Apr 30 03:43:58 2026 GMT -[INFO] Test 5: WebSocket Connection -[⚠] WebSocket: Basic test (Code: 400) - Install wscat for full test: npm install -g wscat -[INFO] Test 6: Internal connectivity (documented in report) -[INFO] -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] 📊 Verification Summary -[INFO] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[INFO] Total domains: 40 -[✓] DNS passed: 40 -[✓] HTTPS passed: 15 -[✓] Failed: 0 -[INFO] Average response time: 0.8377587142857142s - -[✓] Verification complete! -[✓] Report: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260224_021728/verification_report.md -[✓] All results: /home/intlc/projects/proxmox/docs/04-configuration/verification-evidence/e2e-verification-20260224_021728/all_e2e_results.json -| E2E routing | OK | `verify-end-to-end-routing.sh` (RPC may skip off-LAN) | - - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -Explorer links + block production — quick check -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -[INFO] 1. Explorer URL (https://explorer.d-bis.org) -[OK] Explorer HTTPS: 200 -[INFO] 2. Blockscout API (https://explorer.d-bis.org/api/v2/stats) -[OK] Blockscout API: 200 (total_blocks/tx: 2344712) -[INFO] 3. RPC (public) — eth_chainId -[OK] RPC: chainId 0x8a -[INFO] 4. Block production (RPC_CORE_1) -[OK] Block production: advancing (e.g. 2345230 → 2345231) - -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -[OK] Quick check done. For full E2E: bash scripts/verify/verify-end-to-end-routing.sh -━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -| Explorer + block production | OK | `verify-explorer-and-block-production.sh` | - -DRY-RUN: cast send 0x971cD9D156f193df8051E48043C476e53ECd4693 sendCrossChain(5009297550715157269,0x4A666F96fC8764181194447A7dFdb7d471b301C8,10000000000000000) --gas-price 1000000000 --legacy -Simulation: (check params) -| Bridge dry-run | OK | `run-send-cross-chain.sh 0.01 --dry-run` | - -[Security] Proxmox hosts: 192.168.11.10 192.168.11.11 192.168.11.12 (DRY_RUN=true) ---- 192.168.11.10 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.11 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 ---- 192.168.11.12 --- - Would run: SSH key-only (disable password) + UFW allow 192.168.11.0/24 to 8006 -Done. -| Security dry-run | OK | `run-security-on-proxmox-hosts.sh` (no --apply) | - -Crontab line: 0 3 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/verify/backup-npmplus.sh >> /home/intlc/projects/proxmox/logs/npmplus-backup.log 2>&1 -Daily (O-1, O-2): 0 8 * * * cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh daily >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -Weekly (O-3): 0 9 * * 0 cd /home/intlc/projects/proxmox && bash /home/intlc/projects/proxmox/scripts/maintenance/daily-weekly-checks.sh weekly >> /home/intlc/projects/proxmox/logs/daily-weekly-checks.log 2>&1 -| Cron (show) | — | `schedule-npmplus-backup-cron.sh --show`, `schedule-daily-weekly-cron.sh --show` | - - ---- - -## Run from LAN / Proxmox (when ready) - -| # | What | Command | -|---|------|---------| -| 7 | Bridge (real) | `bash scripts/bridge/run-send-cross-chain.sh 0.01` | -| 8 | Security apply | `bash scripts/security/run-security-on-proxmox-hosts.sh --apply` | -| 13a | Deploy contracts | `cd smom-dbis-138 && source .env && bash scripts/deployment/deploy-all-contracts.sh` | -| 13c | Verify contracts (Blockscout) | `source smom-dbis-138/.env && ./scripts/verify/run-contract-verification-with-proxy.sh` | -| NPMplus backup | Backup NPMplus | `bash scripts/verify/backup-npmplus.sh` | -| Wave 0 from LAN | NPMplus RPC fix + backup | `bash scripts/run-wave0-from-lan.sh` | -| Validators + block production | Fix validators / tx-pool | `bash scripts/fix-all-validators-and-txpool.sh` then `scripts/monitoring/monitor-blockchain-health.sh` | - ---- - -## Manual / UI - -| # | What | Where | -|---|------|--------| -| 9 | ~~2506–2508~~ Destroyed 2026-02-08 (RPC 2500–2505 only) | N/A | -| 10 | Explorer SSL | NPMplus https://192.168.11.167:81 → SSL → Let's Encrypt explorer.d-bis.org | -| 11 | NPMplus cert 134 | NPMplus → SSL Certificates → cross-all.defi-oracle.io re-request/re-save | -| 12 | Wave 2 & 3 | [WAVE2_WAVE3_OPERATOR_CHECKLIST.md](../../00-meta/WAVE2_WAVE3_OPERATOR_CHECKLIST.md) | - ---- - -## References - -- [NEXT_STEPS_OPERATOR.md](../../00-meta/NEXT_STEPS_OPERATOR.md) -- [CONTINUE_AND_COMPLETE.md](../../00-meta/CONTINUE_AND_COMPLETE.md) -- [NEXT_STEPS_ALL.md](../../00-meta/NEXT_STEPS_ALL.md) -- [FULL_FIXES_PREPARED.md](../FULL_FIXES_PREPARED.md) diff --git a/phoenix-deploy-api/README.md b/phoenix-deploy-api/README.md index 0708354..a187c54 100644 --- a/phoenix-deploy-api/README.md +++ b/phoenix-deploy-api/README.md @@ -8,8 +8,18 @@ Gitea webhook receiver and deploy endpoint stub for Gitea → Phoenix deployment |--------|------|-------------| | POST | /webhook/gitea | Receives Gitea push/tag/PR webhooks | | POST | /api/deploy | Deploy request (repo, branch, target) | +| GET | /api/v1/infra/nodes | Cluster nodes (Proxmox; stub if PROXMOX_* unset) | +| GET | /api/v1/infra/storage | Storage pools (Proxmox; stub if unset) | +| GET | /api/v1/ve/vms | List VMs/CTs (optional `?node=`) | +| GET | /api/v1/ve/vms/:node/:vmid/status | VM/CT status (`?type=lxc` for containers) | +| POST | /api/v1/ve/vms/:node/:vmid/start, stop, reboot | VM/CT lifecycle (set PHOENIX_VE_LIFECYCLE_ENABLED=1) | +| GET | /api/v1/health/metrics | Prometheus query proxy (`?query=`) | +| GET | /api/v1/health/alerts | Active alerts (optional PROMETHEUS_ALERTS_URL) | +| GET | /api/v1/health/summary | Aggregated health for Portal | | GET | /health | Health check | +All `/api/v1/*` routes accept optional partner API key when `PHOENIX_PARTNER_KEYS` is set (`X-API-Key` or `Authorization: Bearer `). + ## Environment Copy `.env.example` to `.env` and set `GITEA_TOKEN` (and optionally `PHOENIX_DEPLOY_SECRET`). @@ -20,6 +30,18 @@ Copy `.env.example` to `.env` and set `GITEA_TOKEN` (and optionally `PHOENIX_DEP | GITEA_URL | https://gitea.d-bis.org | Gitea instance URL | | GITEA_TOKEN | | Token for commit status API | | PHOENIX_DEPLOY_SECRET | | Optional secret for webhook/deploy auth | +| PROXMOX_HOST | | Proxmox host (IP or hostname) for API Railing | +| PROXMOX_PORT | 8006 | Proxmox API port | +| PROXMOX_USER | root@pam | Proxmox API user | +| PROXMOX_TOKEN_NAME | | Proxmox API token name | +| PROXMOX_TOKEN_VALUE | | Proxmox API token secret | +| PROXMOX_TLS_VERIFY | 1 | Set to 0 to allow self-signed Proxmox certs | +| PHOENIX_VE_LIFECYCLE_ENABLED | 0 | Set to 1 to enable VM/CT start/stop/reboot | +| PROMETHEUS_URL | http://localhost:9090 | Prometheus base URL for Health API | +| PROMETHEUS_ALERTS_URL | (PROMETHEUS_URL)/api/v1/alerts | Optional; use Alertmanager URL for firing alerts | +| PHOENIX_WEBHOOK_URL | | Outbound webhook URL; POST deploy events with X-Phoenix-Signature | +| PHOENIX_WEBHOOK_SECRET | | Secret to sign webhook payloads (HMAC-SHA256) | +| PHOENIX_PARTNER_KEYS | | Comma-separated API keys for /api/v1/* (optional) | ## Gitea Webhook Configuration @@ -43,6 +65,11 @@ curl -X POST "https://phoenix-api-host/api/deploy" \ This service is a standalone stub. Full deployment logic should be implemented in the Sankofa Phoenix API (VMID 8600). Migrate the webhook handler and deploy logic into the Phoenix API when ready. +## OpenAPI / Swagger + +- **Spec:** [openapi.yaml](openapi.yaml) +- **HTML doc:** [docs/index.html](docs/index.html) — static Swagger UI; open locally or serve from `phoenix-deploy-api/docs/` (loads `../openapi.yaml`). To serve in-app, add `swagger-ui-express` and mount at e.g. `/api-docs`. + ## Run ```bash diff --git a/phoenix-deploy-api/docs/index.html b/phoenix-deploy-api/docs/index.html new file mode 100644 index 0000000..4861924 --- /dev/null +++ b/phoenix-deploy-api/docs/index.html @@ -0,0 +1,26 @@ + + + + + + Phoenix Deploy API — OpenAPI + + + +
+ + + + diff --git a/phoenix-deploy-api/openapi.yaml b/phoenix-deploy-api/openapi.yaml new file mode 100644 index 0000000..be0e5b3 --- /dev/null +++ b/phoenix-deploy-api/openapi.yaml @@ -0,0 +1,256 @@ +openapi: 3.0.3 +info: + title: Phoenix Deploy API / Phoenix API Railing + description: | + Gitea webhook, deploy stub, and Phoenix API Railing (Infra, VE, Health). + Optional partner API key for /api/v1/* when PHOENIX_PARTNER_KEYS is set. + version: 1.0.0 + +servers: + - url: http://localhost:4001 + description: Default + +tags: + - name: Webhook + - name: Infra + - name: VE + - name: Health + - name: System + +paths: + /health: + get: + tags: [System] + summary: Health check + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + status: { type: string } + service: { type: string } + + /webhook/gitea: + post: + tags: [Webhook] + summary: Gitea webhook receiver + requestBody: + required: true + content: + application/json: + schema: { type: object } + responses: + '200': { description: Accepted } + '400': { description: No payload } + '401': { description: Invalid signature } + + /api/deploy: + post: + tags: [Webhook] + summary: Deploy request + requestBody: + content: + application/json: + schema: + type: object + required: [repo] + properties: + repo: { type: string } + branch: { type: string } + target: { type: string } + sha: { type: string } + responses: + '202': { description: Accepted } + '401': { description: Unauthorized } + + /api/v1/infra/nodes: + get: + tags: [Infra] + summary: List cluster nodes + responses: + '200': + content: + application/json: + schema: + type: object + properties: + nodes: { type: array } + stub: { type: boolean } + '502': { description: Proxmox error } + + /api/v1/infra/storage: + get: + tags: [Infra] + summary: List storage pools + responses: + '200': + content: + application/json: + schema: + type: object + properties: + storage: { type: array } + stub: { type: boolean } + '502': { description: Proxmox error } + + /api/v1/ve/vms: + get: + tags: [VE] + summary: List VMs/CTs + parameters: + - name: node + in: query + schema: { type: string } + responses: + '200': + content: + application/json: + schema: + type: object + properties: + vms: { type: array } + stub: { type: boolean } + '502': { description: Proxmox error } + + /api/v1/ve/vms/{node}/{vmid}/status: + get: + tags: [VE] + summary: VM/CT status + parameters: + - name: node + in: path + required: true + schema: { type: string } + - name: vmid + in: path + required: true + schema: { type: string } + - name: type + in: query + schema: { type: string, enum: [qemu, lxc], default: qemu } + responses: + '200': { description: Status object } + '502': { description: Proxmox error } + + /api/v1/ve/vms/{node}/{vmid}/start: + post: + tags: [VE] + summary: Start VM/CT + parameters: + - name: node + in: path + required: true + schema: { type: string } + - name: vmid + in: path + required: true + schema: { type: string } + - name: type + in: query + schema: { type: string, enum: [qemu, lxc], default: qemu } + responses: + '200': { description: OK } + '403': { description: Lifecycle disabled } + '502': { description: Proxmox error } + + /api/v1/ve/vms/{node}/{vmid}/stop: + post: + tags: [VE] + summary: Stop VM/CT + parameters: + - name: node + in: path + required: true + schema: { type: string } + - name: vmid + in: path + required: true + schema: { type: string } + - name: type + in: query + schema: { type: string, enum: [qemu, lxc], default: qemu } + responses: + '200': { description: OK } + '403': { description: Lifecycle disabled } + '502': { description: Proxmox error } + + /api/v1/ve/vms/{node}/{vmid}/reboot: + post: + tags: [VE] + summary: Reboot VM/CT + parameters: + - name: node + in: path + required: true + schema: { type: string } + - name: vmid + in: path + required: true + schema: { type: string } + - name: type + in: query + schema: { type: string, enum: [qemu, lxc], default: qemu } + responses: + '200': { description: OK } + '403': { description: Lifecycle disabled } + '502': { description: Proxmox error } + + /api/v1/health/metrics: + get: + tags: [Health] + summary: Prometheus query proxy + parameters: + - name: query + in: query + required: true + schema: { type: string } + description: PromQL (URL-encoded) + responses: + '200': { description: Prometheus response } + '400': { description: Missing query } + '502': { description: Prometheus unreachable } + + /api/v1/health/alerts: + get: + tags: [Health] + summary: Active alerts + responses: + '200': + content: + application/json: + schema: + type: object + properties: + alerts: { type: array } + stub: { type: boolean } + + /api/v1/health/summary: + get: + tags: [Health] + summary: Aggregated health for Portal + responses: + '200': + content: + application/json: + schema: + type: object + properties: + status: { type: string } + updated_at: { type: string, format: date-time } + hosts: { type: array } + alerts: { type: array } + +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + description: PHOENIX_DEPLOY_SECRET for /api/deploy + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key + description: Optional partner key (or Authorization Bearer) diff --git a/phoenix-deploy-api/server.js b/phoenix-deploy-api/server.js index 7347208..d03f274 100644 --- a/phoenix-deploy-api/server.js +++ b/phoenix-deploy-api/server.js @@ -1,26 +1,81 @@ #!/usr/bin/env node /** - * Phoenix Deploy API — Gitea webhook receiver and deploy endpoint stub + * Phoenix Deploy API — Gitea webhook receiver, deploy stub, and Phoenix API Railing (Infra/VE) * * Endpoints: * POST /webhook/gitea — Receives Gitea push/tag/PR webhooks - * POST /api/deploy — Deploy request (repo, branch, target) + * POST /api/deploy — Deploy request (repo, branch, target) + * GET /api/v1/infra/nodes — Cluster nodes (Proxmox or stub) + * GET /api/v1/infra/storage — Storage pools (Proxmox or stub) + * GET /api/v1/ve/vms — List VMs/CTs (Proxmox or stub) + * GET /api/v1/ve/vms/:node/:vmid/status — VM/CT status + * GET /health — Health check * * Env: PORT, GITEA_URL, GITEA_TOKEN, PHOENIX_DEPLOY_SECRET + * PROXMOX_HOST, PROXMOX_PORT, PROXMOX_USER, PROXMOX_TOKEN_NAME, PROXMOX_TOKEN_VALUE (optional, for railing) */ import crypto from 'crypto'; +import https from 'https'; +import path from 'path'; +import { readFileSync } from 'fs'; +import { fileURLToPath } from 'url'; import express from 'express'; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const PORT = parseInt(process.env.PORT || '4001', 10); const GITEA_URL = (process.env.GITEA_URL || 'https://gitea.d-bis.org').replace(/\/$/, ''); const GITEA_TOKEN = process.env.GITEA_TOKEN || ''; const WEBHOOK_SECRET = process.env.PHOENIX_DEPLOY_SECRET || ''; +const PROXMOX_HOST = process.env.PROXMOX_HOST || ''; +const PROXMOX_PORT = parseInt(process.env.PROXMOX_PORT || '8006', 10); +const PROXMOX_USER = process.env.PROXMOX_USER || 'root@pam'; +const PROXMOX_TOKEN_NAME = process.env.PROXMOX_TOKEN_NAME || ''; +const PROXMOX_TOKEN_VALUE = process.env.PROXMOX_TOKEN_VALUE || ''; +const hasProxmox = PROXMOX_HOST && PROXMOX_TOKEN_NAME && PROXMOX_TOKEN_VALUE; +const VE_LIFECYCLE_ENABLED = process.env.PHOENIX_VE_LIFECYCLE_ENABLED === '1' || process.env.PHOENIX_VE_LIFECYCLE_ENABLED === 'true'; + +const PROMETHEUS_URL = (process.env.PROMETHEUS_URL || 'http://localhost:9090').replace(/\/$/, ''); +const PHOENIX_WEBHOOK_URL = process.env.PHOENIX_WEBHOOK_URL || ''; +const PHOENIX_WEBHOOK_SECRET = process.env.PHOENIX_WEBHOOK_SECRET || ''; +const PARTNER_KEYS = (process.env.PHOENIX_PARTNER_KEYS || '').split(',').map((k) => k.trim()).filter(Boolean); + +const httpsAgent = new https.Agent({ rejectUnauthorized: process.env.PROXMOX_TLS_VERIFY !== '0' }); + +async function proxmoxRequest(endpoint, method = 'GET', body = null) { + const baseUrl = `https://${PROXMOX_HOST}:${PROXMOX_PORT}/api2/json`; + const url = `${baseUrl}${endpoint}`; + const options = { + method, + headers: { + Authorization: `PVEAPIToken=${PROXMOX_USER}!${PROXMOX_TOKEN_NAME}=${PROXMOX_TOKEN_VALUE}`, + 'Content-Type': 'application/json', + }, + agent: httpsAgent, + }; + if (body && method !== 'GET') options.body = JSON.stringify(body); + const res = await fetch(url, options); + if (!res.ok) throw new Error(`Proxmox API ${res.status}: ${await res.text()}`); + const data = await res.json(); + return data.data; +} + const app = express(); // Keep raw body for webhook HMAC verification (Gitea uses HMAC-SHA256 of body) app.use(express.json({ verify: (req, _res, buf) => { req.rawBody = buf; } })); +/** Optional: require partner API key for /api/v1/* read-only routes when PHOENIX_PARTNER_KEYS is set */ +function partnerKeyMiddleware(req, res, next) { + if (PARTNER_KEYS.length === 0) return next(); + const key = req.headers['x-api-key'] || (req.headers.authorization || '').replace(/^Bearer\s+/i, ''); + if (!key || !PARTNER_KEYS.includes(key)) { + return res.status(401).json({ error: 'Missing or invalid API key' }); + } + next(); +} + /** * Update Gitea commit status (pending/success/failure) */ @@ -139,6 +194,170 @@ app.post('/api/deploy', async (req, res) => { target: target || 'default', message: 'Deploy request queued (stub). Implement full deploy logic in Sankofa Phoenix API.', }); + + if (PHOENIX_WEBHOOK_URL) { + const payload = { event: 'deploy.completed', repo, branch, target: target || 'default', sha: commitSha, success: deploySuccess }; + const body = JSON.stringify(payload); + const sig = crypto.createHmac('sha256', PHOENIX_WEBHOOK_SECRET || '').update(body).digest('hex'); + fetch(PHOENIX_WEBHOOK_URL, { + method: 'POST', + headers: { 'Content-Type': 'application/json', 'X-Phoenix-Signature': `sha256=${sig}` }, + body, + }).catch((e) => console.error('[webhook] outbound failed', e.message)); + } +}); + +app.use('/api/v1', partnerKeyMiddleware); + +/** + * GET /api/v1/infra/nodes — Cluster nodes (Phoenix API Railing) + */ +app.get('/api/v1/infra/nodes', async (req, res) => { + try { + if (!hasProxmox) { + return res.json({ nodes: [], stub: true, message: 'Set PROXMOX_HOST, PROXMOX_TOKEN_NAME, PROXMOX_TOKEN_VALUE for live data' }); + } + const nodes = await proxmoxRequest('/cluster/resources?type=node'); + res.json({ nodes: nodes || [], stub: false }); + } catch (err) { + res.status(502).json({ error: err.message, stub: false }); + } +}); + +/** + * GET /api/v1/infra/storage — Storage pools per node (Phoenix API Railing) + */ +app.get('/api/v1/infra/storage', async (req, res) => { + try { + if (!hasProxmox) { + return res.json({ storage: [], stub: true, message: 'Set PROXMOX_* env for live data' }); + } + const storage = await proxmoxRequest('/storage'); + res.json({ storage: storage || [], stub: false }); + } catch (err) { + res.status(502).json({ error: err.message, stub: false }); + } +}); + +/** + * GET /api/v1/ve/vms — List VMs and CTs (Phoenix API Railing). Query: node (optional) + */ +app.get('/api/v1/ve/vms', async (req, res) => { + try { + if (!hasProxmox) { + return res.json({ vms: [], stub: true, message: 'Set PROXMOX_* env for live data' }); + } + const resources = await proxmoxRequest('/cluster/resources?type=vm'); + const node = (req.query.node || '').toString(); + let list = Array.isArray(resources) ? resources : []; + if (node) list = list.filter((v) => v.node === node); + res.json({ vms: list, stub: false }); + } catch (err) { + res.status(502).json({ error: err.message, stub: false }); + } +}); + +/** + * GET /api/v1/ve/vms/:node/:vmid/status — VM/CT status (Phoenix API Railing) + */ +app.get('/api/v1/ve/vms/:node/:vmid/status', async (req, res) => { + const { node, vmid } = req.params; + try { + if (!hasProxmox) { + return res.json({ node, vmid, status: 'unknown', stub: true }); + } + const type = (req.query.type || 'qemu').toString(); + const path = type === 'lxc' ? `/nodes/${node}/lxc/${vmid}/status/current` : `/nodes/${node}/qemu/${vmid}/status/current`; + const status = await proxmoxRequest(path); + res.json({ node, vmid, type, ...status, stub: false }); + } catch (err) { + res.status(502).json({ error: err.message, node, vmid, stub: false }); + } +}); + +/** + * POST /api/v1/ve/vms/:node/:vmid/start|stop|reboot — VM/CT lifecycle (optional; set PHOENIX_VE_LIFECYCLE_ENABLED=1) + */ +['start', 'stop', 'reboot'].forEach((action) => { + app.post(`/api/v1/ve/vms/:node/:vmid/${action}`, async (req, res) => { + if (!VE_LIFECYCLE_ENABLED) { + return res.status(403).json({ error: 'VM lifecycle is disabled (set PHOENIX_VE_LIFECYCLE_ENABLED=1)' }); + } + const { node, vmid } = req.params; + const type = (req.query.type || 'qemu').toString(); + try { + if (!hasProxmox) { + return res.status(502).json({ error: 'Proxmox not configured' }); + } + const path = type === 'lxc' + ? `/nodes/${node}/lxc/${vmid}/status/${action}` + : `/nodes/${node}/qemu/${vmid}/status/${action}`; + await proxmoxRequest(path, 'POST'); + res.json({ node, vmid, type, action, ok: true }); + } catch (err) { + res.status(502).json({ error: err.message, node, vmid, action }); + } + }); +}); + +/** + * GET /api/v1/health/metrics?query= — Proxy to Prometheus instant query + */ +app.get('/api/v1/health/metrics', async (req, res) => { + const query = (req.query.query || '').toString(); + if (!query) { + return res.status(400).json({ error: 'query parameter required' }); + } + try { + const url = `${PROMETHEUS_URL}/api/v1/query?query=${encodeURIComponent(query)}`; + const data = await fetch(url).then((r) => r.json()); + res.json(data); + } catch (err) { + res.status(502).json({ error: err.message }); + } +}); + +/** + * GET /api/v1/health/alerts — Active alerts (stub or Alertmanager; optional PROMETHEUS_ALERTS_URL) + */ +app.get('/api/v1/health/alerts', async (req, res) => { + const alertsUrl = process.env.PROMETHEUS_ALERTS_URL || `${PROMETHEUS_URL}/api/v1/alerts`; + try { + const data = await fetch(alertsUrl).then((r) => r.json()).catch(() => ({ data: { alerts: [] } })); + const alerts = data.data?.alerts ?? data.alerts ?? []; + res.json({ alerts: Array.isArray(alerts) ? alerts : [], stub: !process.env.PROMETHEUS_URL }); + } catch (err) { + res.json({ alerts: [], stub: true, message: err.message }); + } +}); + +/** + * GET /api/v1/health/summary — Aggregated health for Portal + */ +app.get('/api/v1/health/summary', async (req, res) => { + const summary = { status: 'healthy', updated_at: new Date().toISOString(), hosts: [], alerts: [] }; + try { + if (hasProxmox) { + const nodes = await proxmoxRequest('/cluster/resources?type=node').catch(() => []); + summary.hosts = (nodes || []).map((n) => ({ + instance: n.node, + status: n.status, + cpu: n.cpu ? Number(n.cpu) * 100 : null, + mem: n.mem ? Number(n.mem) * 100 : null, + })); + } + const alertsUrl = process.env.PROMETHEUS_ALERTS_URL || `${PROMETHEUS_URL}/api/v1/alerts`; + const alertsRes = await fetch(alertsUrl).then((r) => r.ok ? r.json() : {}).catch(() => ({})); + const alerts = alertsRes.data?.alerts ?? alertsRes.alerts ?? []; + summary.alerts = (alerts || []).slice(0, 20).map((a) => ({ name: a.labels?.alertname, severity: a.labels?.severity, instance: a.labels?.instance })); + if (summary.alerts.some((a) => a.severity === 'critical')) summary.status = 'critical'; + else if (summary.alerts.length > 0) summary.status = 'degraded'; + res.json(summary); + } catch (err) { + summary.status = 'unknown'; + summary.message = err.message; + res.json(summary); + } }); /** @@ -148,7 +367,55 @@ app.get('/health', (req, res) => { res.json({ status: 'ok', service: 'phoenix-deploy-api' }); }); +/** + * GET /api-docs/spec.yaml — OpenAPI spec for Swagger UI + */ +app.get('/api-docs/spec.yaml', (req, res) => { + try { + const specPath = path.join(__dirname, 'openapi.yaml'); + res.type('application/yaml').send(readFileSync(specPath, 'utf8')); + } catch (e) { + res.status(500).send('openapi.yaml not found'); + } +}); + +/** + * GET /api-docs — Swagger UI (interactive API docs) + */ +app.get('/api-docs', (req, res) => { + const base = `${req.protocol}://${req.get('host')}`; + res.type('text/html').send(` + + + + + + Phoenix Deploy API — OpenAPI + + + +
+ + + + + `); +}); + app.listen(PORT, () => { console.log(`Phoenix Deploy API listening on port ${PORT}`); + console.log(`Swagger UI: http://localhost:${PORT}/api-docs`); if (!GITEA_TOKEN) console.warn('GITEA_TOKEN not set — commit status updates disabled'); + if (!hasProxmox) console.warn('PROXMOX_* not set — Infra/VE API returns stub data'); + if (PHOENIX_WEBHOOK_URL) console.log('Outbound webhook enabled:', PHOENIX_WEBHOOK_URL); + if (PARTNER_KEYS.length > 0) console.log('Partner API key auth enabled for /api/v1/*'); });