DevX Initiative
In review: This tooling data is still being verified and may change.

Cardano tooling · Protocol version 12 · Node 11.2

Devnet run

2026-11-01: cardano-node dac0d7ab2d (tagged 11.2.0 prerelease) on a local one-pool devnet, forked to Dijkstra and raised to protocol version 12 through governance. 27 of 48 results failed. The recipe is in scripts/readiness/devnet.

Setup
  • One stake pool, three DReps, no constitutional committee, testnet magic 42, 200-slot epochs of 0.1 s, generated with cardano-testnet create-env.
  • ExperimentalHardForksEnabled and TestDijkstraHardForkAtEpoch 2 in the generated versioned configuration. The epoch trigger changes the era but initially leaves protocol version 10. Two governance actions raised it to 11 then 12.
  • The recorded transaction matrix was rerun after checking protocol version 12; earlier pre-PV12 trial output is excluded. Live slots, hashes, keys, timing, transaction inclusion and build resolution are not deterministic.
  • Ogmios and Kupo first rejected the versioned configuration envelope. Their subsequent protocol checks use an equivalent flattened legacy configuration. db-sync also needs Protocol and LastKnownBlockVersion fields plus a Shelley genesis copy rounded to Byron whole-second startTime (under one second difference).
  • Version labels identify exactly what ran: current releases and Pallas main are checked alongside historical gouroboros, txtop and cardano-node-api controls. The locally patched tool builds are experiments, not upstream releases.
  • The codec matrix retains 17 transaction encodings (9 signed envelopes, including a rejected legacy certificate, plus 8 mempool encodings), 168 raw Dijkstra blocks, and a Conway block as a positive CML control. HFC framing is added only for the CML MultiEraBlock probe.
  • Raw logs, fixtures, resolved build inputs and checksums are retained under content/readiness/dijkstra-runs/2026-11-01/. No signing keys or credentials are retained.
  • Koios and advanced Dijkstra transaction bodies (nested transactions, direct deposits, balance intervals, PlutusV4) were not executed. Pass means only the capability and cases named by that check.

Node 11.2.0 forks to Dijkstra and reaches protocol version 12

The chain entered Dijkstra at the configured epoch and two governance hard forks raised the protocol version to 12. The protocol-parameter query returns 54 parameters: the 31 Conway ones plus the 23 Dijkstra additions (Leios, Peras, reference-script limits, minimum pool margin and maximum pledge leverage).

Observed output
  • 54 protocol parameters; protocolVersion {"major": 12, "minor": 0}
  • tip: { "block": 574, "epoch": 58, "era": "Dijkstra", "hash": "e3a0388f0bf39b4e93d257fabd175e6b5a7525645fda872f37fddcd7e3b5684b", "slot": 11744, "slotInEpoch": 144, "slotsToEpochEnd": 56, "syncProgress": "100.00" }

Recipe: scripts/readiness/devnet/start.sh, scripts/readiness/devnet/hardfork.sh

Node-to-client handshake accepts only V23

The V16–V22 offer and gouroboros 0.208.5 are refused; V23 and gouroboros v0.213.0, v0.213.9 and v0.216.3 connect. Ogmios v7.0.0, Kupo v2.12 and db-sync 13.7.2.1 connect with the adapted legacy configuration, then fail when decoding Dijkstra blocks.

Observed output
  • handshake-old.log: offered V16..V22: refused, reason VersionMismatch ['V23']
  • handshake-v23.log: offered V23..V23: accepted V23 [42, False]
  • handshake-v0.208.5.log: dial: handshake: version mismatch (supported versions: [32791])
  • handshake-v0.213.0.log: handshake ok; mempool capacity 25294848 size 0 transactions 0

Recipe: scripts/readiness/devnet/handshake.py, scripts/readiness/devnet/probe/main.go, scripts/readiness/devnet/services.sh, scripts/readiness/devnet/service-layer.sh

Which Conway-built transactions the node accepts after the fork

Conway-built payments, deposit registrations, required signers and metadata submit successfully after PV12. The deposit-less Conway registration is rejected as an era mismatch; the Dijkstra builder refuses the same certificate. Dijkstra-built payment, deposit registration and metadata submit successfully. The eight captured mempool encodings have three elements and retain the signed-envelope transaction ids. This checks submission and encoding; it is not full coverage of every guard or removed encoding.

