Skip to content

Acceptance Test Run 2026-05-28: NO_GO — PC-3 fail, Centrifuge misconfiguration, INTER-1 fail #7

@martyncharler

Description

@martyncharler

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

  1. Fix Centrifuge Unidirectional=true misconfiguration — single config change, unblocks CLIENT-1 and CLIENT-3 immediately.
  2. Investigate and fix PC-3 wire protocol failure — likely to also resolve or narrow INTER-1 and INTER-2.
  3. Re-run INTER-1 and INTER-2 after the above fixes to confirm whether they are downstream of PC-3 or independent.
  4. Diagnose PERF-1 error — retrieve logs and re-run in isolation.
  5. 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.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions