Update pumba flake (#2602)
Upgrade pumba flake so it builds on modern mac hardware.
Upgrade pumba flake so it builds on modern mac hardware.
`goldenExampleEraTxCborSpec` allows us to generate a `Spec` for generating a `golden/tx.cbor` golden file out of some `Tx` provided as a parameter. Then, for each era's test-suite, we call this function to generate the golden file using the example transaction we have defined for each era. We also extended `EraTest` so that we don't need to manually call `getDataFileName` in order to get the fullpath for each era's cabal project. We also create new `Binary.Golden` modules for Mary and Babbage (previously they reused Allegra's and Alonzo's respectively, which used the wrong era's example transactions). Additionally, fix `exampleDijkstraBasedTopTx` to not add PlutusV4 scripts to `scriptTxWitsL`: PlutusV4 is not included in Dijkstra's `transaction_witness_set` CDDL, so those scripts were silently dropped during serialization, causing a roundtrip failure.
In `conwayGovTransition`, we remove the condition on `hardforkConwayBootstrapPhase` for checking `ZeroTreasuryWithdrawals`. We then replayed the preview, preprod and mainnet public chains with this change which guarentees there were no empty treasury withdrawals pre-Conway era.
From https://github.com/IntersectMBO/cardano-node at 97036a66bcf8c89f687ae57a048eecc0389977ef
`goldenExampleEraTxCborSpec` allows us to generate a `Spec` for generating a `golden/tx.cbor` golden file out of some `Tx` provided as a parameter. Then, for each era's test-suite, we call this function to generate the golden file using the example transaction we have defined for each era. We also extended `EraTest` so that we don't need to manually call `getDataFileName` in order to get the fullpath for each era's cabal project. We also create new `Binary.Golden` modules for Mary and Babbage (previously they reused Allegra's and Alonzo's respectively, which used the wrong era's example transactions). Additionally, fix `exampleDijkstraBasedTopTx` to not add PlutusV4 scripts to `scriptTxWitsL`: PlutusV4 is not included in Dijkstra's `transaction_witness_set` CDDL, so those scripts were silently dropped during serialization, causing a roundtrip failure.
Pulls in the depth checklist (cluster_fork_depth_N_observed) and adversary_observed_as_peer Sometimes assertions onto the cardano_node_adversary testnet.
Two new probes on top of the existing fork-tree state machine.
Layer 3 — depth checklist
- Tracks maxForkDepth in tracer-sidecar State.
- Emits one Sometimes assertion per depth threshold from 2 up to
k - 1: cluster_fork_depth_2_observed, _3_observed, ... _k-1.
- Reading the report, the highest passed threshold tells you how
deep the cluster forked under fault injection without drilling
into per-event details.
Layer 2 — peer-observability probe
- Adds adversary_observed_as_peer Sometimes assertion.
- Fires on the first Net.InboundGovernor.* log line whose JSON
contains the substring "adversary.example", proving the
adversary's chain-sync sessions reached a producer's peer-
selection layer at least once during the run (not just the
kernel TCP backlog).
- Uses a substring check against the encoded JSON, so we don't
pin the message schema — the producer's tracer can rename
fields without breaking the probe.
State now carries maxForkDepth and adversaryObservedAsPeer; both
land alongside the existing forkObserved / forkExceededK flags
inside updateForkTree's refresh function and a new generic
mkSpec rule.
feat: add EDR on switching to our own mini-protocol implementations
Signed-off-by: Jenita <[email protected]> Co-authored-by: Jenita <[email protected]>
Signed-off-by: Chris Gianelloni <[email protected]>
Signed-off-by: Chris Gianelloni <[email protected]>