Skip to content

Add tx centrifuge load generator support - #146

Merged
mkoura merged 3 commits into
masterfrom
add-tx-centrifuge
Jul 2, 2026
Merged

Add tx centrifuge load generator support#146
mkoura merged 3 commits into
masterfrom
add-tx-centrifuge

Conversation

@mkoura

@mkoura mkoura commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

Adds support for tx-centrifuge (a higher-load, UTxO-reusing successor to
tx-generator) to the fast testnets, mirroring the existing tx-generator
integration. Not supported in the slow script.

Changes

  • flake: pin tx-centrifuge from cardano-node bench/leios-11.0.1 as a
    separate input and expose it in the venv dev shell.
  • scripts: enable via ENABLE_TX_CENTRIFUGE. Reuses the genesis-utxo2
    key as a genesis_utxo_keys fund, targets a single node (so the serial
    on_build chain stays in one mempool and propagates out), and pins trace
    severity to Info. Mutually exclusive with tx-generator.
  • TX_TPS: single shared variable now sets the rate for both generators
    (tx-generator's rate was previously hardcoded).
  • fix: scale wait_for_epoch's poll window to block density
    (slotLength / activeSlotsCoeff) to stop spurious "Unexpected epoch"
    failures on sparse-block clusters like leios_fast.

Notes

  • protocolParametersFile is populated (via save_protocol_params) for
    forward-compat; the current tool doesn't read it yet.

Testing

Verified on a running leios_fast cluster: mempool fills, ~67% tx acceptance,
leios.db grows (EBs produced), tx-centrifuge submits at the configured TPS.

mkoura added 3 commits July 2, 2026 16:33
tx-centrifuge lives on a different cardano-node branch than the one
providing cardano-node/cardano-cli, so pin it as a separate flake input
and expose its binary in the venv dev shell (next to tx-generator).
tx-centrifuge is a higher-load, UTxO-reusing successor to tx-generator.
Enabled via ENABLE_TX_CENTRIFUGE on the fast testnets (not supported in
the slow script). It reuses the genesis-utxo2 key as a genesis_utxo_keys
fund, targets a single node so the serial on_build chain stays in one
mempool, and pins its trace severity to Info to avoid Debug spam.

Mutually exclusive with tx-generator. The shared TX_TPS variable now sets
the rate for both generators (tx-generator's rate was previously fixed).
wait_for_epoch reads the epoch of the chain tip, which lags wall-clock
when blocks are sparse. On leios_fast (activeSlotsCoeff 0.05, 1s slots)
the first block of the target epoch could take longer than the fixed
50s grace to be forged, causing spurious "Unexpected epoch" failures.

Derive the grace from the expected block interval (slotLength /
activeSlotsCoeff) instead, floored at the previous 50s so denser
clusters are unaffected.
@mkoura
mkoura merged commit 245328c into master Jul 2, 2026
4 checks passed
@mkoura
mkoura deleted the add-tx-centrifuge branch July 2, 2026 14:46
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