Observed output
  • transactions.log: Transaction successfully submitted. Transaction hash is: ## conway-payment (conway build-raw) envelope: Tx ConwayEra 84a3 Transaction successfully submitted. Transaction hash is: {"txhash":"7c6f9ee56f56624659916e0478aa4aa031a4a522d7e57d377739144154dd3bcf"} ## conway-legacy-reg (conway build-raw) envelope: Tx ConwayEra 84a4 Command failed: transaction submit Error: The era of the node and the tx do not match. The node is running in the Dijkstra era, but the transaction is for the Conway era. ## conway-reg-with-deposit (conway build-raw) envelope: Tx ConwayEra 84a4 Transaction successfully submitted. Transaction hash is: {"txhash":"f8feee4d9bac7f2b3b76acec43324289e466e8d36874e42e834aa535e620e967"} ## conway-required-signer (conway build-raw) envelope: Tx ConwayEra 84a4 Transaction successfully submitted. Transaction hash is: {"txhash":"27eeb7435e5f18dff69c6f5d367589354c1693557c9a387e729bcea5277ae8d2"} ## conway-metadata (conway build-raw) envelope: Tx ConwayEra 84a4 Transaction successfully submitted. Transaction hash is: {"txhash":"4fa14513e70cfd7dca94e4ae6610932f23736717267e0a467c2fe7716893e3c9"} ## dijkstra-payment (dijkstra build-raw) envelope: Tx DijkstraEra 83a3 Transaction successfully submitted. Transaction hash is: {"txhash":"f61dcb8425f26cd99bae239f0002751c8e10badee48d51e5138c80a6f740b7ba"} ## dijkstra-legacy-reg (dijkstra build-raw) Command failed: transaction build-raw Error: /tmp/dijkstra-11.2.0/work/tx/kd0.cert: TextEnvelope decode error: DecoderErrorDeserialiseFailure "DijkstraTxCert DijkstraEra" (DeserialiseFailure 2 "Certificates without deposits are no longer supported") CallStack (from HasCallStack): ## dijkstra-reg-with-deposit (dijkstra build-raw) envelope: Tx DijkstraEra 83a4 Transaction successfully submitted. Transaction hash is: {"txhash":"898c3f6d9235f0728e2073b0f55ccfd48f112c86d78d1fd7670c2e848aa28bf5"} ## dijkstra-metadata (dijkstra build-raw) envelope: Tx DijkstraEra 83a4 Transaction successfully submitted. Transaction hash is: {"txhash":"31a6c502976cd97641a567fd2366f8ab4102a4099421200fff110c726ba187e1"}

Recipe: scripts/readiness/devnet/transactions.sh, scripts/readiness/devnet/txid.py

The node's Dijkstra block: non-segregated body, ten-field Babbage header

The tagged node still emits a two-element Dijkstra block with a non-segregated body and a ten-field Babbage header ending in protocol version [12, 0]. The target CDDL describes a different header. gouroboros v0.213.0, v0.213.9 and v0.216.3 decode 19 Conway blocks then fail because the Dijkstra decoder expects twelve header fields.

Observed output
  • block-shape.log: array[2] [0] array[2] [0] array[10] [0] 19 [1] 430 [2] bytes[32] [3] bytes[32] [4] bytes[32] [5] array[2] [0] bytes[64] [1] bytes[80] [6] 4 [7] bytes[32] [8] array[4] [0] bytes[32] [1] 0 [2] 0 [3] bytes[64] [9] array[2] [0] 12 [1] 0 [1] bytes[448] [1] array[3] [0] array[0] [1] None [2] None (consumed 854 of 854 bytes)
  • chain-v0.213.0.log: tip slot 12377 connection error: protocol error: decode Dijkstra block error: decode Dijkstra block header: unexpected Dijkstra block header body: expected exactly 12 fields, got 10 19 Conway: block decoded
  • chain-v0.213.9.log: tip slot 3542 connection error: protocol error: decode Dijkstra block error: decode Dijkstra block header: unexpected Dijkstra block header body: expected exactly 12 fields, got 10 19 Conway: block decoded
  • chain-v0.216.3.log: tip slot 3542 connection error: protocol error: decode Dijkstra block error: decode Dijkstra block header: unexpected Dijkstra block header body: expected exactly 12 fields, got 10 19 Conway: block decoded

