Skip to content

chore(testnet): split tx-generator into its own feature testnet#111

Draft
paolino wants to merge 2 commits intomainfrom
feat/feature-testnet-tx-generator-split
Draft

chore(testnet): split tx-generator into its own feature testnet#111
paolino wants to merge 2 commits intomainfrom
feat/feature-testnet-tx-generator-split

Conversation

@paolino
Copy link
Copy Markdown
Collaborator

@paolino paolino commented May 1, 2026

Same shape as 43bf739 (adversary removal from master): the master testnet is the canonical reference cluster, and components in active iteration belong on a feature-testnet so master's signal stays clean.

Why

tx-generator is being iterated on across:

Each of those changes wants its own pre-merge Antithesis dispatch via --ref <branch> to compare findings before re-merging — a workflow that's much smoother on a dedicated testnet than on master.

What

  • New testnets/cardano_node_tx_generator/ — clone of master's topology (3 producers, 2 relays, tracer + sidecars + log-tailer) plus the tx-generator service. Asteria-stub deliberately excluded (different feature, stays on master).
  • Master loses the tx-generator service entirely, the utxo-keys volume mount on configurator (only tx-generator consumed it), and the utxo-keys volume declaration.
  • New README documents the dispatch invocation.

Workflow

Dispatch the new testnet via cardano-node.yaml's existing test input:

```sh
gh workflow run cardano-node.yaml \
--ref \
-f test=cardano_node_tx_generator \
-f duration=1
```

The cron's default stays cardano_node_master; nothing on the schedule changes.

Out of scope (follow-ups)

Verification

  • `docker compose config` is valid for both testnets.
  • No diff in master's other services (configurator, tracer, sidecar, log-tailer, asteria-stub, p1-3, relay1-2) — only the tx-generator block + utxo-keys mounts/declaration come out.

Related

Mirrors 43bf739 (chore(testnet): remove adversary service from
cardano_node_master) — same shape, different component.

The master testnet is the canonical reference cluster: cron-fired
Antithesis runs against it produce the baseline-finding signal that
everyone reads. With tx-generator in active iteration (reconnect
supervisor #105, freshness gate #110, composer-assertion shape work
in #98), keeping it on master pollutes that signal with experiments
in flight.

This commit:

* Creates testnets/cardano_node_tx_generator/ — same topology as
  master (3 producers + 2 relays + tracer + sidecars + log-tailer)
  plus the tx-generator service. Asteria-stub is deliberately
  absent (different feature, lives on master).

* Removes tx-generator from testnets/cardano_node_master/ along
  with its 'utxo-keys' volume mount on configurator and the volume
  declaration. Nothing else on master uses utxo-keys.

* README in the new testnet documents why and how to dispatch.

Workflow dispatch from this point:
  gh workflow run cardano-node.yaml \
    --ref <feature-branch> \
    -f test=cardano_node_tx_generator \
    -f duration=1

publish-images currently only scrapes cardano_node_master's compose;
the new testnet's tx-generator image is pushed manually until the
publish-images script is generalised to all testnets (follow-up).
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

🚀 Documentation preview

Preview: https://cf-cna-pr-111.surge.sh

Built from e58f0fd.
The preview updates on every push to this branch.

After PR #111 dropped tx-generator from cardano_node_master/, the
'Compose smoke test' job that runs scripts/smoke-test.sh against
master fails because the script unconditionally probes the
tx-generator control socket — which is only present on the new
cardano_node_tx_generator/ testnet now.

Skip the tx-generator-specific block when the compose under test
doesn't declare a 'tx-generator:' service. Same script keeps
working for both master (no tx-generator) and the new feature
testnet (still drives the daemon end-to-end).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant