feat(testnet): cardano_node_tx_generator iteration testnet for the Haskell tx-generator daemon
Rebases on current main (which now has the workflow inputs.test fix
e3b09a0 and the publish-images all-testnets glob 81f3bf1, so the
sibling publish workflow + script from earlier iterations of this
branch are dropped). Master-side files (testnets/cardano_node_master/,
scripts/, master workflows) are untouched.
Adds:
* testnets/cardano_node_tx_generator/{docker-compose.yaml,
testnet.yaml,relay-topology.json,tracer-config.yaml,README.md}
— mirrors master's image set 1:1 (cardano-node x3 by digest,
cardano-tracer by digest, configurator/log-tailer/tracer-sidecar
by digest, sidecar:65039df) plus the tx-generator service
active. Network name 'cardano-node-tx-generator-testnet' to
avoid collision with master's network when both run on the
same docker daemon.
* components/tx-generator/flake.nix bumped to upstream
711eb22ac03e67b753f7ce70e635cddcf6f3cdce — full
reconnect-resilience stack: PR #105 (supervisor +
BlockedIndefinitelyOnSTM catch), #110 (post-reconnect indexer
freshness gate), #114 (pre-submit chain-tip probe), #115
(refill duplicate-submit recovery), #116 (recovery-await timeout
aligned with dcAwaitTimeoutSeconds), #117 (refill recovery-await
timeout -> IndexNotReady), #118 (same recovery in transact arm).
* Composer scripts hardened (set -u, always exit 0, lastTxId gate
on did_not_grow).
* docs/components/tx-generator.md — daemon architecture: composer-
as-clock contract, deterministic per-request flow, single-bearer
N2C topology with in-tree address-to-UTxO indexer, NDJSON wire
schema with response classes, per-request build/probe/submit/
recovery flow, reconnect-resilience PR stack, composer scripts
convention, persistent state, assertion classes.
* docs/testnets/cardano-node-tx-generator.md — testnet rationale,
image-set parity table with master, dispatch invocations, ref to
the repo-wide publish-images flow.
* mkdocs.yml — Components and Testnets nav entries.
Verified clean on a 1h no-faults Antithesis dispatch:
findings_new=0, all tx_generator_*_landed assertions firing, no
tx_generator_*_submit_rejected. Compose tag in this commit is
PLACEHOLDER; the next commit on this branch sets it to this commit's
SHA so publish-images.sh can resolve it as a downstream commit ref.