Recipe: scripts/readiness/devnet/probe/main.go, scripts/readiness/devnet/cbor_dump.py

Ogmios v7.0.0 and Kupo v2.12 stop at the first Dijkstra block

With flattened legacy configuration, both services connect and then exit on the first Dijkstra block. Kupo indexes Conway through slot 361; Ogmios exits from its health chain-sync. The configuration-envelope failure is recorded separately.

Observed output
  • services.log: ogmios v7.0.0 (b3a830a1) ogmios exit 1; era at start: "currentEra":"dijkstra" ServerHasAgency (SingNext SingMustReply) (DeserialiseFailure 2530 "expected map len or indef") kupo v2.12.0+491918 kupo exit 1; last logged roll-forward slot: 361 ServerHasAgency (SingNext SingCanAwait) (DeserialiseFailure 863 "expected list len or indef")

Recipe: scripts/readiness/devnet/services.sh

gouroboros cannot tell the era of an ordinary Dijkstra transaction

On all three tested gouroboros releases, generic era detection fails for ordinary three-element Dijkstra transactions; the key-hash guard case is recognised and explicit Dijkstra decoding succeeds. txtop uses these same probe-exercised calls; this is not an end-to-end assertion about its rendered transaction list. The locally patched cardano-node-api reproduces HTTP 400 on Dijkstra submission and an unknown-type error on mempool listing.

Observed output
  • tx-decode-v0.216.3.log: conway-legacy-reg head 84a4: type 6: decoded conway-metadata head 84a4: type 6: decoded conway-payment head 84a3: type 6: decoded conway-reg-with-deposit head 84a4: type 6: decoded conway-required-signer head 84a4: type 6: decoded dijkstra-metadata head 83a4: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok dijkstra-payment head 83a3: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok dijkstra-reg-with-deposit head 83a4: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok split head 83a3: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok mempool-0 head 83a3: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok mempool-1 head 83a3: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok mempool-2 head 83a4: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok mempool-3 head 83a4: type 7: decoded mempool-4 head 83a4: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok mempool-5 head 83a3: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok mempool-6 head 83a4: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok mempool-7 head 83a4: DetermineTransactionType: unknown transaction type; forced Dijkstra decode: ok
  • {"msg":"failure connecting to node via UNIX socket: handshake: version mismatch (supported versions: [32791])"} [HTTP 500] pinned localstatequery/tip: {"msg":"failure connecting to node via UNIX socket: handshake: version mismatch (supported versions: [32791])"} [HTTP 500] pinned localtxmonitor/sizes: {"msg":"failure connecting to node via UNIX socket: handshake: version mismatch (supported versions: [32791])"} [HTTP 500] up localstatequery/current-era: {"name":"Dijkstra","id":7} [HTTP 200] up localstatequery/tip: {"era":"Dijkstra","hash":"ab09a8b9093767aecb45af04b17a4c47b7f2800b6020f96586a2c3ae487cf350","epoch_no":32,"block_no":321,"slot_no":6476} [HTTP 200] up localtxmonitor/sizes: {"capacity":25294848,"size":0,"tx_count":0} [HTTP 200] Transaction successfully submitted. Transaction hash is: up utxos/search-by-asset after minting in a Dijkstra transaction: {"utxos":[{"tx_hash":"40f94d22e5e03865dcbd5e5c679d127429b26e11c3bea4de1116bc6e0623eb16","index":0,"address":"addr_test1vpcue4x55l44krk7pype0asgykcm39tpsn5vw4czg8gzetsuf6we4","amount":5000000,"assets":[{"name":"devnet","nameHex":"6465766e6574","policyId":"9ed8d78e5229aa32f4efdda8776231c8459d2590abbd39794ae99097","fingerprint":"asset1ukh73nu0lpe4njnhtxkmuj5lhjprqsgjx453v5","amount":"1"}]}],"count":1,"truncated":false} up POST localtxsubmission/tx with a Dijkstra payment: "could not parse transaction to determine type: unknown transaction type" [HTTP 400] Transaction successfully submitted. Transaction hash is: up GET localtxmonitor/txs with that payment in the mempool: {"msg":"unknown transaction type"}

