Teranode Acceptance Test — Engineering Report
Run date: 2026-05-28
Tool version: sp10-complete-38-g571f687
Network: regtest
Mode: SHORT (partial evidence)
Verdict: NO_GO
Executive Summary
The acceptance run returned a NO_GO verdict. Two critical tests failed outright (PC-3, INTER-1), and three further critical tests were skipped due to a blocking infrastructure misconfiguration in the Teranode Centrifuge transport layer. One important test errored (PERF-1). Until the items listed below are resolved, the build cannot be considered production-ready.
Blocking Issues (Must Fix)
1. PC-3 — Message Format and Wire Protocol Verification FAIL critical
This is the primary reason for the NO_GO verdict. The test verifies that Teranode emits messages that conform to the expected wire protocol format. A failure here implies that downstream consumers — including SV nodes, clients, and any infrastructure that speaks the P2P protocol — may be unable to parse messages correctly.
Action required: Investigate which message type(s) fail format/encoding verification. Review any recent changes to serialisation, message framing, or protocol version negotiation. Compare wire output byte-for-byte against the specification and against Bitcoin SV node output.
2. CLIENT-1 / CLIENT-3 — TNG P2P Client Tests / Notification Stream Reliability SKIPPED critical
Both tests were skipped due to the same root cause:
Teranode Asset Centrifuge transport mis-configured as Unidirectional=true (push-format connect reply that bidirectional clients can't parse): centrifuge connect timeout
The Centrifuge transport is currently set to unidirectional (push-only) mode. Bidirectional clients — which send a connect frame and await a reply — receive a push-format response they cannot parse, causing a connect timeout. This blocks all client connectivity testing.
Action required: Locate the Centrifuge transport configuration and set Unidirectional=false (or the appropriate bidirectional mode). Verify that the connect/reply handshake completes correctly before re-running CLIENT-1 and CLIENT-3. This is a single-point configuration fix that unblocks two critical test cases.
3. INTER-1 — Mixed-Network Consensus FAIL critical
Mixed-network consensus between Teranode and SV nodes failed. This directly implicates Risk R2 (protocol fragmentation / forks) and is consistent with the PC-3 wire protocol failure — if messages are malformed, interoperability with SV nodes will break.
Action required: Run INTER-1 after PC-3 is resolved to determine whether they share a root cause. If INTER-1 still fails independently, investigate the consensus state machine for divergence between node implementations.
4. INTER-2 — Cross-Implementation Transaction Propagation SKIPPED critical
All transaction submissions failed completely: 0/33 success rate for both teranode-only and sv-only submission paths. This is a total propagation blackout, not a partial failure.
all submissions failed: teranode-only=0/33 sv-only=0/33
Action required: Determine whether this is a consequence of the same wire protocol issue (PC-3) or an independent mempool/networking problem. The 0/33 rate on sv-only submissions in particular suggests the network environment may have been unhealthy during this run, or that the SV node was not accepting connections. Needs targeted investigation under a controlled retry.
Non-Blocking Issues
5. PERF-1 — Throughput and Latency Baseline ERROR important
The performance baseline test errored rather than producing a result. No throughput or latency data was captured.
Action required: Retrieve PERF-1 error logs and determine whether this is a test harness issue, an infrastructure timeout, or a Teranode instability under load. This does not block the verdict but must be resolved before any performance claims can be made.
6. PERF-2 / PERF-3 / OPS-1 / OPS-2 — Privileged Operations EXCLUDED_PRIVILEGED important
Four important tests require elevated access not available in this run environment:
| Test |
Requires |
| PERF-2 |
Admin access to scale Teranode replicas |
| PERF-3 |
Bypass of Teranode P2P gateway |
| OPS-1 |
Ability to kill internal microservices |
| OPS-2 |
Control over the entire test network |
Action required: These tests should be scheduled for a privileged environment run. They are deferred, not failed, but R5 (operational cost) remains NOT_MITIGATED until PERF-2/PERF-3 can be executed.
What Passed
| Test |
Area |
| PC-1 |
Parallel node comparison — consensus parity with SV baseline |
| PC-2 |
Historical script and consensus regression |
| IBD-2 |
Historical UTXO spend verification |
| CLIENT-2 |
Extended transaction format support |
| OPS-3 |
Observability and monitoring |
| NEW-FR7 |
Unconfirmed transaction chain acceptance |
| NEW-FR9 |
Double-spend detection behaviour |
| NEW-FR10 |
Historical data access latency |
| NEW-FR11 |
Mempool query capabilities |
| NEW-NFR7 |
Deterministic behaviour under repeated operations |
| NEW-NFR11 |
Transport security and authentication |
| NEW-NFR13 |
Rate limit discovery and error semantics |
Risk Register Status
| Risk |
Status |
Notes |
| R1 — Transaction loss / inconsistent mempools |
PARTIALLY_MITIGATED |
INTER-2 total failure increases concern here |
| R2 — Protocol fragmentation / forks |
PARTIALLY_MITIGATED |
PC-3 and INTER-1 failures are direct evidence of this risk materialising |
| R3 — Undetected consensus bugs (script interpreter) |
MITIGATED |
PC-1, PC-2, IBD-2 all pass |
| R4 — Undetected consensus bugs (historical validation) |
PARTIALLY_MITIGATED |
IBD-1 deferred as documentation review |
| R5 — Excessive operational cost |
NOT_MITIGATED |
PERF-2/PERF-3 excluded; no scaling data available |
| R6 — Underdocumented architecture |
PARTIALLY_MITIGATED |
No change from prior run |
| R7 — IPv4/IPv6 connectivity and partition |
PARTIALLY_MITIGATED |
No change from prior run |
Recommended Fix Priority
- Fix Centrifuge
Unidirectional=true misconfiguration — single config change, unblocks CLIENT-1 and CLIENT-3 immediately.
- Investigate and fix PC-3 wire protocol failure — likely to also resolve or narrow INTER-1 and INTER-2.
- Re-run INTER-1 and INTER-2 after the above fixes to confirm whether they are downstream of PC-3 or independent.
- Diagnose PERF-1 error — retrieve logs and re-run in isolation.
- Schedule a privileged environment run for PERF-2, PERF-3, OPS-1, OPS-2 to address R5 and complete the important test tier.
Report generated from run sp10-complete-38-g571f687, 2026-05-28.
Teranode Acceptance Test — Engineering Report
Run date: 2026-05-28
Tool version: sp10-complete-38-g571f687
Network: regtest
Mode: SHORT (partial evidence)
Verdict: NO_GO
Executive Summary
The acceptance run returned a NO_GO verdict. Two critical tests failed outright (PC-3, INTER-1), and three further critical tests were skipped due to a blocking infrastructure misconfiguration in the Teranode Centrifuge transport layer. One important test errored (PERF-1). Until the items listed below are resolved, the build cannot be considered production-ready.
Blocking Issues (Must Fix)
1. PC-3 — Message Format and Wire Protocol Verification
FAILcriticalThis is the primary reason for the NO_GO verdict. The test verifies that Teranode emits messages that conform to the expected wire protocol format. A failure here implies that downstream consumers — including SV nodes, clients, and any infrastructure that speaks the P2P protocol — may be unable to parse messages correctly.
Action required: Investigate which message type(s) fail format/encoding verification. Review any recent changes to serialisation, message framing, or protocol version negotiation. Compare wire output byte-for-byte against the specification and against Bitcoin SV node output.
2. CLIENT-1 / CLIENT-3 — TNG P2P Client Tests / Notification Stream Reliability
SKIPPEDcriticalBoth tests were skipped due to the same root cause:
The Centrifuge transport is currently set to unidirectional (push-only) mode. Bidirectional clients — which send a connect frame and await a reply — receive a push-format response they cannot parse, causing a connect timeout. This blocks all client connectivity testing.
Action required: Locate the Centrifuge transport configuration and set
Unidirectional=false(or the appropriate bidirectional mode). Verify that the connect/reply handshake completes correctly before re-running CLIENT-1 and CLIENT-3. This is a single-point configuration fix that unblocks two critical test cases.3. INTER-1 — Mixed-Network Consensus
FAILcriticalMixed-network consensus between Teranode and SV nodes failed. This directly implicates Risk R2 (protocol fragmentation / forks) and is consistent with the PC-3 wire protocol failure — if messages are malformed, interoperability with SV nodes will break.
Action required: Run INTER-1 after PC-3 is resolved to determine whether they share a root cause. If INTER-1 still fails independently, investigate the consensus state machine for divergence between node implementations.
4. INTER-2 — Cross-Implementation Transaction Propagation
SKIPPEDcriticalAll transaction submissions failed completely: 0/33 success rate for both teranode-only and sv-only submission paths. This is a total propagation blackout, not a partial failure.
Action required: Determine whether this is a consequence of the same wire protocol issue (PC-3) or an independent mempool/networking problem. The 0/33 rate on sv-only submissions in particular suggests the network environment may have been unhealthy during this run, or that the SV node was not accepting connections. Needs targeted investigation under a controlled retry.
Non-Blocking Issues
5. PERF-1 — Throughput and Latency Baseline
ERRORimportantThe performance baseline test errored rather than producing a result. No throughput or latency data was captured.
Action required: Retrieve PERF-1 error logs and determine whether this is a test harness issue, an infrastructure timeout, or a Teranode instability under load. This does not block the verdict but must be resolved before any performance claims can be made.
6. PERF-2 / PERF-3 / OPS-1 / OPS-2 — Privileged Operations
EXCLUDED_PRIVILEGEDimportantFour important tests require elevated access not available in this run environment:
Action required: These tests should be scheduled for a privileged environment run. They are deferred, not failed, but R5 (operational cost) remains NOT_MITIGATED until PERF-2/PERF-3 can be executed.
What Passed
Risk Register Status
Recommended Fix Priority
Unidirectional=truemisconfiguration — single config change, unblocks CLIENT-1 and CLIENT-3 immediately.Report generated from run
sp10-complete-38-g571f687, 2026-05-28.