20-node mesh verification test suite
A complete set of pass/fail assertions to confirm every integration point is functioning correctly before permitting production traffic. Record results against this document and file as a production readiness artifact.
Running the automated test suite
The full verification suite can be run programmatically using themeshinfer-fleet verifyCLI command. Results are emitted as structured JSON and can be ingested into any CI/CD pipeline.
# Run the full 20-node verification suite:
meshinfer-fleet verify --org org_mesh20_prod --api-key msk_live_... --node-count 20 --suite all --output verification_report_2026-07-06.json
# Run a single suite (e.g. routing only):
meshinfer-fleet verify --suite T3
# CI/CD integration (exits 1 if any critical assertion fails):
meshinfer-fleet verify --suite all --strict-critical && echo "GO" || echo "NO-GO"Identity & Registration
Verify all 20 nodes have valid identities and are registered with the Coordinator.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T1.1 | All 20 NodeIDs present in Coordinator registry (GET /v1/nodes) | critical | |
| T1.2 | Each NodeID has a valid DeviceID binding (1:1 mapping) | critical | |
| T1.3 | All 20 nodes bound to correct OrgID (org_mesh20_prod) | critical | |
| T1.4 | All 20 DIU wallets created on MeshNativeExchange | critical | |
| T1.5 | Ed25519 signature on capability vector validates for all 20 nodes | critical |
Connectivity & Heartbeat
Verify persistent connections and heartbeat cadence for all 20 nodes.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T2.1 | All 20 nodes emit heartbeat within last 30 s | critical | |
| T2.2 | Heartbeat ACK round-trip ≤ 5 s on all 20 nodes | high | |
| T2.3 | mTLS certificate valid and not expiring within 30 days for all 20 | high | |
| T2.4 | WebSocket reconnect after forced disconnect ≤ 10 s | medium | |
| T2.5 | Missed-heartbeat eviction fires after 6 missed cycles (90 s) | high |
Routing Pool Admission
Confirm all 20 nodes are correctly admitted to the routing pool.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T3.1 | All 20 nodes in pool tier ≥ standard (none suspended) | critical | |
| T3.2 | Routing weight > 0 for all 20 nodes | critical | |
| T3.3 | Router selects each node at least once in 200 randomized requests | high | |
| T3.4 | Mobile nodes (node-m01–m04) excluded on simulated cellular network | critical | |
| T3.5 | Mobile nodes (node-m01–m04) excluded when battery-only flag set | critical | |
| T3.6 | Exploration fires: a small fraction of requests go to random eligible nodes | medium |
Inference Scheduling & Execution
End-to-end inference task dispatch and completion across all node types.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T4.1 | Tiny task (≤ 128 tokens) completes on all 20 nodes within 500 ms p95 | critical | |
| T4.2 | Small task (≤ 512 tokens) completes on desktop/server nodes ≤ 800 ms p95 | critical | |
| T4.3 | Task NACK response time ≤ 500 ms on overloaded node | high | |
| T4.4 | Task re-dispatched within 1 s on NACK or timeout | high | |
| T4.5 | Model cold-start window granted (800 ms) for uncached model | medium | |
| T4.6 | Interactive task preempts background task on full node | medium | |
| T4.7 | Server-tier nodes (node-s01, node-s02) handle medium req_class (≤ 4096 tokens) | high |
Metering & DIU Spend
Confirm metering pipeline accuracy and DIU spend accounting.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T5.1 | Metering event emitted for every completed inference task | critical | |
| T5.2 | diu_spend matches formula for 10 sampled tasks | critical | |
| T5.3 | Requester wallet debited synchronously with metering event | critical | |
| T5.4 | Zero-DIU task for local route (local_only nodes, own org) | high | |
| T5.5 | hypothetical_cloud_cost and actual_cost_usd logged on all events | medium |
DIU Issuance
Confirm DIU issuance logic, multipliers, and edge cases.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T6.1 | diu_issued event generated for every successful completed task | critical | |
| T6.2 | Failed task yields diu_net = 0 (no phantom issuance) | critical | |
| T6.3 | Late task (> 3× SLO) yields diu_net = 0 | critical | |
| T6.4 | Elite node (reputation ≥ 90) earns elevated reputation multiplier | high | |
| T6.5 | Platform fee and reserve correctly split from gross spend | high | |
| T6.6 | Pending DIU visible in node wallet dashboard before epoch close | medium |
Settlement & Audit
Confirm MeshNativeExchange settlement and AuditLog integrity.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T7.1 | Settlement epoch closes within 5 min of top of hour | high | |
| T7.2 | All 20 node wallets show non-zero settled DIU after first epoch | critical | |
| T7.3 | Settlement integrity hash verifiable externally (SHA-256) | critical | |
| T7.4 | AuditLog records written for every settlement epoch | high | |
| T7.5 | DOSFI accounting oracle receives epoch_settled ACK within 60 s | medium |
Health, Privacy & Removal
Verify health checks, privacy enforcement, and node lifecycle operations.
| ID | Assertion | Severity | Result |
|---|---|---|---|
| T8.1 | Verification sampler fires on a sample of tasks (within configured tolerance) | critical | |
| T8.2 | Privacy gate: local_only node rejects cross-org task with 403 | critical | |
| T8.3 | Thermal breach causes immediate pool removal (within 1 heartbeat = 15 s) | critical | |
| T8.4 | Graceful drain completes within 300 s on a loaded node | high | |
| T8.5 | Replacement node (new NodeID, same DeviceID) reaches online status within 120 s | high | |
| T8.6 | Reputation score penalized after intentional verification mismatch injection | high |
Verification sign-off
| Test suite version | v1.0 — 2026-07-06 |
| Node count tested | 20 |
| Required passing rate | 100% of critical assertions; ≥ 90% of all assertions |
| Sign-off authority | Senior Engineer + DevOps Lead — dual approval required |
| Artifact storage | verification_report_{date}.json → file in SOC 2 evidence repository |
| Re-test trigger | Any node replacement, firmware update, or Coordinator version upgrade |
# Submit verification report to AuditLog:
meshinfer-fleet verify sign-off --report verification_report_2026-07-06.json --approver-1 "senior-eng@org.com" --approver-2 "devops-lead@org.com" --org org_mesh20_prod --api-key msk_live_...
# AuditLog entry:
# action: "mesh_verification_complete"
# resource_type: "verification_report"
# status: "success" | "failure"
# details.assertions_total: 44
# details.assertions_passed: 44
# details.critical_failures: 0