Recipe: scripts/readiness/devnet/probe/main.go, scripts/readiness/devnet/transactions.sh, scripts/readiness/devnet/tools.sh

txtop and cardano-node-api before and after the gouroboros upgrade

  • failtxtop86a013e pinned (gouroboros 0.208.5)
  • passtxtop86a013e with gouroboros v0.213.0· Connects and shows mempool sizes; mempool decoding is the tx-era-detection check.
  • failcardano-node-api1368155 pinned (gouroboros 0.202.7)
  • passcardano-node-api1368155 with gouroboros v0.213.9 and patches· Only after patching adder and its own code; UTxO, era, tip, parameter and mempool-size queries.

Historical txtop revision 86a013e and cardano-node-api revision 1368155 fail the V23 handshake at their original pins. txtop with gouroboros v0.213.0 connects and displays mempool capacity. cardano-node-api with gouroboros v0.213.9 and the retained local patches answers era, tip and mempool-size queries and returns the asset minted in a Dijkstra transaction. Its submission and mempool decoding still fail. This run rebuilds the patched controls; earlier unpatched compiler diagnostics remain in the archived assessment.

Observed output
  • txtop upgraded: Mempool capacity (bytes): 25294848
  • cardano-node-api pinned: handshake version mismatch, supported versions [32791]
  • cardano-node-api patched: current-era Dijkstra id 7 [HTTP 200]; tip [HTTP 200]; mempool sizes [HTTP 200]; utxos/search-by-asset returns devnet token.

Recipe: scripts/readiness/devnet/tools.sh, scripts/readiness/devnet/patches/adder-v0.45.0-gouroboros-v0.213.9.diff, scripts/readiness/devnet/patches/cardano-node-api-gouroboros-v0.213.9.diff

None of the three tested Pallas revisions decodes the node’s Dijkstra blocks

  • failpallasv1.4.0
  • failpallasmain b4a519fa
  • failpallasdijkstra e7ea1726· Built with the unstable feature.

v1.4.0 and main b4a519fa decode Conway but do not recognise Dijkstra blocks. The dijkstra branch e7ea1726 with unstable recognises the era but expects header field 10, which the tagged node does not emit. Live runs reach different tips; their block counts are not a progress metric.

Observed output
  • pallas-chain-v1.4.0.log: era tag 7: 19 blocks decoded, 0 transactions, 0 failed era tag 8: 0 blocks decoded, 0 transactions, 399 failed first failure: block 856 bytes: Unknown CBOR structure: 820882828a131901ae582010b648d8a114f989d6f1c45dba3d0c41b55ea958eb8e512f575f295a0e5bbb1858206c25b61240d7b5d9ab03ba831536474dd46e3265515d7f
  • pallas-chain-main.log: era tag 7: 19 blocks decoded, 0 transactions, 0 failed era tag 8: 0 blocks decoded, 0 transactions, 719 failed first failure: block 856 bytes: Unknown CBOR structure: 820882828a131901ae582010b648d8a114f989d6f1c45dba3d0c41b55ea958eb8e512f575f295a0e5bbb1858206c25b61240d7b5d9ab03ba831536474dd46e3265515d7f
  • pallas-chain-dijkstra.log: era tag 7: 19 blocks decoded, 0 transactions, 0 failed era tag 8: 0 blocks decoded, 0 transactions, 440 failed first failure: block 856 bytes: Invalid CBOR structure: missing value at index 10 (HeaderBody::block_body_contains_leios_cert) in map or array starting at position 4

Recipe: scripts/readiness/devnet/pallas-probe/main.rs, scripts/readiness/devnet/build-pallas-probe.sh

Pallas decodes mempool Dijkstra transactions only on its dijkstra branch, and only when told the era

  • failpallasv1.4.0
  • failpallasmain b4a519fa
  • passpallasdijkstra e7ea1726· Only through decode_for_era(Era::Dijkstra) with the unstable feature; MultiEraTx::decode still fails.

