Files
proxmox/docs/04-configuration/verification-evidence/SOLACESCANSCOUT_CONNECTIONS_FULL_TREE.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

184 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SolaceScanScout Explorer — Full Connection & Dependency Tree
**Last Updated:** 2026-02-09
**Status:** Evaluation / Reference
**Scope:** All connections, dependencies, and factors affecting the explorer SolaceScanScout (explorer.d-bis.org)
---
## 1. Identity & Deployment Model
```
SolaceScanScout (brand)
├── Live production site: https://explorer.d-bis.org
│ ├── Served by: Blockscout stack on VMID 5000 (192.168.11.140)
│ ├── UI: Custom SolaceScanScout branding (index.html from explorer-monorepo/frontend/public)
│ └── API: Blockscout API (ports 80 web, 4000 API)
└── Codebase / alternate stack: explorer-monorepo
├── Tiered architecture (Track 14): Go API, Next.js frontend, indexer, virtual-banker
├── Docker Compose: postgres, elasticsearch, redis, indexer, api, frontend, virtual-banker-*
└── Can be deployed to VMID 5000 (e.g. deploy-frontend-to-vmid5000.sh) or run standalone
```
**Canonical:** The **live** explorer is Blockscout on VMID 5000 with SolaceScanScout-branded frontend. The **explorer-monorepo** is the source of branding and an alternative tiered stack.
---
## 2. Full Dependency Tree (Top-Down)
```
Internet (user)
├─ DNS: explorer.d-bis.org → 76.53.10.36 (Cloudflare proxied)
├─ Edge: UDM Pro (76.53.10.34)
│ └─ Port forward: 76.53.10.36:80, 76.53.10.36:443 → 192.168.11.167:80, :443
├─ NPMplus #1 (LXC VMID 10233)
│ ├─ IP: 192.168.11.167 (eth1; only this NIC used for port forward)
│ ├─ Role: Reverse proxy + SSL (Let's Encrypt for explorer.d-bis.org)
│ └─ Proxy: explorer.d-bis.org → http://192.168.11.140:80 (web), :4000 (API as needed)
└─ VMID 5000 — blockscout-1 (LXC on r630-02)
├─ IP: 192.168.11.140 (fixed; config/ip-addresses.conf: IP_BLOCKSCOUT)
├─ Host: r630-02 (Proxmox 192.168.11.12)
├─ Storage: LXC on thin pool (thin1 or thin5 after migration — see BLOCKSCOUT_FIX_RUNBOOK)
├─ Services on 5000:
│ ├─ Nginx (or similar): serves / from /var/www/html (SolaceScanScout index.html), proxies /api to Blockscout
│ ├─ Blockscout (Docker): web + API (ports 80, 4000)
│ └─ PostgreSQL (Docker, Blockscout stack): DB for indexer/explorer data
├─ Outbound dependencies (from VMID 5000):
│ ├─ RPC (Chain 138): ETHEREUM_JSONRPC_HTTP_URL → 192.168.11.221:8545 (VMID 2201, besu-rpc-public-1)
│ │ └─ Updated 2026-01-30 from 192.168.11.250 (VMID 2500 destroyed) to 192.168.11.221
│ └─ (Optional) Cloudflare Tunnel: tunnel-config.yml can point explorer.d-bis.org → localhost:80
│ └─ If tunnel runs on 5000, it can replace or complement NPMplus path
└─ Internal (same host):
└─ Blockscout ↔ PostgreSQL (Docker network; hostname `postgres`, port 5432)
```
---
## 3. Connection Matrix
| From | To | Protocol / Port | Purpose |
|------|-----|-----------------|---------|
| User | 76.53.10.36:443 | HTTPS | Public access to explorer.d-bis.org |
| UDM Pro | 192.168.11.167:80/443 | TCP | Port forward for NPMplus #1 |
| NPMplus #1 | 192.168.11.140:80 | HTTP | Proxy explorer web |
| NPMplus #1 | 192.168.11.140:4000 | HTTP | Proxy Blockscout API (if configured) |
| VMID 5000 (Blockscout) | 192.168.11.221:8545 | HTTP | Chain 138 RPC (block/tx indexing) |
| VMID 5000 (Blockscout) | 192.168.11.221:8546 | WS | Chain 138 WebSocket (if used) |
| Blockscout container | postgres:5432 | TCP | Database (Docker network) |
---
## 4. Factors Affecting SolaceScanScout
### 4.1 Network & Routing
| Factor | Impact | Reference |
|--------|--------|-----------|
| DNS (explorer.d-bis.org → 76.53.10.36) | Must resolve; Cloudflare proxied | E2E runbook, NEXT_STEPS_RUN_* |
| UDM Pro port forward 76.53.10.36 → 192.168.11.167 | If broken, no public access | NETWORK_CONFIGURATION_MASTER.md |
| NPMplus proxy host for explorer.d-bis.org | Must point to 192.168.11.140:80 (and optionally :4000) | RPC_ENDPOINTS_MASTER.md, CLOUDFLARE_ROUTING_MASTER.md |
| SSL (Let's Encrypt) for explorer.d-bis.org | Applied in NPMplus; avoid "connection isn't private" | NEXT_STEPS_OPERATOR.md, REMAINING_TASKS_RUN_* |
### 4.2 Host & Storage (VMID 5000)
| Factor | Impact | Reference |
|--------|--------|-----------|
| r630-02 (192.168.11.12) up | LXC 5000 must be running | OPERATIONAL_RUNBOOKS.md |
| Thin pool (thin1) full | "No space left on device", Blockscout/DB fail | BLOCKSCOUT_FIX_RUNBOOK.md — migrate to thin5 |
| LXC 5000 start/stop | Explorer offline when stopped | pct start/stop 5000 |
### 4.3 Blockscout Stack (inside VMID 5000)
| Factor | Impact | Reference |
|--------|--------|-----------|
| Docker: blockscout, postgres | Indexing and API depend on both | BLOCKSCOUT_FIX_RUNBOOK.md |
| PostgreSQL reachable as `postgres` | Blockscout logs "postgres:5432: non-existing domain - :nxdomain" if broken | BLOCKSCOUT_FIX_RUNBOOK.md |
| ECTO_USE_SSL / DATABASE_URL sslmode | Migrations and runtime need sslmode=disable if DB has no SSL | fix-blockscout-ssl-and-migrations.sh |
| ETHEREUM_JSONRPC_HTTP_URL | Must point to working RPC (192.168.11.221:8545); wrong/down RPC → sync stop | SOLACESCANSCOUT_REVIEW.md |
### 4.4 RPC (Chain 138)
| Factor | Impact | Reference |
|--------|--------|-----------|
| VMID 2201 (192.168.11.221) RPC up | Blockscout indexer needs live RPC | SOLACESCANSCOUT_REVIEW.md (fix applied 2026-01-30) |
| Block production (validators) | Chain must be producing blocks for new data | verify-explorer-and-block-production.sh, monitor-blockchain-health.sh |
### 4.5 Frontend / Branding
| Factor | Impact | Reference |
|--------|--------|-----------|
| /var/www/html/index.html on VMID 5000 | SolaceScanScout branding; served at / | deploy-frontend-to-vmid5000.sh, fix-nginx-serve-custom-frontend.sh |
| Nginx config (e.g. /etc/nginx/sites-available/blockscout) | Root path must serve custom frontend; /api → Blockscout | deploy-frontend-to-vmid5000.sh |
### 4.6 Optional: explorer-monorepo (Tiered Stack)
| Factor | Impact | Reference |
|--------|--------|-----------|
| EXECUTE_DEPLOYMENT.sh / deploy-tiered-architecture.sh | Runs migrations, backend, tests (DB, Redis, RPC) | explorer-monorepo/README.md |
| .env (explorer-monorepo): DB_*, RPC_URL, JWT_SECRET | Tiered API and indexer use these | ENVIRONMENT_TEMPLATE.env, RPC_URL=http://192.168.11.221:8545 |
| Docker Compose (postgres, redis, elasticsearch, indexer, api, frontend) | Full stack alternative to Blockscout; not required for live site | deployment/docker-compose.yml |
---
## 5. Verification Scripts & Docs
| Script / Doc | Purpose |
|-------------|---------|
| `scripts/verify/verify-explorer-and-block-production.sh` | Explorer HTTPS, Blockscout API, RPC, block production (LAN for API/block) |
| `scripts/verify/verify-end-to-end-routing.sh` | DNS, SSL, HTTPS for explorer.d-bis.org (optional Blockscout API; SKIP_BLOCKSCOUT_API=1 off-LAN) |
| `explorer-monorepo/scripts/e2e-test-explorer.sh` | Full E2E for explorer (SolaceScanScout content, APIs) from LAN |
| `scripts/verify-all-systems.sh` | Includes explorer homepage check (SolaceScanScout \| Blockscout \| <!DOCTYPE) |
| `docs/03-deployment/BLOCKSCOUT_FIX_RUNBOOK.md` | 502, DB, migrations, thin pool, SSL, Forge verification |
| `docs/04-configuration/SOLACESCANSCOUT_REVIEW.md` | Navigation, sync status, RPC fix (250→2201), recommendations |
| `docs/05-network/E2E_CLOUDFLARE_DOMAINS_RUNBOOK.md` | E2E and Blockscout completion notes |
---
## 6. Summary Tree (One-Page)
```
SolaceScanScout (explorer.d-bis.org)
├─ Public path
│ DNS → 76.53.10.36 → UDM Pro → 192.168.11.167 (NPMplus #1) → 192.168.11.140:80/4000
├─ VMID 5000 (192.168.11.140, r630-02)
│ ├─ Nginx + /var/www/html (SolaceScanScout index.html)
│ ├─ Blockscout (Docker): web + API
│ ├─ PostgreSQL (Docker): Blockscout DB
│ └─ Depends on: RPC 192.168.11.221:8545 (VMID 2201)
├─ Codebase: explorer-monorepo
│ ├─ Branding & custom frontend (deploy to 5000 via deploy-frontend-to-vmid5000.sh)
│ └─ Optional full stack: Docker Compose (postgres, redis, es, indexer, api, frontend, virtual-banker)
└─ Config / source of truth
├─ config/ip-addresses.conf (IP_BLOCKSCOUT=192.168.11.140, BLOCKSCOUT_API_PORT=4000)
├─ docs/11-references/NETWORK_CONFIGURATION_MASTER.md
└─ docs/04-configuration/RPC_ENDPOINTS_MASTER.md (explorer.d-bis.org, VMID 5000)
```
---
## 7. Known Issues & Fixes (from docs)
| Issue | Fix |
|-------|-----|
| Sync stopped (e.g. Jan 15, 2026) | Point Blockscout RPC to working node (192.168.11.221); see SOLACESCANSCOUT_REVIEW.md |
| 502 / DB unreachable | BLOCKSCOUT_FIX_RUNBOOK: fix-blockscout-ssl-and-migrations.sh, postgres DNS/connectivity |
| No space left on device | Migrate VMID 5000 to thin5 (BLOCKSCOUT_FIX_RUNBOOK) |
| Explorer SSL warning | NPMplus: Let's Encrypt for explorer.d-bis.org (NEXT_STEPS_OPERATOR.md) |
| Blockscout API unreachable off-LAN | Use SKIP_BLOCKSCOUT_API=1 for E2E or run verify-explorer-and-block-production from LAN |
---
**Last updated:** 2026-02-09
**Related:** SOLACESCANSCOUT_REVIEW.md, BLOCKSCOUT_FIX_RUNBOOK.md, NETWORK_CONFIGURATION_MASTER.md, E2E_CLOUDFLARE_DOMAINS_RUNBOOK.md