feat(ext-utxorpc-operator): add helm chart for UTxO RPC operator
Signed-off-by: Ales Verbic <[email protected]>
Signed-off-by: Ales Verbic <[email protected]>
Dijkstra deserializes Conway CBOR identically (backwards compatible).
Reuse the existing 152 Conway golden files for Dijkstra round-trips.
One file (42.cbor) is skipped: it contains a certificate without
deposits, which Conway accepts but Dijkstra rejects
("Certificates without deposits are no longer supported").
151 new Dijkstra serialization tests, 420 total (up from 268).
During catch-up, connection recycling from stall detection causes pipeline resets, TIME_WAIT socket exhaustion on the source port, and dropped rollbacks that slow sync far more than the stall itself. Extend grace period, plateau detection, and recycle cooldown by 5x when the node is not at tip. Once the node reaches tip, thresholds return to normal for responsive stall recovery. Signed-off-by: wcatz <[email protected]> Signed-off-by: wcatz <[email protected]>
The cardano-api removal unblocks DijkstraEra at runtime. 34 new tests now run (268 total, up from 234). 4 remaining pending: - 2x "todo: add test data" (pre-existing) - 1x Dijkstra serialization golden (needs CBOR files) - 1x boundedEnumLaws (needs investigation)
Delete orphaned Cardano.Api.Gen module (2056 lines) and remove cardano-api from test build-depends. Also remove 10 transitive test deps that were only needed by Gen.hs. Verified: - Zero Cardano.Api imports in lib/ and test/ - cardano-api absent from cabal dependency plan - 234/234 tests pass, 0 assertions modified - 152 CBOR golden round-trips byte-identical
When the node is behind tip, outbound connections bind to the listen port (3001) for peer sharing. Connection churn during catch-up creates TIME_WAIT sockets that block reconnection to the same peer for 60s, causing a death spiral where the node can't reach peers and falls further behind. Add IsAtTipFunc to ConnectionManagerConfig. When provided and returning false, outbound connections use ephemeral ports instead of binding to the listen port. Peer sharing is not useful during catch-up anyway. Also extend stall detection thresholds 5x during catch-up to reduce connection recycling that triggers the TIME_WAIT exhaustion. Signed-off-by: wcatz <[email protected]> Signed-off-by: wcatz <[email protected]>
Remove 10 unused test dependencies left over from Cardano.Api.Gen deletion. Fix genTxForBalancing to sometimes include collateral fields so property tests for totalCollateral/returnCollateral rejection no longer discard all test cases.
Remove 10 unused test dependencies left over from Cardano.Api.Gen deletion. Fix genTxForBalancing to sometimes include collateral fields so property tests for totalCollateral/returnCollateral rejection no longer discard all test cases.
Mark completed: T001, T003-T008, T013 Update T012 scope: Gen.hs is now orphaned, just needs deletion
Rewrite all QuickCheck generators in BalanceSpec.hs to use
cardano-ledger types directly, removing the last cardano-api
usage from the test infrastructure.
Generator population comparison (1000 samples each):
genTxForBalancing @ConwayEra:
OLD NEW
has inputs: 100.0% 100.0%
has certificates: 47.5% 44.5%
has withdrawals: 54.6% 61.0%
has collateral in: 0.4% 5.0%
has totalCollat: 4.4% 6.7%
has returnCollat: 4.8% 3.9%
has validity lo: 100.0% 100.0%
has validity hi: 49.1% 49.0%
genTxOut @ConwayEra:
OLD NEW
shelley: 51.3% 47.4%
byron: 48.7% 52.6%
mainnet: 48.2% 44.8%
testnet: 3.1% 2.6%
key pay cred: 24.3% 24.3%
script pay cred: 27.0% 23.1%
has stake ref: 25.9% 23.4%
No test assertions were modified. All 234 tests pass.
Remove CardanoApiEra type family, IsShelleyBasedEra constraint, toCardanoApiTx/fromCardanoApiTx, and all cardano-api imports from library modules. IsRecentEra now only requires Typeable and RecentEraConstraints. Enum AnyRecentEra uses manual numbering. BREAKING CHANGE: CardanoApiEra, toCardanoApiTx, fromCardanoApiTx, cardanoEraFromRecentEra, shelleyBasedEraFromRecentEra removed from public API.
Delete Cardano/Api/Gen.hs (~2000 lines of cardano-api generators). Rewrite BalanceSpec.hs to use ledger-native generators: - genTxForBalancing: mkBasicTx with random outputs - genTxOut: mkBasicTxOut with proper Shelley addresses - genLedgerAddr: Addr Testnet with random KeyHash - Wallet Arbitrary: ledger TxOut generators - shrinkTx: simplified to const [] - NetworkId: replaced with local TestNetworkId type - Remove cardano-api from test build-depends BREAKING CHANGE: Cardano.Api.Gen test module removed.
Delete Cardano/Api/Gen.hs (~2000 lines of cardano-api generators). Rewrite BalanceSpec.hs to use ledger-native generators: - genTxForBalancing: mkBasicTx with random outputs - genTxOut: mkBasicTxOut with proper Shelley addresses - genLedgerAddr: Addr Testnet with random KeyHash - Wallet Arbitrary: ledger TxOut generators - shrinkTx: simplified to const [] - NetworkId: replaced with local TestNetworkId type - Remove cardano-api from test build-depends BREAKING CHANGE: Cardano.Api.Gen test module removed.
Turns out that 'serialise_data' does actually re-encode values, which is unlike the ledger when building the script context an computing datum hashes. While this can be confusing, this is actually the world we live in and the actual VM semantic :| Fixes #1203. Signed-off-by: KtorZ <[email protected]>
Remove CardanoApiEra type family, IsShelleyBasedEra constraint, toCardanoApiTx/fromCardanoApiTx, and all cardano-api imports from library modules. IsRecentEra now only requires Typeable and RecentEraConstraints. Enum AnyRecentEra uses manual numbering. BREAKING CHANGE: CardanoApiEra, toCardanoApiTx, fromCardanoApiTx, cardanoEraFromRecentEra, shelleyBasedEraFromRecentEra removed from public API.
serializeTx now uses Cardano.Ledger.Binary.serialize' directly. deserializeTx uses decodeFullAnnotator with era-specific decCBOR. toRecentEraGADT returns Either String instead of AnyCardanoEra. toCardanoApiTx/fromCardanoApiTx kept for now (test code still uses them — will be removed with test generator rewrite).
serializeTx now uses Cardano.Ledger.Binary.serialize' directly. deserializeTx uses decodeFullAnnotator with era-specific decCBOR. toRecentEraGADT returns Either String instead of AnyCardanoEra. toCardanoApiTx/fromCardanoApiTx kept for now (test code still uses them — will be removed with test generator rewrite).
do not curry non-constant terms into builtins
Rewrite estimateKeyWitnessCounts to use ledger lenses and types directly instead of going through CardanoApi.getTxBodyContent: - Transaction inputs via inputsTxBodyL + collateralInputsTxBodyL - Required signers via reqSignerHashesTxBodyG (getter, no AtMostEra) - Withdrawals via withdrawalsTxBodyL, counting by RewardAccount cred - Certificates via certsTxBodyL with direct TxCert pattern matching - Removed txUpdateProposal handling (not in Conway/Dijkstra) - estimateDelegSigningKeys takes Ledger.TxCert directly
Rewrite estimateKeyWitnessCounts to use ledger lenses and types directly instead of going through CardanoApi.getTxBodyContent: - Transaction inputs via inputsTxBodyL + collateralInputsTxBodyL - Required signers via reqSignerHashesTxBodyG (getter, no AtMostEra) - Withdrawals via withdrawalsTxBodyL, counting by RewardAccount cred - Certificates via certsTxBodyL with direct TxCert pattern matching - Removed txUpdateProposal handling (not in Conway/Dijkstra) - estimateDelegSigningKeys takes Ledger.TxCert directly
Each of the 153 Conway signedTx golden files now runs as its own named hspec test, sorted by index. Failures will identify the exact file rather than just "golden files failed".
Each of the 153 Conway signedTx golden files now runs as its own named hspec test, sorted by index. Failures will identify the exact file rather than just "golden files failed".
Swap Cardano.Api (SlotNo) with Cardano.Slotting.Slot (SlotNo).