Across the 17 retained encodings, generic MultiEraTx::decode accepts the Conway envelopes but rejects every three-element Dijkstra encoding in all three tested revisions. The dijkstra branch with unstable decodes the Dijkstra encodings when explicitly given the era; its passing result is limited to that forced path.

Observed output
  • pallas-txs-main.log: conway-legacy-reg head 84a4: Conway: decoded, 1 inputs, 1 outputs conway-metadata head 84a4: Conway: decoded, 1 inputs, 1 outputs conway-payment head 84a3: Conway: decoded, 1 inputs, 1 outputs conway-reg-with-deposit head 84a4: Conway: decoded, 1 inputs, 1 outputs conway-required-signer head 84a4: Conway: decoded, 1 inputs, 1 outputs dijkstra-metadata head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac08018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 dijkstra-payment head 83a3: decode: Unknown CBOR structure: 83a300d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac05018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 dijkstra-reg-with-deposit head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac07018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 split head 83a3: decode: Unknown CBOR structure: 83a300d901028182582040f94d22e5e03865dcbd5e5c679d127429b26e11c3bea4de1116bc6e0623eb1601018a82581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-0 head 83a3: decode: Unknown CBOR structure: 83a300d901028182582040f94d22e5e03865dcbd5e5c679d127429b26e11c3bea4de1116bc6e0623eb1601018a82581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-1 head 83a3: decode: Unknown CBOR structure: 83a300d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac00018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-2 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac02018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-3 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac03018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-4 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac04018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-5 head 83a3: decode: Unknown CBOR structure: 83a300d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac05018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-6 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac07018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561 mempool-7 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac08018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561
  • pallas-txs-dijkstra.log: conway-legacy-reg head 84a4: Conway: decoded, 1 inputs, 1 outputs; forced Dijkstra decode: decode error: certificate variant 0 was removed in Dijkstra conway-metadata head 84a4: Conway: decoded, 1 inputs, 1 outputs; forced Dijkstra decode: ok, 1 inputs conway-payment head 84a3: Conway: decoded, 1 inputs, 1 outputs; forced Dijkstra decode: ok, 1 inputs conway-reg-with-deposit head 84a4: Conway: decoded, 1 inputs, 1 outputs; forced Dijkstra decode: ok, 1 inputs conway-required-signer head 84a4: Conway: decoded, 1 inputs, 1 outputs; forced Dijkstra decode: ok, 1 inputs dijkstra-metadata head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac08018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs dijkstra-payment head 83a3: decode: Unknown CBOR structure: 83a300d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac05018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs dijkstra-reg-with-deposit head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac07018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs split head 83a3: decode: Unknown CBOR structure: 83a300d901028182582040f94d22e5e03865dcbd5e5c679d127429b26e11c3bea4de1116bc6e0623eb1601018a82581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-0 head 83a3: decode: Unknown CBOR structure: 83a300d901028182582040f94d22e5e03865dcbd5e5c679d127429b26e11c3bea4de1116bc6e0623eb1601018a82581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-1 head 83a3: decode: Unknown CBOR structure: 83a300d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac00018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-2 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac02018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-3 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac03018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-4 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac04018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-5 head 83a3: decode: Unknown CBOR structure: 83a300d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac05018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-6 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac07018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs mempool-7 head 83a4: decode: Unknown CBOR structure: 83a400d9010281825820f4a52df48475e130a7875e6cd248be04c1e5ebeadb7e7a68fecb4e55b19f28ac08018182581d6071ccd4d4a7eb5b0ede090397f60825b1b89561; forced Dijkstra decode: ok, 1 inputs

Recipe: scripts/readiness/devnet/pallas-probe/main.rs, scripts/readiness/devnet/build-pallas-probe.sh, scripts/readiness/devnet/transactions.sh

CML 6.2.0 decodes neither Dijkstra blocks nor Dijkstra transactions

CML 6.2.0 decodes the Conway positive-control block and four-element Conway envelopes. Neither MultiEraBlock nor Conway Block decodes any of the 168 Dijkstra blocks; Transaction rejects every three-element Dijkstra encoding. MultiEraBlock receives HFC-wrapped fixtures, while Conway Block receives the unwrapped bytes.

