Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- 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>
184 lines
9.1 KiB
Markdown
184 lines
9.1 KiB
Markdown
# 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 1–4): 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
|