Observed output
  • cml-blocks.log: era tag 7: 1 blocks; MultiEraBlock decoded 1, Conway Block decoded 1 era tag 8: 168 blocks; MultiEraBlock decoded 0, Conway Block decoded 0 first MultiEraBlock failure: Deserialization: No variant matched first Conway Block failure: Deserialization: Definite length mismatch: found 2
  • cml-txs.log: conway-legacy-reg head 84a4: decoded, 1 inputs conway-metadata head 84a4: decoded, 1 inputs conway-payment head 84a3: decoded, 1 inputs conway-reg-with-deposit head 84a4: decoded, 1 inputs conway-required-signer head 84a4: decoded, 1 inputs dijkstra-metadata head 83a4: decode: Deserialization: Definite length mismatch: found 3 dijkstra-payment head 83a3: decode: Deserialization: Definite length mismatch: found 3 dijkstra-reg-with-deposit head 83a4: decode: Deserialization: Definite length mismatch: found 3 split head 83a3: decode: Deserialization: Definite length mismatch: found 3 mempool-0 head 83a3: decode: Deserialization: Definite length mismatch: found 3 mempool-1 head 83a3: decode: Deserialization: Definite length mismatch: found 3 mempool-2 head 83a4: decode: Deserialization: Definite length mismatch: found 3 mempool-3 head 83a4: decode: Deserialization: Definite length mismatch: found 3 mempool-4 head 83a4: decode: Deserialization: Definite length mismatch: found 3 mempool-5 head 83a3: decode: Deserialization: Definite length mismatch: found 3 mempool-6 head 83a4: decode: Deserialization: Definite length mismatch: found 3 mempool-7 head 83a4: decode: Deserialization: Definite length mismatch: found 3

Recipe: scripts/readiness/devnet/cml-probe/main.rs, scripts/readiness/devnet/build-cml-probe.sh, scripts/readiness/devnet/pallas-probe/main.rs

cardano-js-sdk 0.47.1 decodes and re-encodes plain Dijkstra transactions

@cardano-sdk/core 0.47.1 decodes all 17 retained encodings and re-encodes them byte for byte, including Dijkstra metadata. This covers payments, deposit registration, a key-hash signer and metadata; it establishes neither advanced Dijkstra body support nor block decoding.

Observed output
  • js-sdk-txs.log: @cardano-sdk/core 0.47.1 conway-legacy-reg head 84a4: decoded, 1 inputs, 1 certificates, isValid true, id 93b074aad9cade68…, round-trip exact conway-metadata head 84a4: decoded, 1 inputs, 0 certificates, isValid true, id 4fa14513e70cfd7d…, round-trip exact conway-payment head 84a3: decoded, 1 inputs, 0 certificates, isValid true, id 7c6f9ee56f566246…, round-trip exact conway-reg-with-deposit head 84a4: decoded, 1 inputs, 1 certificates, isValid true, id f8feee4d9bac7f2b…, round-trip exact conway-required-signer head 84a4: decoded, 1 inputs, 0 certificates, isValid true, id 27eeb7435e5f18df…, round-trip exact dijkstra-metadata head 83a4: decoded, 1 inputs, 0 certificates, isValid true, id 31a6c502976cd976…, round-trip exact dijkstra-payment head 83a3: decoded, 1 inputs, 0 certificates, isValid true, id f61dcb8425f26cd9…, round-trip exact dijkstra-reg-with-deposit head 83a4: decoded, 1 inputs, 1 certificates, isValid true, id 898c3f6d9235f072…, round-trip exact split head 83a3: decoded, 1 inputs, 0 certificates, isValid true, id f4a52df48475e130…, round-trip exact mempool-0 head 83a3: decoded, 1 inputs, 0 certificates, isValid true, id f4a52df48475e130…, round-trip exact mempool-1 head 83a3: decoded, 1 inputs, 0 certificates, isValid true, id 7c6f9ee56f566246…, round-trip exact mempool-2 head 83a4: decoded, 1 inputs, 1 certificates, isValid true, id f8feee4d9bac7f2b…, round-trip exact mempool-3 head 83a4: decoded, 1 inputs, 0 certificates, isValid true, id 27eeb7435e5f18df…, round-trip exact mempool-4 head 83a4: decoded, 1 inputs, 0 certificates, isValid true, id 4fa14513e70cfd7d…, round-trip exact mempool-5 head 83a3: decoded, 1 inputs, 0 certificates, isValid true, id f61dcb8425f26cd9…, round-trip exact mempool-6 head 83a4: decoded, 1 inputs, 1 certificates, isValid true, id 898c3f6d9235f072…, round-trip exact mempool-7 head 83a4: decoded, 1 inputs, 0 certificates, isValid true, id 31a6c502976cd976…, round-trip exact

Recipe: scripts/readiness/devnet/js-probe/probe.cjs, scripts/readiness/devnet/transactions.sh

cardano-db-sync 13.7.2.1 stops at the first Dijkstra block, and Blockfrost RYO serves the pre-fork chain as current

  • failcardano-db-sync13.7.2.1
  • failblockfrostv6.8.2· Inherited: it serves db-sync's last pre-fork state as current; its own Dijkstra code paths were not reached.

db-sync 13.7.2.1 indexes the 19 Conway blocks and then repeatedly fails to decode the first Dijkstra block. Blockfrost RYO v6.8.2 on that database serves block 18 and protocol version 10 as latest while the node runs Dijkstra PV12. Its own Dijkstra paths are not reached. Koios was not run.

Observed output
  • service-layer.log: node tip: {"epoch":85,"era":"Dijkstra","block":810} db-sync running; blocks indexed: 19, highest: 18, epoch_param rows: 2 db-sync chain-sync decoder failures: 30 ServerHasAgency (SingNext SingCanAwait) (DeserialiseFailure 863 "expected list len or indef") last db-sync log line at: 2026-11-01 13:01:05.59 UTC blockfrost /blocks/latest: {"height":18,"slot":361,"epoch":1} blockfrost /epochs/latest/parameters: {"epoch":1,"protocol_major_ver":10} blockfrost /network/eras: [{"end":0},{"end":3}]

Recipe: scripts/readiness/devnet/service-layer.sh

CSL 17.0.0 and 15.0.3 decode no Dijkstra block; plain Dijkstra transactions decode but re-encode in the legacy form

CSL 17.0.0 and 15.0.3 decode none of the 168 Dijkstra blocks. All 17 transaction encodings decode, but three-element Dijkstra transactions re-encode as the legacy four-element form; FixedTransaction retains the transaction id. Advanced Dijkstra-only body keys were not exercised.

Observed output
  • csl17-blocks.log: cardano-serialization-lib 17.0.0 168 blocks (type 8 = Dijkstra): 168 Block error: Deserialization failed in Block because: Definite length mismatch: found 2; FixedBlock error: Deserialization: Definite length mismatch: found 2
  • csl15-blocks.log: cardano-serialization-lib 15.0.3 168 blocks (type 8 = Dijkstra): 168 Block error: Deserialization failed in Block because: Definite length mismatch: found 2; FixedBlock error: Deserialization: Definite length mismatch: found 2
  • csl17-txs.log: cardano-serialization-lib 17.0.0 conway-legacy-reg head 84a4: Transaction decoded, 1 inputs, re-encode exact; FixedTransaction decoded, id 93b074aad9cade68… conway-metadata head 84a4: Transaction decoded, 1 inputs, re-encode exact; FixedTransaction decoded, id 4fa14513e70cfd7d… conway-payment head 84a3: Transaction decoded, 1 inputs, re-encode exact; FixedTransaction decoded, id 7c6f9ee56f566246… conway-reg-with-deposit head 84a4: Transaction decoded, 1 inputs, re-encode exact; FixedTransaction decoded, id f8feee4d9bac7f2b… conway-required-signer head 84a4: Transaction decoded, 1 inputs, re-encode exact; FixedTransaction decoded, id 27eeb7435e5f18df… dijkstra-metadata head 83a4: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id 31a6c502976cd976… dijkstra-payment head 83a3: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id f61dcb8425f26cd9… dijkstra-reg-with-deposit head 83a4: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id 898c3f6d9235f072… split head 83a3: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id f4a52df48475e130… mempool-0 head 83a3: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id f4a52df48475e130… mempool-1 head 83a3: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id 7c6f9ee56f566246… mempool-2 head 83a4: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id f8feee4d9bac7f2b… mempool-3 head 83a4: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id 27eeb7435e5f18df… mempool-4 head 83a4: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id 4fa14513e70cfd7d… mempool-5 head 83a3: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id f61dcb8425f26cd9… mempool-6 head 83a4: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id 898c3f6d9235f072… mempool-7 head 83a4: Transaction decoded, 1 inputs, re-encode differs; FixedTransaction decoded, id 31a6c502976cd976…

Recipe: scripts/readiness/devnet/csl-probe/probe.cjs, scripts/readiness/devnet/probe/main.go

PyCardano 0.19.2 cannot decode a Dijkstra transaction that carries metadata

PyCardano 0.19.2 mistakes the third transaction element for is_valid. Three Dijkstra metadata encodings fail: the Dijkstra envelope and two mempool forms. The other 14 encodings decode and re-encode exactly. Installation used cbor2<6 for cbor2pure compatibility; the resolved environment is retained.

Observed output
  • pycardano-txs.log: pycardano 0.19.2 conway-legacy-reg head 84a4: decoded, 1 inputs, id 93b074aad9cade68…, re-encode exact conway-metadata head 84a4: decoded, 1 inputs, id 4fa14513e70cfd7d…, re-encode exact conway-payment head 84a3: decoded, 1 inputs, id 7c6f9ee56f566246…, re-encode exact conway-reg-with-deposit head 84a4: decoded, 1 inputs, id f8feee4d9bac7f2b…, re-encode exact conway-required-signer head 84a4: decoded, 1 inputs, id 27eeb7435e5f18df…, re-encode exact dijkstra-metadata head 83a4: error: DeserializeException: Cannot deserialize object: CBORTag(259, {0: {674: {'msg': ['devnet']}}}) in any valid type from (<class 'bool'>, <class 'NoneType'>). dijkstra-payment head 83a3: decoded, 1 inputs, id f61dcb8425f26cd9…, re-encode exact dijkstra-reg-with-deposit head 83a4: decoded, 1 inputs, id 898c3f6d9235f072…, re-encode exact split head 83a3: decoded, 1 inputs, id f4a52df48475e130…, re-encode exact mempool-0 head 83a3: decoded, 1 inputs, id f4a52df48475e130…, re-encode exact mempool-1 head 83a3: decoded, 1 inputs, id 7c6f9ee56f566246…, re-encode exact mempool-2 head 83a4: decoded, 1 inputs, id f8feee4d9bac7f2b…, re-encode exact mempool-3 head 83a4: decoded, 1 inputs, id 27eeb7435e5f18df…, re-encode exact mempool-4 head 83a4: error: DeserializeException: Cannot deserialize object: CBORTag(259, {0: {674: {'msg': ['devnet']}}}) in any valid type from (<class 'bool'>, <class 'NoneType'>). mempool-5 head 83a3: decoded, 1 inputs, id f61dcb8425f26cd9…, re-encode exact mempool-6 head 83a4: decoded, 1 inputs, id 898c3f6d9235f072…, re-encode exact mempool-7 head 83a4: error: DeserializeException: Cannot deserialize object: CBORTag(259, {0: {674: {'msg': ['devnet']}}}) in any valid type from (<class 'bool'>, <class 'NoneType'>).

Recipe: scripts/readiness/devnet/py-probe/probe.py

The versioned node configuration needs adaptation for Ogmios and Kupo

Node 11.2.0 generates and runs with a versioned configuration envelope. Ogmios v7.0.0 and Kupo v2.12 expect genesis paths at the top level and fail before connecting. Flattening equivalent settings lets the separate decoding checks run. This is a node-upgrade compatibility change, independent of PV12 activation.

Observed output
  • ogmios-envelope.log: Missing 'ByronGenesisFile' and/or 'ShelleyGenesisFile' from Cardano's configuration?
  • Kupo: missing or invalid 'ByronGenesisFile' and/or 'ShelleyGenesisFile' from Cardano's configuration

Recipe: scripts/readiness/devnet/start.sh, scripts/readiness/devnet/services.sh

Classification 2026-11-01 · boundary register 2026-11-01 · leads reviewed 2026-11-01 · devnet run 2026-11-01. Registers: content/readiness/dijkstra.