@blinklabs/dingo 0.46.3 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/RELEASE_NOTES.md DELETED
@@ -1,2029 +0,0 @@
1
- # Dingo Releases
2
-
3
- ## v0.46.2 (May 15, 2026)
4
-
5
- **Title:** Mithril trust-boundary protection, safer peer recovery, and sturdier rollback handling
6
-
7
- **Date:** May 15, 2026
8
-
9
- **Version:** v0.46.2
10
-
11
- Hi folks! Here’s what we shipped in v0.46.2.
12
-
13
- ### ✨ What's New
14
-
15
- * Added **record forged-block signals before chain adoption completes:** Operators can now see forged-block metrics and events as soon as a block is built, which improves observability even when chain adoption later fails. ([#2323](https://github.com/blinklabs-io/dingo/pull/2323))
16
- * Introduced **tune chainsync block timeout and safer reconnect resets:** Operators can now configure the NtN chainsync block timeout, and peer reconnect handling now clears connection timing and outbound retry state only when the connection path truly requires it. ([#2316](https://github.com/blinklabs-io/dingo/pull/2316))
17
-
18
- ### 💪 Improvements
19
-
20
- * Improved **refresh upstream compatibility with plutigo v0.1.13:** Deployments now stay aligned with the newer upstream support in `plutigo`, which keeps compatibility and routine maintenance steadier. ([#2327](https://github.com/blinklabs-io/dingo/pull/2327))
21
- * Refined **tighten default era-test coverage selection:** Default erastest runs now exclude vanRossem unless an explicit run filter is supplied, which keeps routine validation focused unless broader coverage is intentionally requested. ([#2325](https://github.com/blinklabs-io/dingo/pull/2325))
22
- * Enhanced **refresh protocol-library compatibility with gouroboros v0.170.1:** Protocol support now stays aligned with the newer upstream `gouroboros` release, which supports ongoing compatibility and maintenance work. ([#2321](https://github.com/blinklabs-io/dingo/pull/2321))
23
- * Updated **modernize dependency-policy checks in CI:** Continuous integration now uses the newer `gomodguard_v2` policy checks, which keeps dependency-policy maintenance current. ([#2320](https://github.com/blinklabs-io/dingo/pull/2320))
24
-
25
- ### 🔧 Fixes
26
-
27
- * Fixed **enforce Mithril trust boundaries during rollback recovery:** Mithril-restored nodes now treat the trusted snapshot boundary as a hard recovery limit, skip header-only verification at or below that boundary, and rebuild post-restore transaction metadata safely after restore. ([#2326](https://github.com/blinklabs-io/dingo/pull/2326))
28
- * Corrected **deny divergent peers before they can loop recovery:** Nodes now temporarily deny-list divergent peers, close denied inbound peers, and enforce those denials across more connection paths, which reduces rollback loops and reconnect churn. ([#2324](https://github.com/blinklabs-io/dingo/pull/2324))
29
- * Strengthened **recover live rollback divergence from a safe shared ancestor:** Live rollback reconciliation can now bring the primary chain and ledger back to a safe common ancestor, which improves recovery from over-K rollback and fork-divergence scenarios. ([#2322](https://github.com/blinklabs-io/dingo/pull/2322))
30
- * Stabilized **close databases safely during repeated shutdown paths:** Repeated shutdown or cleanup calls no longer trigger duplicate-close failures because `Database.Close` now behaves safely when called more than once. ([#2315](https://github.com/blinklabs-io/dingo/pull/2315))
31
-
32
- ### 📋 What You Need to Know
33
-
34
- * Clarified **trust the Mithril restore boundary during recovery:** Mithril-restored nodes now treat the trusted snapshot boundary as a hard rollback and replay limit, and they rebuild post-restore transaction metadata from restored block data after recovery completes.
35
- * Highlighted **safer divergent-peer recovery paths:** Nodes now temporarily deny bad peers during divergence recovery, and live rollback reconciliation can recover more safely by returning the primary chain and ledger to a shared safe ancestor.
36
- * Emphasized **stronger forging visibility and connection control:** Forged-block metrics and events now appear as soon as a block is built, and operators can tune the chainsync block timeout more directly.
37
- * Summarized **broader maintenance refreshes:** Dependency compatibility, validation defaults, dependency-policy checks, and database shutdown handling all received updates in this release.
38
-
39
- ### Recommended Network Compatibility ⚠️
40
-
41
- | Network | Compatible |
42
- |---------------------|------------|
43
- | mainnet | ⛔ |
44
- | preprod-testnet | ⛔ |
45
- | preview-testnet | ✅ |
46
-
47
- ### 🙏 Thank You
48
-
49
- Thank you for trying!
50
-
51
- ---
52
-
53
- ## v0.46.1 (May 14, 2026)
54
-
55
- **Title:** Conway genesis governance bootstrap, safer startup recovery, and networking fixes
56
-
57
- **Date:** May 14, 2026
58
-
59
- **Version:** v0.46.1
60
-
61
- Hi folks! Here’s what we shipped in v0.46.1.
62
-
63
- ### ✨ What's New
64
-
65
- * Added **bootstrap Conway governance from genesis settings:** Networks that define initial governance delegates and voter registrations now start with that governance state already in place, which gives governance aware services a more complete view from the first block.
66
-
67
- ### 💪 Improvements
68
-
69
- * Improved **surface clearer governance stability signals:** Operators can now see when stored governance proposals fail to decode during stability checks, which makes governance troubleshooting easier and keeps transition monitoring clearer.
70
- * Refined **pick up devnet configurator changes at startup:** Devnet runs now rebuild the configurator image before launch, which helps environment setup reflect the latest configuration behavior more reliably.
71
- * Enhanced **steady hard-fork readiness checks in tests:** Release validation now waits for hard-fork readiness checks to finish before asserting results, which makes test outcomes more dependable.
72
- * Updated **clarify mempool and UTxO RPC package guidance:** Embedded package guidance now explains transaction handling and UTxO filtering more clearly, which makes the exposed behavior easier to understand.
73
-
74
- ### 🔧 Fixes
75
-
76
- * Fixed **stop block producers when genesis snapshots fail:** Block producers now stop immediately if startup cannot build the required initial snapshot, which helps prevent unsafe forging starts.
77
- * Corrected **recover startup state from the right common chain point:** Startup recovery now rolls back to the latest shared chain point when local state no longer matches the selected chain, which helps nodes resume more cleanly after interrupted or divergent starts.
78
- * Strengthened **honor peer-sharing settings consistently:** Nodes now apply peer-sharing choices correctly across connections, which makes network behavior match the configured role more reliably.
79
- * Stabilized **return startup errors instead of crashing on missing services:** Startup now reports missing required services as ordinary errors, which makes failed launches easier to diagnose and recover.
80
- * Hardened **respect real epoch boundaries during leader scheduling:** Block production scheduling now follows the active epoch layout more accurately, which helps leaders avoid incorrect scheduling around changing epoch boundaries.
81
- * Repaired **restore pool state details more accurately:** Pool state recovery now reads stored pool details more reliably, which helps stake pool views stay complete after startup and rollback work.
82
- * Prevented **misread offset data from Byron boundary blocks:** Nodes now skip offset indexing for Byron epoch boundary blocks that carry no transactions, which avoids false indexing results during historical processing.
83
- * Secured **start UTxO RPC TLS sessions without reloading files:** UTxO RPC now keeps the loaded TLS certificate in memory for server startup, which makes secure startup behavior more reliable.
84
-
85
- ### 📋 What You Need to Know
86
-
87
- * Clarified **genesis governance now starts in place:** Networks that define initial governance delegates and voter registrations now begin with that governance state already loaded, which makes early governance visibility more complete from startup.
88
- * Highlighted **safer startup recovery and clearer failure handling:** Block producers now stop when required startup snapshots fail, startup reports missing required services as ordinary errors, and divergent startup state now rolls back to the right shared chain point more cleanly.
89
- * Emphasized **more reliable scheduling and peer behavior:** Block production scheduling now respects the active epoch layout more accurately, and peer sharing behavior now follows the configured role more consistently across connections.
90
- * Summarized **steadier operational support paths:** Governance observability, pool state recovery, historical offset handling, secure UTxO RPC startup, and devnet validation all received updates that make operations easier to trust.
91
-
92
- ### Recommended Network Compatibility ⚠️
93
-
94
- | Network | Compatible |
95
- |---------------------|------------|
96
- | mainnet | ⛔ |
97
- | preprod-testnet | ⛔ |
98
- | preview-testnet | ✅ |
99
-
100
- ### 🙏 Thank You
101
-
102
- Thank you for trying!
103
-
104
- ---
105
-
106
- ## v0.46.0 (May 13, 2026)
107
-
108
- **Title:** Stake account APIs, cardano-node Praos selection, and safer sync recovery
109
-
110
- **Date:** May 13, 2026
111
-
112
- **Version:** v0.46.0
113
-
114
- Hi folks! Here’s what we shipped in v0.46.0.
115
-
116
- ### ✨ What's New
117
-
118
- * Added **expand Blockfrost stake-account coverage:** Blockfrost compatible services can now return stake-account details, associated addresses, delegation history, registration history, and reward history through stake-address endpoints.
119
- * Introduced **surface chain block-proposed events:** Locally forged blocks now follow a dedicated proposal path before the chain accepts them, which gives operators clearer behavior around block adoption.
120
- * Expanded **track the highest observed pool certificate sequence:** Block producers can now compare the newest observed pool certificate sequence during startup, which makes outdated certificate counters easier to catch before they cause trouble.
121
-
122
- ### 💪 Improvements
123
-
124
- * Improved **raise the default Leios mempool capacity:** Leios mode now starts with a larger default mempool capacity, which gives transaction-heavy runs more room before the queue fills.
125
- * Refined **reduce SQLite batch allocation churn:** SQLite metadata backfill now reuses batch storage more efficiently, which helps sustained indexing work run more smoothly.
126
- * Enhanced **quiet routine NoBlocks log noise:** Routine blockfetch responses that return no blocks now stay at debug level, which keeps normal logs easier to scan for real issues.
127
- * Updated **strengthen chain-iterator regression coverage:** Regression checks now cover more iterator ordering, rollback, and waiting paths, which increases confidence in chain recovery behavior.
128
- * Clarified **explain Mithril API-mode backfill behavior more clearly:** API mode guidance now states that historical metadata backfill runs after Mithril snapshot import, which makes full-history expectations easier to understand.
129
-
130
- ### 🔧 Fixes
131
-
132
- * Fixed **align Praos chain selection with cardano-node behavior:** Equal-height chain choices now follow cardano-node tie breaking more closely, which helps nodes converge more reliably during competing forges.
133
- * Corrected **refresh connections after unrecoverable sync failures:** Nodes now drop affected sync connections and start fresh after security-window or unrecoverable recovery failures, which gives sync recovery a cleaner restart path.
134
- * Strengthened **use safer chain intersects across snapshot gaps:** Recovery now prefers better chain intersect points across snapshot gaps, which helps sync continue more reliably when history is incomplete.
135
- * Stabilized **restore account history in deterministic order:** Account recovery now uses block order as well as certificate order, which keeps restored account state consistent when multiple transactions share a slot.
136
- * Hardened **initialize ledger metrics earlier:** Ledger metrics now exist as soon as ledger state starts, which avoids failures in paths that read metrics before full startup completes.
137
- * Repaired **propagate rollback recovery errors correctly:** Rollback recovery now returns ancestor lookup and rollback errors directly, which makes serious recovery failures easier to detect and handle.
138
-
139
- ### 📋 What You Need to Know
140
-
141
- * Clarified **broader Blockfrost stake-account API coverage:** Blockfrost compatible services now cover stake-account details, address listings, delegation history, registration history, and reward history through stake-address endpoints.
142
- * Highlighted **cardano-node aligned Praos tie breaking and safer fresh sync recovery:** Equal-height Praos decisions now follow cardano-node behavior more closely, and unrecoverable sync failures now restart from fresh connections more aggressively.
143
- * Emphasized **larger Leios mempool defaults and stronger startup checks:** Leios mode now uses a larger default mempool, and pool certificate tracking gives block producers a clearer startup check for stale certificate counters.
144
- * Summarized **operational polish and documentation updates:** Logging, SQLite batching, regression coverage, and Mithril API-mode guidance all received changes that make operations easier to follow.
145
-
146
- ### Recommended Network Compatibility ⚠️
147
-
148
- | Network | Compatible |
149
- |---------------------|------------|
150
- | mainnet | ⛔ |
151
- | preprod-testnet | ⛔ |
152
- | preview-testnet | ✅ |
153
-
154
- ### 🙏 Thank You
155
-
156
- Thank you for trying!
157
-
158
- ---
159
-
160
- ## v0.45.0 (May 12, 2026)
161
-
162
- **Title:** Batched backfill, ledger safety fixes, and stronger PV11 readiness
163
-
164
- **Date:** May 12, 2026
165
-
166
- **Version:** v0.45.0
167
-
168
- Hi folks! Here’s what we shipped in v0.45.0.
169
-
170
- ### ✨ What's New
171
-
172
- * Added **batch historical backfill work for smoother replay progress:** Historical metadata replay now writes work in larger batches, which helps long backfills move forward more smoothly and keeps checkpoint recovery safer when replay resumes.
173
-
174
- ### 💪 Improvements
175
-
176
- * Improved **verify upcoming protocol-step readiness on a live multi-node path:** Release validation now checks the Conway to vanRossem progression more directly, which increases confidence that mixed-node networks can cross that protocol step cleanly.
177
- * Refined **expand fuzz-driven regression coverage across core behaviors:** More parsing, storage, networking, and configuration paths now receive broader stress coverage, which helps surface edge cases before they reach operators and integrators.
178
- * Enhanced **keep publish workflows moving while package indexing catches up:** Release publishing now avoids a broken package refresh step, which keeps releases moving even when package index updates take longer to appear.
179
-
180
- ### 🔧 Fixes
181
-
182
- * Fixed **recover sparse chain intersections more reliably after missing history gaps:** Synchronization can now fall back to safer recent chain points more consistently, which helps recovery continue when recent ledger history is incomplete.
183
- * Corrected **reject headers that run ahead of safe ledger rules:** Ledger validation now stops headers that claim a protocol step too far beyond the active rules, which reduces the risk of unsafe acceptance during version transitions.
184
- * Strengthened **skip rollback work that moves past the known ledger tip:** Recovery now avoids applying rollbacks that run ahead of recorded ledger progress, which keeps replay and catch-up behavior safer when metadata trails the raw chain.
185
-
186
- ### 📋 What You Need to Know
187
-
188
- * Clarified **backfill batching and safer replay progress:** Historical replay now batches more backfill work and keeps checkpoint progress safer, which helps long catch-up runs resume more smoothly after interruptions.
189
- * Highlighted **safer ledger validation, rollback handling, and sparse recovery:** Ledger validation now rejects headers that jump too far ahead, rollback handling no longer pushes past the known ledger tip, and sparse intersect recovery finds safer restart points more reliably.
190
- * Emphasized **stronger PV11 and fuzz regression coverage:** Release validation now exercises PV11 crossing behavior more directly, and broader stress coverage checks more parsing, storage, networking, and configuration paths for regressions.
191
- * Summarized **publish maintenance and package-index timing:** Release publishing keeps moving even while package index refreshes may lag because the refresh pull remains disabled.
192
-
193
- ### Recommended Network Compatibility ⚠️
194
-
195
- | Network | Compatible |
196
- |---------------------|------------|
197
- | mainnet | ⛔ |
198
- | preprod-testnet | ⛔ |
199
- | preview-testnet | ✅ |
200
-
201
- ### 🙏 Thank You
202
-
203
- Thank you for trying!
204
-
205
- ---
206
-
207
- ## v0.44.0 (May 11, 2026)
208
-
209
- **Title:** Blockfrost transaction endpoints, steadier Mithril backfill, and safer chain recovery
210
-
211
- **Date:** May 11, 2026
212
-
213
- **Version:** v0.44.0
214
-
215
- Hi folks! Here’s what we shipped in v0.44.0.
216
-
217
- ### ✨ What's New
218
-
219
- * Added **expand Blockfrost transaction access:** Blockfrost compatible services can now look up transaction details, metadata, UTxOs, certificates, redeemers, required signers, and signed CBOR, and they can also submit transactions with clearer submit responses.
220
-
221
- ### 💪 Improvements
222
-
223
- * Improved **preserve Mithril backfill progress across interruptions:** Mithril bootstrap now keeps more recovery state and resumes metadata backfill more safely, which helps interrupted runs continue without losing important progress.
224
- * Refined **give full devnet validation more time:** Devnet validation now has a longer default timeout, which reduces avoidable failures during full environment checks.
225
- * Enhanced **recover forked chains across more rollback paths:** Chain reconciliation now handles more rollback and fork combinations without dropping useful chain history, which makes recovery steadier after difficult fork scenarios.
226
- * Updated **align operational tooling with newer cardano-cli support:** Operational tooling now stays aligned with the newer `cardano-cli` release for smoother maintenance.
227
- * Modernized **align data handling with newer CBOR support:** Data handling now stays aligned with the newer CBOR library release for steadier compatibility maintenance.
228
- * Strengthened **align secrets handling with newer sops support:** Encrypted configuration and secrets handling now stay aligned with the newer `sops` release for steadier maintenance.
229
- * Advanced **align compression support with newer library updates:** Compression support now stays aligned with the newer `klauspost/compress` release for routine compatibility maintenance.
230
- * Polished **align system support with newer platform updates:** System level compatibility now stays aligned with the newer `golang.org/x/sys` release for steadier maintenance.
231
-
232
- ### 🔧 Fixes
233
-
234
- * Fixed **return safer intersect points from sparse ledger history:** Chains can now find safer meeting points even when recent ledger history is sparse, which helps sync and recovery continue more reliably.
235
-
236
- ### 📋 What You Need to Know
237
-
238
- * Clarified **broader Blockfrost transaction coverage and submit handling:** Blockfrost compatible integrations can now use transaction detail and submit endpoints with clearer coverage across metadata, UTxOs, certificates, redeemers, required signers, signed CBOR, and submit outcomes.
239
- * Highlighted **safer Mithril backfill and resume handling:** Mithril bootstrap now preserves more recovery state and resumes metadata backfill more safely, which lowers the chance of losing progress after an interrupted run.
240
- * Emphasized **safer fork and intersect recovery behavior:** Chain recovery now handles sparse intersect points and more fork reconciliation scenarios more safely, which helps nodes recover from difficult rollback paths with less risk of getting stuck.
241
- * Summarized **maintenance, validation, and dependency updates:** Validation timing and dependency compatibility were refreshed to keep operations and maintenance steadier around this release.
242
-
243
- ### Recommended Network Compatibility ⚠️
244
-
245
- | Network | Compatible |
246
- |---------------------|------------|
247
- | mainnet | ⛔ |
248
- | preprod-testnet | ⛔ |
249
- | preview-testnet | ✅ |
250
-
251
- ### 🙏 Thank You
252
-
253
- Thank you for trying!
254
-
255
- ---
256
-
257
- ## v0.43.0 (May 9, 2026)
258
-
259
- **Title:** Safer block-producer startup, deeper observability, and easier dashboard imports
260
-
261
- **Date:** May 9, 2026
262
-
263
- **Version:** v0.43.0
264
-
265
- Hi folks! Here’s what we shipped in v0.43.0.
266
-
267
- ### ✨ What's New
268
-
269
- * Added **catch block-producer credential problems during startup:** Block producers now stop early when forging credentials are missing, mismatched, expired, or not yet valid, which prevents later surprises after launch.
270
- * Expanded **track protocol activity and peer state changes:** Operators can now see clearer network behavior signals, which makes it easier to spot unhealthy connections and shifting peer conditions.
271
- * Introduced **prompt for the Prometheus datasource during dashboard imports:** Bundled Grafana dashboards now ask for the right Prometheus datasource during import, which makes dashboard setup smoother across different Grafana environments.
272
-
273
- ### 💪 Improvements
274
-
275
- * Improved **show epoch progress against wall-clock time in dashboards:** Operators can now compare current epoch slot progress with a wall-clock reference line, which makes slot stalls easier to notice.
276
- * Refined **track compatibility with gouroboros 0.168.0:** Protocol compatibility now stays aligned with the newer `gouroboros` `0.168.0` release for steadier maintenance and integration tracking.
277
-
278
- ### 🔧 Fixes
279
-
280
- * Updated **limit slow fallback block lookups in large databases:** Large databases and fork recovery paths now avoid long lookup stalls because fallback scans stop quickly and move on to safer recovery paths.
281
- * Modernized **restart ledger recovery after stale rollback iterators:** Rollback recovery now restarts cleanly when an iterator points at stale chain data, which helps forked chains continue without getting stuck on the wrong branch.
282
-
283
- ### 📋 What You Need to Know
284
-
285
- * Clarified **fail-fast forging startup checks:** Block-producer startup now validates VRF, KES, and operational certificate inputs against Shelley genesis data and available ledger state, so misconfigured or expired credentials stop the node early instead of failing later.
286
- * Highlighted **broader observability and easier dashboard imports:** Operators now get new protocol and peer observability metrics, and bundled dashboards are easier to import because Grafana prompts for the Prometheus datasource.
287
- * Emphasized **safer rollback recovery and block-hash lookups:** Rollback recovery and block-hash lookups now behave more safely on forked chains and very large databases because stale iterators restart cleanly and expensive fallback scans stop quickly.
288
- * Summarized **dependency tracking updates:** Maintenance tracking now includes the `gouroboros` `0.168.0` update.
289
-
290
- ### Recommended Network Compatibility ⚠️
291
-
292
- | Network | Compatible |
293
- |---------------------|------------|
294
- | mainnet | ⛔ |
295
- | preprod-testnet | ⛔ |
296
- | preview-testnet | ✅ |
297
-
298
- ### 🙏 Thank You
299
-
300
- Thank you for trying!
301
-
302
- ---
303
-
304
- ## v0.42.0 (May 8, 2026)
305
-
306
- **Title:** Batch stake account lookups for faster delegation queries
307
-
308
- **Date:** May 8, 2026
309
-
310
- **Version:** v0.42.0
311
-
312
- Hi folks! Here’s what we shipped in v0.42.0.
313
-
314
- ### ✨ What's New
315
-
316
- * Added **batch stake account lookups for faster delegation queries:** Stake-key-heavy delegation and reward account requests now return more smoothly because Dingo can load many stake accounts in one pass.
317
-
318
- ### 💪 Improvements
319
-
320
- * Improved **catch-up checks that no longer stall sync work:** Catch-up runs now stay smoother because hard-fork readiness checks evaluate in the background instead of pausing the main sync path.
321
- * Refined **larger deep catch-up block batches:** Nodes now pull much larger block batches during deep catch-up, which helps long syncs move forward faster with less stop-and-go behavior.
322
- * Enhanced **quieter inbound listener logging:** Routine inbound connection handling now produces calmer logs, which makes real connection problems easier to spot.
323
- * Updated **test environments aligned with cardano-node 11.0.1:** Validation and demo environments now track `cardano-node` `11.0.1`, which keeps operational testing closer to current network expectations.
324
- * Modernized **project alignment with Go 1.26.x:** Build, test, and release workflows now align on Go `1.26.x`, which keeps maintenance and contributor environments current.
325
- * Strengthened **Mithril bootstrap rollover coverage:** Regression coverage now checks Mithril bootstrap and candidate nonce rollover paths more thoroughly, which improves confidence around snapshot recovery.
326
-
327
- ### 🔧 Fixes
328
-
329
- * Fixed **governance imports that now preserve proposal history:** Mithril-bootstrapped nodes now keep parent action links, full proposal details, and ratified hard-fork timing so governance stays aligned after snapshot startup.
330
- * Corrected **archive demo teardown that no longer hangs on pruning shutdown:** The archive demonstration now cleans up pruning data with the right permissions, which makes teardown finish reliably.
331
- * Stabilized **clearer Bark and UTxO RPC startup failures:** Bark and UTxO RPC now return deterministic startup errors for TLS and port-binding problems, which makes failed launches easier to diagnose.
332
- * Preserved **Mithril governance roots across snapshot startup:** Mithril bootstrap now seeds governance roots so chained governance proposals keep progressing instead of silently expiring after startup.
333
- * Hardened **safer peer-sharing defaults by node role:** Block producers now keep peer sharing off by default, while non-block producers fall back to `cardano-node` behavior when the setting is unset.
334
- * Prevented **rollback recovery from replaying applied headers:** Chainsync rollback recovery now skips headers the node already applied, which prevents recovery from wedging after rollback scenarios.
335
- * Repaired **benchmark runs that no longer leave stray cloud paths in the worktree:** Benchmark tests now keep temporary cloud-backend metadata out of the worktree, which leaves local checkouts cleaner.
336
- * Eliminated **pinned-tip rollback loops during no-op rollbacks:** No-op rollbacks at the current tip no longer trigger repeated local resync loops, which keeps chainsync from wedging at a pinned tip.
337
- * Renamed **Dingo-owned metrics under the dingo_metrics prefix:** Dingo-owned metric families moved from `cardano_node_metrics_*` names to `dingo_metrics_*` names, bundled dashboards now use the new names, and operators who use any affected metrics must update alerts, dashboards, and monitoring queries.
338
-
339
- ### 📋 What You Need to Know
340
-
341
- * Clarified **faster stake account queries:** Batched account lookups now improve delegation and reward account queries for stake-key-heavy workloads.
342
- * Highlighted **faster and smoother catch-up behavior:** Catch-up behavior is faster and smoother because blockfetch batching scales much more aggressively, and hard-fork initiation checks no longer block the ledger path the same way.
343
- * Emphasized **safer governance continuity after Mithril bootstrap:** Mithril-bootstrapped nodes should see safer governance continuity because governance roots, parent action links, and ratification timing are now preserved more accurately after snapshot import.
344
- * Reviewed **operator updates for startup, peer sharing, and metrics:** Operators using Bark, UTxO RPC, PeerSharing, or any affected metrics must update alerts, dashboards, and monitoring queries for the Dingo-owned metric families that moved from `cardano_node_metrics_*` names to `dingo_metrics_*` names:
345
- * `cardano_node_metrics_txsEvictedNum_int` -> `dingo_metrics_txsEvictedNum_int`
346
- * `cardano_node_metrics_txsExpiredNum_int` -> `dingo_metrics_txsExpiredNum_int`
347
- * `cardano_node_metrics_slotBattlesTotal_int` -> `dingo_metrics_slotBattlesTotal_int`
348
- * `cardano_node_metrics_blockForgingLatency_seconds` -> `dingo_metrics_blockForgingLatency_seconds`
349
- * `cardano_node_metrics_forgedBlockSize_bytes` -> `dingo_metrics_forgedBlockSize_bytes`
350
- * `cardano_node_metrics_forgedBlockTxCount_int` -> `dingo_metrics_forgedBlockTxCount_int`
351
- * `cardano_node_metrics_leader_slot_checks_total` -> `dingo_metrics_leader_slot_checks_total`
352
- * `cardano_node_metrics_leader_slot_won_total` -> `dingo_metrics_leader_slot_won_total`
353
- * `cardano_node_metrics_leader_slot_not_won_total` -> `dingo_metrics_leader_slot_not_won_total`
354
- * `cardano_node_metrics_leader_vrf_eval_duration_seconds` -> `dingo_metrics_leader_vrf_eval_duration_seconds`
355
- * `cardano_node_metrics_leader_stake_lookup_duration_seconds` -> `dingo_metrics_leader_stake_lookup_duration_seconds`
356
- * `cardano_node_metrics_leader_last_epoch_slots_checked_int` -> `dingo_metrics_leader_last_epoch_slots_checked_int`
357
- * `cardano_node_metrics_leader_last_epoch_slots_won_int` -> `dingo_metrics_leader_last_epoch_slots_won_int`
358
- * `cardano_node_metrics_leader_last_epoch_slots_not_won_int` -> `dingo_metrics_leader_last_epoch_slots_not_won_int`
359
- * `cardano_node_metrics_leader_last_evaluated_epoch_int` -> `dingo_metrics_leader_last_evaluated_epoch_int`
360
- * `cardano_node_metrics_stake_snapshot_capture_duration_seconds` -> `dingo_metrics_stake_snapshot_capture_duration_seconds`
361
- * `cardano_node_metrics_stake_snapshot_capture_success_total` -> `dingo_metrics_stake_snapshot_capture_success_total`
362
- * `cardano_node_metrics_stake_snapshot_capture_failure_total` -> `dingo_metrics_stake_snapshot_capture_failure_total`
363
- * `cardano_node_metrics_stake_snapshot_pool_count_int` -> `dingo_metrics_stake_snapshot_pool_count_int`
364
- * `cardano_node_metrics_stake_snapshot_total_active_stake_lovelace` -> `dingo_metrics_stake_snapshot_total_active_stake_lovelace`
365
- * `cardano_node_metrics_stake_snapshot_last_successful_epoch_int` -> `dingo_metrics_stake_snapshot_last_successful_epoch_int`
366
- * `cardano_node_metrics_peerSelection_peers_by_source` -> `dingo_metrics_peerSelection_peers_by_source`
367
- * `cardano_node_metrics_peerSelection_churn_demotions_by_source` -> `dingo_metrics_peerSelection_churn_demotions_by_source`
368
- * `cardano_node_metrics_peerSelection_churn_promotions_by_source` -> `dingo_metrics_peerSelection_churn_promotions_by_source`
369
- * `cardano_node_metrics_peerSelection_InboundWarmTarget` -> `dingo_metrics_peerSelection_InboundWarmTarget`
370
- * `cardano_node_metrics_peerSelection_InboundHotQuota` -> `dingo_metrics_peerSelection_InboundHotQuota`
371
- * `cardano_node_metrics_peerSelection_InboundWarmHeld` -> `dingo_metrics_peerSelection_InboundWarmHeld`
372
- * `cardano_node_metrics_peerSelection_InboundHotHeld` -> `dingo_metrics_peerSelection_InboundHotHeld`
373
- * `cardano_node_metrics_peerSelection_InboundPruned` -> `dingo_metrics_peerSelection_InboundPruned`
374
- * `cardano_node_metrics_peerSelection_InboundArrivalsTotal` -> `dingo_metrics_peerSelection_InboundArrivalsTotal`
375
- * `cardano_node_metrics_peerSelection_InboundTopologyMatched` -> `dingo_metrics_peerSelection_InboundTopologyMatched`
376
- * `cardano_node_metrics_peerSelection_InboundDuplexHeld` -> `dingo_metrics_peerSelection_InboundDuplexHeld`
377
- * `cardano_node_metrics_peerSelection_InboundPrunedByReason` -> `dingo_metrics_peerSelection_InboundPrunedByReason`
378
- * `cardano_node_metrics_peerSelection_InboundLifecycleTotal` -> `dingo_metrics_peerSelection_InboundLifecycleTotal`
379
- * `cardano_node_metrics_peerSelection_InboundHotQuotaUsage` -> `dingo_metrics_peerSelection_InboundHotQuotaUsage`
380
- * `cardano_node_metrics_peerSelection_InboundWarmTargetOccupancy` -> `dingo_metrics_peerSelection_InboundWarmTargetOccupancy`
381
- * Summarized **refreshed tooling and validation:** Tooling and validation were refreshed through Go `1.26.x` alignment, `cardano-node` `11.0.1` test coverage, stronger Mithril rollover regression coverage, and archive-demo reliability improvements.
382
-
383
- ### Recommended Network Compatibility ⚠️
384
-
385
- | Network | Compatible |
386
- |---------------------|------------|
387
- | mainnet | ⛔ |
388
- | preprod-testnet | ⛔ |
389
- | preview-testnet | ✅ |
390
-
391
- ### 🙏 Thank You
392
-
393
- Thank you for trying!
394
-
395
- ---
396
-
397
- ## v0.41.0 (May 6, 2026)
398
-
399
- **Title:** Batched metadata writes, leaner memory use, and safer node behavior
400
-
401
- **Date:** May 6, 2026
402
-
403
- **Version:** v0.41.0
404
-
405
- Hi folks! Here’s what we shipped in v0.41.0.
406
-
407
- ### ✨ What's New
408
-
409
- * Added **batched metadata persistence across supported databases:** Metadata transaction data can now flush in batches across sqlite, MySQL, and Postgres backends, which makes high-volume metadata persistence easier to manage.
410
- * Expanded **archive node demonstration tooling:** Teams can now run an archive node demonstration with MinIO-backed archive storage, a pruning node, helper scripts, and an end-to-end runnable flow.
411
-
412
- ### 💪 Improvements
413
-
414
- * Improved **leaner default subscriber buffering:** Default subscriber buffers are now much smaller, while high-burst consumers keep large queues where needed, which reduces idle memory use.
415
- * Refined **era test harness organization:** The era test harness now lives in a clearer shared location, which makes validation work easier to follow.
416
- * Enhanced **Conway and PV11 readiness confidence:** Readiness coverage now checks Conway and PV11 behavior more clearly, which improves validation confidence.
417
- * Cleaned **stale rate limit maintenance:** The project now drops an outdated rate-limit constant, which keeps maintenance cleaner without changing runtime behavior.
418
- * Strengthened **archive node validation coverage:** The archive node demonstration now checks the full runnable flow more thoroughly, which makes the operational demo easier to trust.
419
-
420
- ### 🔧 Fixes
421
-
422
- * Fixed **safer Mithril startup around recoverable metadata gaps:** Missing blob commit-timestamp keys now resolve as empty values, and recoverable mismatches no longer block Mithril or related startup paths.
423
- * Corrected **iterator handling after storage closes:** Iterator creation now returns an error after Badger closes, which prevents a shutdown panic.
424
- * Synchronized **stability window reads during era changes:** Stability-window reads now stay aligned with concurrent era updates, which avoids race-driven failures.
425
- * Released **pruning locks earlier:** Pruning now releases the metadata and prune lock sooner, which reduces contention and improves diagnostics.
426
- * Preserved **eligible peer continuity during local tip plateaus:** Nodes no longer disconnect their only eligible peer when a local tip plateau appears.
427
- * Unified **peer identity handling across DNS fallbacks:** Hostname and IP variants now stay consistent for deduplication, deny lists, and DNS-failure logging.
428
-
429
- ### 📋 What You Need to Know
430
-
431
- * Clarified **batched metadata persistence availability:** Batched metadata persistence is now available across sqlite, MySQL, and Postgres backends.
432
- * Highlighted **lower idle heap usage:** Idle heap usage should be lower because default event subscriber buffers are smaller.
433
- * Emphasized **safer startup and shutdown paths:** Mithril startup and shutdown behavior is safer around recoverable database edge cases.
434
- * Summarized **more robust sync and peer management:** Sync and peer-management behavior is safer because plateau recovery and DNS-fallback peer handling are more robust.
435
- * Reviewed **archive demo updates:** The project now includes an archive-node demonstration plus stronger validation coverage.
436
-
437
- ### Recommended Network Compatibility ⚠️
438
-
439
- | Network | Compatible |
440
- |---------------------|------------|
441
- | mainnet | ⛔ |
442
- | preprod-testnet | ⛔ |
443
- | preview-testnet | ✅ |
444
-
445
- ### 🙏 Thank You
446
-
447
- Thank you for trying!
448
-
449
- ---
450
-
451
- ## v0.40.0 (May 5, 2026)
452
-
453
- **Title:** Governance DRep APIs and safer rollback recovery
454
-
455
- **Date:** May 5, 2026
456
-
457
- **Version:** v0.40.0
458
-
459
- Hi folks! Here’s what we shipped in v0.40.0.
460
-
461
- ### ✨ What's New
462
-
463
- * Added **Blockfrost compatible governance DRep lookups:** Blockfrost compatible services can now look up governance DReps by hex or bech32 identifier and retrieve registration, voting power, and activity details.
464
-
465
- ### 💪 Improvements
466
-
467
- * Improved **newer Blockfrost client compatibility:** Blockfrost backed integrations now stay aligned with the newer `blockfrost-go` client release for smoother API compatibility.
468
- * Refreshed **protocol and UTxO RPC compatibility:** Core protocol and UTxO RPC support now stay aligned with newer upstream releases, including Conway version 11 expectations, for steadier interoperability.
469
-
470
- ### 🔧 Fixes
471
-
472
- * Corrected **rollback loop recovery:** Nodes now force a fresh chainsync resync when the same rollback repeats, which helps recovery move forward instead of circling on the same point.
473
- * Stabilized **shutdown during catch up:** Nodes now finish in flight replay work before closing storage, which prevents `DB Closed` shutdown failures during catch up.
474
- * Realigned **ledger state after rollbacks:** Rollback recovery now rewinds ledger state together with the chain, which prevents repeated validation failures after peers resend the same blocks.
475
- * Enabled **faster source port reuse:** TCP reconnects now reuse configured source ports more reliably, which reduces reconnect failures after connection churn.
476
-
477
- ### 📋 What You Need to Know
478
-
479
- * Clarified **patch release upgrade guidance:** This is a patch release, and normal upgrade procedures are generally sufficient.
480
- * Highlighted **new governance DRep lookups:** Blockfrost compatible API users can now look up governance DReps through the new endpoint.
481
- * Summarized **safer rollback and resync recovery:** Rollback handling now detects loops, rewinds state correctly, and resyncs more cleanly after recovery problems.
482
- * Emphasized **steadier shutdowns and reconnects:** Catch up shutdowns and source port reuse now behave more reliably, which reduces avoidable interruptions.
483
- * Reviewed **dependency updates:** Blockfrost, protocol, and UTxO RPC dependencies were refreshed.
484
-
485
- ### Recommended Network Compatibility ⚠️
486
-
487
- | Network | Compatible |
488
- |---------------------|------------|
489
- | mainnet | ⛔ |
490
- | preprod-testnet | ⛔ |
491
- | preview-testnet | ✅ |
492
-
493
- ### 🙏 Thank You
494
-
495
- Thank you for trying!
496
-
497
- ---
498
-
499
- ## v0.39.3 (May 4, 2026)
500
-
501
- **Title:** Correct era transitions, Bark metadata, and peer recovery
502
-
503
- **Date:** May 4, 2026
504
-
505
- **Version:** v0.39.3
506
-
507
- Hi folks! Here’s what we shipped in v0.39.3.
508
-
509
- ### ✨ What's New
510
-
511
- * Noted **no new features:** This patch release focuses on improvements and fixes.
512
-
513
- ### 💪 Improvements
514
-
515
- * Improved **refreshed bundled Cardano network settings:** Synced bundled network settings now include newer peer snapshots, updated guardrails scripts, refreshed topology values, and newer node version expectations for smoother setup.
516
- * Updated **bundled cardano configs package:** Docker and bundled network settings now use `cardano-configs` `20260430-1` to stay aligned with the refreshed upstream configuration set.
517
- * Refined **AWS SDK config compatibility:** AWS backed configuration handling now stays aligned with the latest patch level for steadier cloud integration behavior.
518
- * Modernized **MySQL driver support:** MySQL backed deployments now stay current with `v1.10.0` for ongoing compatibility and maintenance.
519
- * Refreshed **Google API client support:** Google API integrations now stay current with `v0.277.0` for routine compatibility maintenance.
520
- * Advanced **AWS S3 SDK maintenance:** S3 backed storage support now includes the latest patch level for steadier ongoing compatibility.
521
- * Streamlined **devnet contributor workflow:** Contributors can work with the devnet test harness more easily because the end to end test support now lives under `internal/test/devnet` in a clearer shared location.
522
-
523
- ### 🔧 Fixes
524
-
525
- * Corrected **cross era transition correctness:** Dingo now keeps chain selection, nonce handling, leader schedule checks, slot battle resolution, and protocol parameter reads aligned across Shelley to Conway boundaries so peer validation and block production remain correct through hard fork transitions.
526
- * Preserved **Bark archive metadata for historical lookups:** Bark backed historical block access now keeps the metadata needed to find archived, tombstoned, or pruned blocks through indexed lookups.
527
- * Realigned **peer recovery after local tip plateaus:** Nodes now resync peer positions after plateau recovery so plateau triggered peer switching is less likely to stay stuck on misaligned peers.
528
-
529
- ### 📋 What You Need to Know
530
-
531
- * Clarified **patch release upgrade guidance:** This is a patch release, and normal upgrade procedures are generally sufficient.
532
- * Highlighted **safer Shelley to Conway transitions:** The most important runtime change is more reliable cross era validation and block production during Shelley to Conway transitions.
533
- * Summarized **Bark historical metadata availability:** Bark backed historical block access now returns the metadata needed for archived and tombstoned block lookups.
534
- * Emphasized **safer plateau recovery behavior:** Plateau recovery now realigns peers after a stalled active peer is recycled, which reduces the chance of getting stuck.
535
- * Reviewed **config and dependency refreshes:** Bundled Cardano configs now use the newer sync set, and several dependencies were updated for compatibility and maintenance.
536
-
537
- ### Recommended Network Compatibility ⚠️
538
-
539
- | Network | Compatible |
540
- |---------------------|------------|
541
- | mainnet | ⛔ |
542
- | preprod-testnet | ⛔ |
543
- | preview-testnet | ✅ |
544
-
545
- ### 🙏 Thank You
546
-
547
- Thank you for trying!
548
-
549
- ---
550
-
551
- ## v0.39.2 (May 2, 2026)
552
-
553
- **Title:** Improve fork recovery and hard fork readiness
554
-
555
- **Date:** May 2, 2026
556
-
557
- **Version:** v0.39.2
558
-
559
- Hi folks! Here’s what we shipped in v0.39.2.
560
-
561
- ### ✨ What's New
562
-
563
- * Added **hard fork validation plumbing:** Dingo now includes early validation infrastructure for scheduled era transitions and hard fork behavior, which improves confidence before future network changes take effect.
564
-
565
- ### 💪 Improvements
566
-
567
- * Improved **era transition protocol version handling:** Dingo now advances scheduled era transitions with the right protocol version, which makes era changes more reliable and reduces the chance of stalling at a fork boundary.
568
- * Refined **slot aware post fork protocol handling:** Dingo now selects the right protocol rules for the slot it is forging, which reduces the chance of producing era incompatible boundary blocks during scheduled forks.
569
-
570
- ### 🔧 Fixes
571
-
572
- * Restored **safer at tip fork recovery:** Dingo now backs out more effectively from repeated validation failures at tip, which gives chain selection more room to escape a bad fork instead of getting trapped on the same failing path.
573
- * Corrected **VRF nonce handling at epoch boundaries:** Dingo now carries forward the right nonce values across epoch boundaries, which keeps leader checks and boundary validation aligned with the active chain.
574
-
575
- ### 📋 What You Need to Know
576
-
577
- * Clarified **patch release upgrade guidance:** This is a patch release, and normal upgrade procedures are generally sufficient.
578
- * Highlighted **safer tip recovery behavior:** Nodes are less likely to remain stuck on the same failing fork after a tip validation problem.
579
- * Emphasized **safer era transitions and hard forks:** Scheduled era changes now progress more reliably, with lower risk of stalls or boundary blocks that do not match the active era.
580
- * Summarized **corrected nonce behavior at epoch boundaries:** Epoch boundary validation and leader related behavior now stay aligned with the correct nonce progression.
581
-
582
- ### Recommended Network Compatibility ⚠️
583
-
584
- | Network | Compatible |
585
- |---------------------|------------|
586
- | mainnet | ⛔ |
587
- | preprod-testnet | ⛔ |
588
- | preview-testnet | ✅ |
589
-
590
- ### 🙏 Thank You
591
-
592
- Thank you for trying!
593
-
594
- ---
595
-
596
- ## v0.39.1 (May 1, 2026)
597
-
598
- **Title:** Safer pruning, rollback recovery, and snapshot nonces
599
-
600
- **Date:** May 1, 2026
601
-
602
- **Version:** v0.39.1
603
-
604
- Hi folks! Here’s what we shipped in v0.39.1.
605
-
606
- ### ✨ What's New
607
-
608
- * Noted **no new features:** This patch release focuses on improvements and fixes.
609
-
610
- ### 💪 Improvements
611
-
612
- * Refined **archive aware Bark cleanup behavior:** Archived blocks now remain resolvable during prune and cleanup work because Bark leaves archive aware tombstones in place and reads honor them.
613
-
614
- ### 🔧 Fixes
615
-
616
- * Preserved **safer rollback cleanup near the Mithril boundary:** Rollback cleanup now keeps gap UTxOs intact near the Mithril boundary, which makes rollback recovery safer.
617
- * Hardened **archive aware Bark cleanup handling:** Bark pruning and archival handling now preserve the resolvability of archived blocks during cleanup.
618
- * Corrected **snapshot bootstrap nonce handling across state layouts:** Snapshot bootstrap now reads epoch and snapshot nonces correctly across supported state layouts, which keeps epoch boundary validation correct after bootstrap.
619
-
620
- ### 📋 What You Need to Know
621
-
622
- * Clarified **patch release upgrade guidance:** This is a patch release, and normal upgrade procedures are sufficient for most operators and users.
623
- * Highlighted **safer pruning and rollback recovery:** Bark pruning now preserves resolvable live UTxOs, and Mithril boundary rollback recovery now preserves the required gap block state for safe recovery.
624
- * Corrected **snapshot nonce handling after bootstrap:** Snapshot bootstrapped nodes now read the right nonce data across supported snapshot layouts so epoch boundary header and VRF validation continue correctly after bootstrap.
625
-
626
- ### Recommended Network Compatibility ⚠️
627
-
628
- | Network | Compatible |
629
- |---------------------|------------|
630
- | mainnet | ⛔ |
631
- | preprod-testnet | ⛔ |
632
- | preview-testnet | ✅ |
633
-
634
- ### 🙏 Thank You
635
-
636
- Thank you for trying!
637
-
638
- ---
639
-
640
- ## v0.39.0 (April 30, 2026)
641
-
642
- **Title:** Era-aware forging, Bark tuning, and safer diagnostics
643
-
644
- **Date:** April 30, 2026
645
-
646
- **Version:** v0.39.0
647
-
648
- Hi folks! Here’s what we shipped in v0.39.0.
649
-
650
- ### ✨ What's New
651
-
652
- * Added **dedicated profiling listener controls:** Operators can now enable runtime profiling on `debugPort` without exposing those endpoints on the metrics listener, and profiling stays disabled unless explicitly turned on.
653
- * Expanded **Bark cleanup control and custom S3 endpoint support:** Bark operators can now tune how often cleanup runs, and S3 compatible Bark storage now works more smoothly with custom endpoints.
654
- * Introduced **ledger driven Bark safety windows:** Bark now derives its safety window from live ledger state, which removes the need to manage a separate `barkSecurityWindow` setting.
655
-
656
- ### 💪 Improvements
657
-
658
- * Improved **near tip sync pacing:** Nodes now gate backup block requests against median peer latency and expose new gate metrics, which keeps near tip sync steadier with less duplicate work.
659
- * Refined **slot timing tolerance:** Busy nodes and catch up runs now tolerate more normal clock drift before raising noise about timing issues.
660
- * Enhanced **devnet validation workflow:** Development teams can now run `make test-devnet` for a more consistent devnet validation flow.
661
- * Modernized **Docker build cleanliness:** Container builds now avoid worktree and bot metadata directories, which keeps build contexts cleaner.
662
- * Updated **Bark download cancellation handling:** Bark block downloads now honor request cancellation and timeout context more cleanly, and lint coverage now checks that path again.
663
-
664
- ### 🔧 Fixes
665
-
666
- * Fixed **candidate nonce fallback safety:** Epoch and leader election calculations now stay protected when stored nonce rows trail behind block ingestion.
667
- * Corrected **Shelley to Allegra verification behavior:** Historical era verification now stays correct across the Shelley to Allegra boundary, which restores successful post fork VRF verification.
668
- * Hardened **multi era block forging:** Block producers can now forge correctly across Shelley through Conway era transitions instead of assuming Conway only block structure.
669
- * Stabilized **devnet config access for non root containers:** Generated configs and keys now remain easier for non root containers to read during devnet runs.
670
- * Repaired **txpump devnet build context:** Devnet and test transaction pump builds now resolve the correct Docker Compose build context more reliably.
671
-
672
- ### 📋 What You Need to Know
673
-
674
- * Clarified **Bark tuning changes:** Bark operators should stop expecting a separate `barkSecurityWindow` setting and should use `barkPrunerFrequency` when cleanup cadence needs tuning.
675
- * Highlighted **profiling opt in behavior:** Profiling users can enable runtime `pprof` on `debugPort`, while metrics stay isolated from debug endpoints by default.
676
- * Emphasized **safer era transition behavior:** Historical era and era transition runs should see safer behavior from the candidate nonce fallback, the Shelley to Allegra VRF correction, and pre Conway forging support.
677
- * Summarized **calmer sync and timing behavior:** Near tip sync and timing should feel steadier because shadow blockfetch gating is smarter and slot clock tolerance now allows 500ms of drift.
678
- * Simplified **devnet and container workflows:** Devnet and test workflows are easier because `make test-devnet`, the txpump build context correction, cleaner Docker contexts, and relaxed test config permissions reduce setup friction.
679
-
680
- ### Recommended Network Compatibility ⚠️
681
-
682
- | Network | Compatible |
683
- |---------------------|------------|
684
- | mainnet | ⛔ |
685
- | preprod-testnet | ⛔ |
686
- | preview-testnet | ✅ |
687
-
688
- ### 🙏 Thank You
689
-
690
- Thank you for trying!
691
-
692
- ---
693
-
694
- ## v0.38.0 (April 29, 2026)
695
-
696
- **Title:** Smarter sync decisions, clearer operations, and ready made dashboards
697
-
698
- **Date:** April 29, 2026
699
-
700
- **Version:** v0.38.0
701
-
702
- Hi folks! Here’s what we shipped in v0.38.0.
703
-
704
- ### ✨ What's New
705
-
706
- * Added **inbound peer controls and visibility:** Operators can now track how inbound peers are accepted, denied, warmed, promoted, cooled down, and pruned, which makes public relays easier to tune and unsolicited traffic easier to manage.
707
- * Expanded **dashboard based monitoring setup:** Operators can now deploy a full Grafana dashboard bundle with Prometheus scrape settings, alert rules, provisioning files, and setup guidance, which makes node monitoring faster to stand up.
708
- * Introduced **parallel backup block delivery near tip:** Nodes can now request the same near tip block range from a second suitable peer and prefer the faster response, which keeps sync steadier when multiple peers report the same tip.
709
- * Delivered **structured era mismatch errors:** Integrations can now detect era mismatch failures through consistent error details instead of relying on plain text parsing.
710
- * Surfaced **earlier era transition stability signals:** Operators and integrators can now see when an upcoming era transition has effectively stabilized before the epoch boundary arrives, which makes planning safer around governance driven changes.
711
-
712
- ### 💪 Improvements
713
-
714
- * Improved **one step era advancement safety:** Era changes now advance one boundary at a time, which avoids skipping required transition handling when the chain crosses into a new era.
715
- * Refined **future protocol setting audit guidance:** Maintainers now have a clearer note about a future audit at era boundaries, which makes upcoming governance work easier to track.
716
- * Enhanced **Windows and macOS build reliability:** Automation now avoids platform specific native linker issues on Windows and macOS, which keeps routine build verification steadier.
717
- * Modernized **Windows test stability on slower runners:** Automation now gives slower Windows runners more room to finish successfully, which reduces avoidable test failures.
718
- * Updated **OpenTelemetry stdout tracing support:** Tracing support now stays current with the newer `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` release.
719
- * Refreshed **Connect API compatibility:** Connect based integrations now stay current with the newer `connectrpc.com/connect` release.
720
- * Advanced **AWS S3 integration currency:** S3 backed workflows now stay aligned with the newer `github.com/aws/aws-sdk-go-v2/service/s3` release.
721
- * Polished **AWS client compatibility:** AWS backed components now stay aligned with the newer `github.com/aws/smithy-go` release.
722
-
723
- ### 🔧 Fixes
724
-
725
- * Fixed **active block download continuity during peer switches:** Near tip sync can now keep a block download moving even when the best peer changes, which reduces the chance of repeated restarts during equal tip switching.
726
- * Corrected **stale nonce cleanup after rollbacks:** Rollback recovery now removes outdated nonce data after fork changes and while loading tip state, which keeps nonce dependent behavior aligned with the active chain.
727
- * Hardened **async block delivery failure reporting:** Connection error handling now surfaces asynchronous block delivery failures, which makes stuck or failed block delivery easier to detect.
728
- * Stabilized **connection setup diagnostics:** Connection failure logs now include the remote peer address, which makes troubleshooting failed handshakes easier.
729
-
730
- ### 📋 What You Need to Know
731
-
732
- * Adopt the new Grafana and Prometheus dashboard bundle and alert rules to monitor Dingo nodes more quickly.
733
- * Expect steadier near-tip sync and smoother equal-tip peer switching because shadow blockfetch, latency aware peer choice, preserved in-flight batches, and clearer blockfetch failure reporting now work together.
734
- * Note more explicit era and hard-fork handling because Dingo now surfaces upcoming transition stability earlier, advances only one era at a time, and returns typed era mismatch errors.
735
- * Review the dependency refreshes when maintaining integrations.
736
-
737
- ### Recommended Network Compatibility ⚠️
738
-
739
- | Network | Compatible |
740
- |---------------------|------------|
741
- | mainnet | ⛔ |
742
- | preprod-testnet | ⛔ |
743
- | preview-testnet | ✅ |
744
-
745
- ### 🙏 Thank You
746
-
747
- Thank you for trying!
748
-
749
- ---
750
-
751
- ## v0.37.0 (April 27, 2026)
752
-
753
- **Title:** Genesis bootstrap, governance, and steadier Mithril recovery
754
-
755
- **Date:** April 27, 2026
756
-
757
- **Version:** v0.37.0
758
-
759
- Hi folks! Here’s what we shipped in v0.37.0.
760
-
761
- ### ✨ What's New
762
-
763
- * Added **Ouroboros Genesis bootstrap support:** Operators can now start from Genesis bootstrap flows, which gives early sync a clearer path before the node reaches the current chain tip.
764
- * Expanded **Genesis mode chain selection:** Nodes can now choose the chain more safely during Genesis mode, which keeps early sync aligned with the right history.
765
- * Introduced **bootstrap aware peer promotion:** Peer promotion now accounts for bootstrap state, which helps early sync keep useful peers active while the node is still catching up.
766
- * Delivered **Conway governance ratification support:** Governance aware services can now track ratified actions more completely as Conway governance advances.
767
- * Enabled **Conway governance enactment handling:** Governance state now follows enacted actions more accurately, which gives operators and integrators a clearer view of active governance outcomes.
768
- * Preserved **committee quorum persistence:** Committee quorum information now persists across restarts, which keeps governance state steadier after interruptions.
769
- * Opened **broader governance state handling:** Governance aware integrations can now read and handle more of the Conway governance state without losing important context.
770
- * Unlocked **new Blockfrost compatible block endpoints:** Blockfrost compatible users can now retrieve additional block details through new block endpoints.
771
- * Extended **new Blockfrost compatible network endpoints:** Network status integrations can now access new network endpoints in a Blockfrost compatible shape.
772
- * Introduced **new Blockfrost compatible era endpoints:** Era aware clients can now request era information through new Blockfrost compatible endpoints.
773
- * Added **new Blockfrost compatible genesis endpoints:** Genesis data is now available through new Blockfrost compatible endpoints for services that need network bootstrap details.
774
-
775
- ### 💪 Improvements
776
-
777
- * Improved **newer Mithril snapshot compatibility:** Bootstrap runs now accept newer snapshot shapes more reliably, which makes setup and recovery smoother across current Mithril data.
778
- * Refined **interrupted Mithril resume safety:** Resuming after an interrupted Mithril run now behaves more safely, which reduces the chance of a broken recovery path.
779
- * Enhanced **bootstrap aware peer governance:** Peer promotion and selection now align more closely with bootstrap state, which helps early sync keep useful peers active.
780
- * Modernized **bootstrap and governance observability:** Operators can now see more metrics and event signals around bootstrap and governance behavior.
781
- * Updated **operator and integrator guidance:** Documentation and workflow refreshes make recent bootstrap, governance, and API behavior easier to follow.
782
-
783
- ### 🔧 Fixes
784
-
785
- * Fixed **Mithril bootstrap resume reliability:** Mithril bootstrap and resume handling now recover more reliably when a previous run stopped before completion.
786
- * Corrected **snapshot bootstrap handling:** Snapshot based bootstrap flows now handle current snapshot layouts correctly, which reduces failed setup paths.
787
- * Hardened **early sync recovery behavior:** Recovery during early sync now follows Genesis mode chain selection and bootstrap aware promotion more safely after interruptions.
788
- * Stabilized **governance state continuity:** Governance state now keeps ratification, enactment, and committee quorum handling steadier across restarts and replay.
789
-
790
- ### 📋 What You Need to Know
791
-
792
- * Clarified **Genesis bootstrap rollout:** Ouroboros Genesis bootstrap changes early sync behavior, including Genesis mode chain selection and bootstrap aware peer promotion.
793
- * Highlighted **governance support growth:** Conway governance coverage now reaches ratification, enactment, committee quorum persistence, and broader governance state handling.
794
- * Emphasized **steadier Mithril recovery:** Mithril bootstrap and resume handling now work more reliably with newer snapshot shapes and safer interrupted resume behavior.
795
- * Summarized **expanded Blockfrost compatibility:** Blockfrost compatible users can now use new block, network, era, and genesis endpoints.
796
-
797
- ### 🙏 Thank You
798
-
799
- Thank you for trying!
800
-
801
- ---
802
-
803
- ## v0.36.1 (April 21, 2026)
804
-
805
- **Title:** Steadier catch-up sync and refreshed integrations
806
-
807
- **Date:** April 21, 2026
808
-
809
- **Version:** v0.36.1
810
-
811
- Hi folks! Here’s what we shipped in v0.36.1.
812
-
813
- ### 💪 Improvements
814
-
815
- * Improved **catch-up sync stability:** Nodes now stay steadier while catching up because stall checks wait longer, plateau recovery allows more time, and recycle cooldowns stay longer until the node reaches tip, which reduces unnecessary connection recycling and socket churn during large syncs.
816
- * Updated **AWS integration currency:** AWS backed integrations stay current because the AWS SDK config package and related AWS modules were refreshed.
817
- * Refreshed **core AWS compatibility:** AWS integrated behavior stays aligned with upstream fixes because the core AWS SDK and `aws/smithy-go` were updated.
818
- * Modernized **Google API client support:** Google API client support stays current because `google.golang.org/api` now uses a newer release.
819
-
820
- ### 🙏 Thank You
821
-
822
- Thank you for trying!
823
-
824
- ---
825
-
826
- ## v0.36.0 (April 20, 2026)
827
-
828
- **Title:** Asset endpoints and steadier chain operations
829
-
830
- **Date:** April 20, 2026
831
-
832
- **Version:** v0.36.0
833
-
834
- Hi folks! Here’s what we shipped in v0.36.0.
835
-
836
- ### ✨ What's New
837
-
838
- * Added **asset queries for Blockfrost API users:** Blockfrost API users can now query native assets through `/api/v0/assets/{asset}` with the combined asset identifier format.
839
- * Expanded **era transition visibility:** Era history now shows confirmed upcoming change points more clearly, so slot and time forecasts stay aligned with known transitions.
840
- * Clarified **safe epoch boundaries:** Era history now reports when an era change cannot happen in the current epoch, which makes forecast results steadier near the epoch boundary.
841
-
842
- ### 💪 Improvements
843
-
844
- * Improved **contributor setup guidance:** Development work is easier to follow because the project now includes clearer guidance for testing, architecture, and profiling.
845
- * Refreshed **build cache stability:** Automation now uses a newer cache action release for steadier build runs.
846
- * Updated **protocol support alignment:** Network compatibility stays current with newer upstream protocol updates.
847
- * Modernized **operator tooling support:** Operational workflows stay aligned with newer Cardano command line tooling.
848
- * Streamlined **era rollover handling:** Era changes now follow one transition path, which makes chain operations more consistent during rollovers.
849
-
850
- ### 🔧 Fixes
851
-
852
- * Fixed **single relay sync stalls:** Single-relay block producers now keep chain progress steadier when the relay reconnects first after an interruption.
853
- * Hardened **ledger startup safeguards:** Startup and rollback related paths now stop immediately when the Ouroboros security parameter K is missing or zero.
854
- * Corrected **fork recovery error reporting:** Fork recovery now returns ancestor lookup failures directly, which makes recovery issues easier to detect.
855
- * Prevented **Blockfrost startup crashes:** Blockfrost startup now returns a clear error when ledger state is missing instead of crashing.
856
- * Set **forged block version markers:** Forged blocks now carry the expected minor protocol version for steadier interoperability.
857
-
858
- ### 📋 What You Need to Know
859
-
860
- * Blockfrost API users can now query native assets through /api/v0/assets/{asset} using the concatenated {policy_id}{asset_name_hex} identifier format.
861
- * Operators should ensure ledger initialization provides a positive Ouroboros security parameter K, because startup and rollback-related paths now fail fast when K is unset or zero.
862
- * Most users can upgrade normally to v0.36.0; single-relay block producers should see steadier sync behavior, and Blockfrost startup now reports missing ledger state as an error instead of panicking.
863
-
864
- ### 🙏 Thank You
865
-
866
- Thank you for trying!
867
-
868
- ---
869
-
870
- ## v0.35.3 (April 19, 2026)
871
-
872
- **Title:** Improve peer sharing compatibility
873
-
874
- **Date:** April 19, 2026
875
-
876
- **Version:** v0.35.3
877
-
878
- Hi folks! Here’s what we shipped in v0.35.3.
879
-
880
- ### ✨ What's New
881
-
882
- * Noted **no new features:** This patch focuses on improvements and fixes.
883
-
884
- ### 🔧 Fixes
885
-
886
- * Corrected **safer peer sharing behavior:** Dingo now avoids asking peers to share more peers when they do not offer that capability, so connections stay steadier and compatibility is smoother across mixed peer setups.
887
-
888
- ### 📋 What You Need to Know
889
-
890
- * Simplified **upgrade guidance:** Most users only need to upgrade to v0.35.3, and peer sharing now behaves more safely with peers that do not advertise sharing.
891
-
892
- ### 🙏 Thank You
893
-
894
- Thank you for trying!
895
-
896
- ---
897
-
898
- ## v0.35.2 (April 18, 2026)
899
-
900
- **Title:** Safer era forecasts and refreshed dependencies
901
-
902
- **Date:** April 18, 2026
903
-
904
- **Version:** v0.35.2
905
-
906
- Hi folks! Here’s what we shipped in v0.35.2.
907
-
908
- ### ✨ What's New
909
-
910
- * Noted **no new features:** This patch focuses on improvements and fixes.
911
-
912
- ### 💪 Improvements
913
-
914
- * Improved **protocol library compatibility:** Dingo now uses gouroboros v0.165.1 to stay current with upstream protocol library updates.
915
-
916
- ### 🔧 Fixes
917
-
918
- * Corrected **safer era forecasts:** Hard fork era history now stays within the safe forecast horizon, so slot and time lookups do not promise certainty too far past the current ledger tip.
919
-
920
- ### 📋 What You Need to Know
921
-
922
- * Simplified **upgrade guidance:** No action is required for most users, and upgrading to v0.35.2 is sufficient.
923
-
924
- ### 🙏 Thank You
925
-
926
- Thank you for trying!
927
-
928
- ---
929
-
930
- ## v0.35.1 (April 17, 2026)
931
-
932
- **Title:** Steadier peers and faster schedule calculations
933
-
934
- **Date:** April 17, 2026
935
-
936
- **Version:** v0.35.1
937
-
938
- Hi folks! Here’s what we shipped in v0.35.1.
939
-
940
- ### ✨ What's New
941
-
942
- - **No new features:** This patch focuses on improvements and fixes.
943
-
944
- ### 💪 Improvements
945
-
946
- - **Faster epoch nonce computation:** Ledger processing moves faster because epoch nonce calculation now uses stored nonce data instead of decoding every block again.
947
- - **Quicker leader schedule generation:** Schedule calculation finishes dramatically faster, especially on lower-powered hardware, while keeping the same scheduling behavior.
948
- - **Current upstream protocol compatibility:** Cardano protocol support stays current because key upstream dependencies were refreshed for smoother compatibility.
949
- - **Stronger PostgreSQL compatibility:** PostgreSQL-backed setups are more robust because upstream database coverage and compatibility were improved.
950
- - **More predictable Antithesis defaults:** Test environments are easier to reason about because the default `IMAGE_TAG` now resolves to `main` instead of `latest`.
951
-
952
- ### 🔧 Fixes
953
-
954
- - **Steadier peer selection near tip:** Nodes are less likely to bounce between near-tip peers because chain selection now compares the tips it has actually observed.
955
- - **Safer UTxO RPC predicate handling:** Deep or cyclic request predicates no longer recurse indefinitely, so requests do not hang or risk crash-like behavior.
956
- - **More reliable UTxO RPC queries:** SQLite-backed address queries now handle the reserved `transaction` table name correctly, and broader Connect RPC coverage helps harden query, submit, sync, and watch behavior.
957
-
958
- ### 📋 What You Need to Know
959
-
960
- - **No action required for most users:** You're all set—just upgrade to v0.35.1.
961
- - **Antithesis users:** If you rely on the default IMAGE_TAG in the dingo-praos testnet compose file, it now resolves to `main` instead of `latest`.
962
-
963
- ### 🙏 Thank You
964
-
965
- Thank you for trying!
966
-
967
- ---
968
-
969
-
970
- ## v0.35.0 (April 15, 2026)
971
-
972
- **Title:** Smoother sync and faster block lookups
973
-
974
- **Date:** April 15, 2026
975
-
976
- **Version:** v0.35.0
977
-
978
- Hi folks! Here’s what we shipped in v0.35.0.
979
-
980
- ### ✨ What's New
981
-
982
- - **Blockfrost-compatible metadata-label transaction endpoints:** Building Blockfrost-style integrations is easier because you can now query transaction metadata labels using Blockfrost-compatible endpoints.
983
-
984
- ### 💪 Improvements
985
-
986
- - **More complete Mithril bootstrap snapshots:** Startup is smoother because nodes now prepare more of the snapshot data needed for the current epoch window after a Mithril bootstrap.
987
- - **More resilient peer retry behavior:** Sync is more rock-solid because chainsync and blockfetch retry using the active best peer when target connections aren’t available.
988
- - **Faster block lookup by hash:** Hash-based block queries are faster because block-by-hash resolution is streamlined across blob storage backends.
989
- - **Larger event queue capacity:** Bursty workloads are easier to handle because the event queue capacity was increased from 10,000 to 100,000.
990
- - **Stronger connection direction tracking:** Networking is more rock-solid because chainsync tracks outbound-started clients and the connection manager detects inbound/outbound `ConnectionId` collisions.
991
- - **Simpler SQLite metadata batching:** Batched metadata writes are easier to manage because a `BatchAccumulator` streamlines collecting and resetting SQLite metadata model batches.
992
-
993
- ### 🔧 Fixes
994
-
995
- - **No user-facing fixes:** This release focuses on new features and improvements.
996
-
997
- ### 📋 What You Need to Know
998
-
999
- - **No action required:** You're all set—just upgrade to v0.35.0.
1000
-
1001
- ### 🙏 Thank You
1002
-
1003
- Thank you for trying!
1004
-
1005
- ---
1006
-
1007
-
1008
- ## v0.34.0 (April 14, 2026)
1009
-
1010
- **Title:** Blockfrost-compatible metadata label endpoints
1011
-
1012
- **Date:** April 14, 2026
1013
-
1014
- **Version:** v0.34.0
1015
-
1016
- Hi folks! Here’s what we shipped in v0.34.0.
1017
-
1018
- ### ✨ What's New
1019
-
1020
- - **Blockfrost-compatible metadata-label transaction endpoints:** Building Blockfrost-style integrations is easier because you can now retrieve transactions by metadata label using endpoints that match Blockfrost conventions.
1021
-
1022
- ### 💪 Improvements
1023
-
1024
- - **Ledger validation guardrails:** Ledger validation and processing is more consistent in edge cases, which helps avoid repeated work and makes failures easier to understand.
1025
- - **Safer Unix-domain socket startup:** Local Unix socket startup is safer and more reliable, reducing the chance of startup failures due to leftover files.
1026
- - **Clearer submit errors (`utxorpc/submit.go`):** Error messages now provide clearer context when a submission fails, making troubleshooting faster.
1027
- - **Shared SQL address filtering and sentinel errors:** SQL plugins now share a consistent way to filter UTxO addresses and report common failure cases, which improves maintainability and debugging.
1028
- - **Dependency refresh:** Dependencies were refreshed to keep the project current and compatible with upstream fixes and improvements.
1029
- - **More adaptive Antithesis workflow defaults:** CI workflow behavior is now more adaptive, helping reduce unintended pinning to outdated behavior in automation runs.
1030
-
1031
- ### 🔧 Fixes
1032
-
1033
- - **No user-facing fixes:** This release focuses on new features and improvements.
1034
-
1035
- ### 📋 What You Need to Know
1036
-
1037
- - **Blockfrost integrations:** If you rely on Blockfrost-compatible behavior, you can start using the new metadata-label transaction endpoints immediately without changing existing endpoints.
1038
-
1039
- ### 🙏 Thank You
1040
-
1041
- Thank you for trying!
1042
-
1043
- ---
1044
-
1045
-
1046
- ## v0.33.0 (April 13, 2026)
1047
-
1048
- **Title:** Blockfrost-compatible address endpoints
1049
-
1050
- **Date:** April 13, 2026
1051
-
1052
- **Version:** v0.33.0
1053
-
1054
- Hi folks! Here’s what we shipped in v0.33.0.
1055
-
1056
- ### ✨ What's New
1057
-
1058
- - **Blockfrost-compatible address endpoints:** Plugging Dingo into existing Blockfrost-based tooling is easier because you can now query address UTxOs and transactions via Blockfrost-compatible HTTP endpoints.
1059
- - **Epoch-scoped protocol parameters:** Clients can fetch the exact settings they need for historical or upcoming validation because protocol parameters can now be requested for a specific epoch.
1060
-
1061
- ### 💪 Improvements
1062
-
1063
- - **Node internals split into focused files:** The codebase is easier to navigate because chainsync recycling, forging, and shutdown logic moved out of `node.go` into dedicated files.
1064
- - **Makefile help and lint targets:** Build and contributor workflows are easier to run consistently because the Makefile now includes `help` and `lint` targets with inline target descriptions.
1065
- - **Dependency and CI refresh:** Compatibility stays smoother because Go module dependencies (including `golang.org/x`), key CI actions, and the txtop Docker image were updated.
1066
- - **Clearer package docs and licensing:** Development is simpler because core packages now include Apache 2.0 headers, richer package docs, and conformance test suite docs under `internal/test/conformance`.
1067
- - **More complete `dingo.yaml.example`:** Getting started is easier because the example config now includes a default `databasePath` that matches the expected on-disk layout.
1068
-
1069
- ### 🔧 Fixes
1070
-
1071
- - **Safer chainsync recycling on small topologies:** Small networks are less likely to lose their only workable connection because the recycler now avoids recycling the only eligible peer.
1072
-
1073
- ### 📋 What You Need to Know
1074
-
1075
- - **No action required:** You're all set—just upgrade to v0.33.0.
1076
-
1077
- ### 🙏 Thank You
1078
-
1079
- Thank you for trying!
1080
-
1081
- ---
1082
-
1083
-
1084
- ## v0.32.3 (April 10, 2026)
1085
-
1086
- **Title:** Certificate-aware transaction matching
1087
-
1088
- **Date:** April 10, 2026
1089
-
1090
- **Version:** v0.32.3
1091
-
1092
- Hi folks! Here’s what we shipped in v0.32.3.
1093
-
1094
- ### ✨ What's New
1095
-
1096
- - **Certificate-aware transaction pattern matching (`has_certificate`):** Filtering certificate-related transactions is easier because you can now match and validate Cardano certificates directly in transaction pattern rules.
1097
-
1098
- ### 💪 Improvements
1099
-
1100
- - **More reliable persistent-fork recovery:** Sync is more rock-solid because chain sync now closes the affected connection when it detects a persistent fork.
1101
-
1102
- ### 🔧 Fixes
1103
-
1104
- - **No user-facing fixes:** This patch focuses on new features and improvements.
1105
-
1106
- ### 📋 What You Need to Know
1107
-
1108
- - **Transaction-pattern configs:** If you maintain custom transaction-pattern rules, you can start using `has_certificate` to filter or detect certificate-related transactions.
1109
-
1110
- ### 🙏 Thank You
1111
-
1112
- Thank you for trying!
1113
-
1114
- ---
1115
-
1116
-
1117
- ## v0.32.2 (April 9, 2026)
1118
-
1119
- **Title:** Stability and polish updates
1120
-
1121
- **Date:** April 9, 2026
1122
-
1123
- **Version:** v0.32.2
1124
-
1125
- Hi folks! Here’s what we shipped in v0.32.2.
1126
-
1127
- ### ✨ What's New
1128
-
1129
- - **No new features:** This patch focuses on improvements and fixes.
1130
-
1131
- ### 💪 Improvements
1132
-
1133
- - **More reliable connection cleanup:** Network operations stay more rock-solid because the node now detects inactive connections and purges leftover state tied to closed links.
1134
- - **Refreshed telemetry and runtime dependencies:** Observability and compatibility stay smoother because core dependencies (including OpenTelemetry, gRPC, and gonum) were refreshed.
1135
-
1136
- ### 📋 What You Need to Know
1137
-
1138
- - **No action required:** You're all set—just upgrade to v0.32.2.
1139
-
1140
- ### 🙏 Thank You
1141
-
1142
- Thank you for trying!
1143
-
1144
- ---
1145
-
1146
-
1147
- ## v0.32.1 (April 7, 2026)
1148
-
1149
- **Title:** Smoother submission controls and matching
1150
-
1151
- **Date:** April 7, 2026
1152
-
1153
- **Version:** v0.32.1
1154
-
1155
- Hi folks! Here’s what we shipped in v0.32.1.
1156
-
1157
- ### ✨ What's New
1158
-
1159
- - **No new features:** This patch focuses on improvements and fixes.
1160
-
1161
- ### 💪 Improvements
1162
-
1163
- - **Disable transaction submission throttling:** High-throughput workloads are easier to run because setting the transaction submission rate limit to `0` now fully disables throttling.
1164
- - **Refined transaction pattern matching:** Filtering rules are easier to reason about because transaction pattern matching now uses dedicated helpers for `consumes`, `produces`, `has_address`, and asset filters.
1165
-
1166
- ### 🔧 Fixes
1167
-
1168
- - **AWS SDK patch updates:** AWS S3 integrations are more rock-solid because AWS SDK for Go v2 S3 modules were bumped to newer patch versions.
1169
-
1170
- ### 📋 What You Need to Know
1171
-
1172
- - **No action required:** You're all set—just upgrade to v0.32.1.
1173
-
1174
- ### 🙏 Thank You
1175
-
1176
- Thank you for trying!
1177
-
1178
- ---
1179
-
1180
-
1181
- ## v0.32.0 (April 7, 2026)
1182
-
1183
- **Title:** Background pruning and scalable UTxO search
1184
-
1185
- **Date:** April 7, 2026
1186
-
1187
- **Version:** v0.32.0
1188
-
1189
- Hi folks! Here’s what we shipped in v0.32.0.
1190
-
1191
- ### ✨ What's New
1192
-
1193
- - **Periodic Bark block pruning:** Long-running nodes stay smooth because a nifty background task now periodically prunes no-longer-needed Bark blocks and starts and stops cleanly with node startup and shutdown.
1194
- - **Structured `SearchUtxos` pagination and asset filtering:** Finding and listing UTxOs is more consistent and scalable because `SearchUtxos` pagination and asset filtering now use a structured query model handled in the database layer.
1195
-
1196
- ### 💪 Improvements
1197
-
1198
- - **Slot-aware transaction validation:** Transaction validation is more rock-solid across slot-clock changes because the ledger and mempool now validate against the current-or-tip slot and track slot-clock fallbacks.
1199
- - **Clearer external interfaces docs:** Integration decisions are simpler because docs now describe client-facing **external interfaces**, clarify Bark’s role, and expand port and configuration tables with defaults and role descriptions.
1200
- - **Updated CI and Docker Go toolchains:** Maintenance is smoother because workflows now use actions/setup-go v6.4.0 and the Dockerfile build image moved from Go 1.25.8-1 to 1.26.1-1.
1201
- - **Dependency refresh:** Compatibility stays rock-solid because we updated fxamacker/cbor to v2.9.1, plutigo to v0.1.1, AWS SDK for Go v2 S3 modules, OpenTelemetry Go to v1.43.0, and google.golang.org/api to v0.274.0.
1202
-
1203
- ### 🔧 Fixes
1204
-
1205
- - **No user-facing fixes:** This release focuses on new features and improvements.
1206
-
1207
- ### 📋 What You Need to Know
1208
-
1209
- - **No action required:** You're all set—just upgrade to v0.32.0.
1210
-
1211
- ### 🙏 Thank You
1212
-
1213
- Thank you for trying!
1214
-
1215
- ---
1216
-
1217
-
1218
- ## v0.31.1 (April 4, 2026)
1219
-
1220
- **Title:** Clearer rollback recovery outcomes
1221
-
1222
- **Date:** April 4, 2026
1223
-
1224
- **Version:** v0.31.1
1225
-
1226
- Hi folks! Here’s what we shipped in v0.31.1.
1227
-
1228
- ### ✨ What's New
1229
-
1230
- - **Clearer rollback recovery status:** Recovery is simpler to understand because chain recovery now reports clearer outcomes after a local rollback.
1231
-
1232
- ### 💪 Improvements
1233
-
1234
- - **More consistent recovery staleness checks:** Recovery decisions are more rock-solid because staleness checks are now based on the primary chain tip.
1235
-
1236
- ### 🔧 Fixes
1237
-
1238
- - **Rollback-aware recovery test coverage:** Reliability is more rock-solid because recovery and chainsync tests now validate rollback-aware behavior.
1239
-
1240
- ### 📋 What You Need to Know
1241
-
1242
- - **No action required:** You're all set—just upgrade to v0.31.1.
1243
-
1244
- ### 🙏 Thank You
1245
-
1246
- Thank you for trying!
1247
-
1248
- ---
1249
-
1250
-
1251
- ## v0.31.0 (April 3, 2026)
1252
-
1253
- **Title:** Storage safeguards and smarter peer sync
1254
-
1255
- **Date:** April 3, 2026
1256
-
1257
- **Version:** v0.31.0
1258
-
1259
- Hi folks! Here’s what we shipped in v0.31.0.
1260
-
1261
- ### ✨ What's New
1262
-
1263
- - **Immutable storage settings:** Upgrades are more rock-solid because the node now persists storage mode and network metadata and refuses to open a database if they don’t match your current `--storage-mode` configuration.
1264
- - **Earlier ledger peer discovery:** Peer discovery starts sooner because reconciliation now invokes ledger-based discovery earlier with debug logs and configurable target and bound settings.
1265
- - **Shared transaction filtering (`TxPredicate`):** Transaction submit and watch are more consistent because filtering now uses a shared `TxPredicate` evaluation engine.
1266
-
1267
- ### 💪 Improvements
1268
-
1269
- - **Quieter near-tip chain sync logs:** Routine operation is less noisy because chain-sync progress logging now pauses once you’re at least 99.9% synced.
1270
- - **Smarter peer lag filtering:** Sync catch-up is smoother because peer selection now skips nodes that are far behind the best known tip using a `securityParam`-based filter.
1271
- - **Smoother Prometheus defaults and cache visibility:** Metrics setup is simpler because the node now uses the default Prometheus registry when none is provided and exports Badger cache gauges.
1272
- - **More accurate SQLite disk reporting:** Troubleshooting is easier because SQLite disk size reporting and error diagnostics are now more accurate.
1273
- - **Clearer CI workflow documentation:** Release automation is easier to follow because workflow behavior and related documentation were refined.
1274
-
1275
- ### 🔧 Fixes
1276
-
1277
- - **Safer fork extension handling:** Fork recovery is smoother because block fetching now restarts cleanly on forks and skips unnecessary rollbacks when a fork extends from your local tip.
1278
- - **Earlier validity-interval rejection:** Mempool processing is more efficient because transactions that can’t be valid yet are rejected up front.
1279
- - **Security dependency update:** Security stays solid because `github.com/go-jose/go-jose/v4` was updated to v4.1.4.
1280
-
1281
- ### 📋 What You Need to Know
1282
-
1283
- - **No action required for most users:** You're all set—just upgrade to v0.31.0.
1284
- - **Operators changing storage settings:** If you change storage mode or network for an existing database, the node will now fail fast to prevent opening it with incompatible settings.
1285
-
1286
- ### 🙏 Thank You
1287
-
1288
- Thank you for trying!
1289
-
1290
- ---
1291
-
1292
-
1293
- ## v0.30.0 (April 2, 2026)
1294
-
1295
- **Title:** Paginated pools API and steadier automation
1296
-
1297
- **Date:** April 2, 2026
1298
-
1299
- **Version:** v0.30.0
1300
-
1301
- Hi folks! Here’s what we shipped in v0.30.0.
1302
-
1303
- ### ✨ What's New
1304
-
1305
- - **Paginated extended stake pool details (HTTP API):** Pool queries are easier to work with because you can now request extended stake pool data in smaller pages via `/api/v0/pools/extended`.
1306
-
1307
- ### 💪 Improvements
1308
-
1309
- - **Dependency refresh:** Builds stay more rock-solid because we updated a key upstream dependency.
1310
- - **More predictable Antithesis runs:** Automation is easier to reason about because the Antithesis GitHub Actions workflow now runs with the expected default argument.
1311
-
1312
- ### 🔧 Fixes
1313
-
1314
- - **No surprise automation runs:** CI noise is lower because affected workflows no longer auto-trigger unexpectedly.
1315
-
1316
- ### 📋 What You Need to Know
1317
-
1318
- - **Pools API users:** If you use the pools API, consider switching to `/api/v0/pools/extended` to page through extended pool data.
1319
-
1320
- ### 🙏 Thank You
1321
-
1322
- Thank you for trying!
1323
-
1324
- ---
1325
-
1326
-
1327
- ## v0.29.1 (April 2, 2026)
1328
-
1329
- **Title:** Safer APIs and steadier sync
1330
-
1331
- **Date:** April 2, 2026
1332
-
1333
- **Version:** v0.29.1
1334
-
1335
- Hi folks! Here’s what we shipped in v0.29.1.
1336
-
1337
- ### ✨ What's New
1338
-
1339
- - **Rolled out expanded transaction builders and txpump testing:** End-to-end testing is easier because you can now build more transaction types and run a randomized txpump loop.
1340
- - **Handy devnet and testnet setup tooling:** Spinning up local and testnet environments is simpler because you now have additional helper scripts, specs, and Antithesis wiring.
1341
-
1342
- ### 💪 Improvements
1343
-
1344
- - **Safer API opt-in defaults:** Service exposure is clearer because APIs now only activate when you explicitly opt in.
1345
- - **Steadier rollback iteration:** Catch-up and restart behavior is more predictable because chain iteration is now safer under rollbacks.
1346
- - **Relaxed peer-tip validation during catch-up:** Sync is smoother because peer tip checks are less likely to reject useful peers while you’re catching up.
1347
- - **More reproducible CI and release automation:** Builds are easier to operate because CI and Antithesis automation were hardened.
1348
- - **Refreshed dependency set:** Compatibility stays rock-solid because a key dependency was updated.
1349
-
1350
- ### 🔧 Fixes
1351
-
1352
- - **Iterator cleanup in ledger iteration:** Long-running processes are steadier because ledger iteration now avoids potential resource leaks.
1353
-
1354
- ### 📋 What You Need to Know
1355
-
1356
- - **No action required:** You're all set—just upgrade to v0.29.1.
1357
- - **API users:** If you rely on Dingo APIs, make sure your configuration explicitly opts in so the endpoints are enabled.
1358
-
1359
- ### 🙏 Thank You
1360
-
1361
- Thank you for trying!
1362
-
1363
- ---
1364
-
1365
-
1366
- ## v0.29.0 (March 31, 2026)
1367
-
1368
- **Title:** Smoother operations and API refinements
1369
-
1370
- **Date:** March 31, 2026
1371
-
1372
- **Version:** v0.29.0
1373
-
1374
- Hi folks! Here’s what we shipped in v0.29.0.
1375
-
1376
- ### ✨ What's New
1377
-
1378
- - **Conway-era transaction builders and txpump:** End-to-end testing is easier because you can now generate and run newer-era transactions in automated runs.
1379
- - **Devnet and testnet helpers:** Spinning up test environments is simpler because you now have wallet-focused tests, a configurator script, local devnet helpers, a Dingo testnet spec, and Antithesis `docker-compose` wiring.
1380
- - **Storage disk-usage metrics:** Capacity planning is easier because the blob store and metadata store now export disk-usage (`DiskSize`) Prometheus gauge metrics.
1381
-
1382
- ### 💪 Improvements
1383
-
1384
- - **Faster post-snapshot replay:** Restarts are faster because chain-sync now uses a Mithril trust-boundary slot to skip replay work already covered by a snapshot.
1385
- - **Configurable CBOR cache sizing:** Performance tuning is simpler because you can now set the CBOR cache size in configuration.
1386
- - **More predictable Badger defaults:** Deployments are more consistent because storage-mode-specific defaults only apply when values are truly unset.
1387
- - **More accurate Blockfrost responses:** Block and epoch data is more reliable because latest block, epoch, and protocol-parameter responses are now sourced from ledger state and the database.
1388
-
1389
- ### 🔧 Fixes
1390
-
1391
- - **Safer rollbacks behind snapshots:** Rollback behavior is more rock-solid because the Mithril trust-boundary now resets when a rollback crosses it.
1392
- - **Rock-solid rollback recovery:** Recovery is smoother because “rollback point not found” now follows the same handling path as `local_tip_plateau`.
1393
- - **Rock-solid WatchTx rollbacks:** Transaction watching is more reliable because WatchTx now supports undo and rollback during chain reorganizations.
1394
-
1395
- ### 📋 What You Need to Know
1396
-
1397
- - **No action required:** You're all set—just upgrade to v0.29.0.
1398
- - **Replay and rollback near snapshots:** Testing runs may look different because chain-sync replay now respects the Mithril trust-boundary and resets it on rollback.
1399
-
1400
- ### 🙏 Thank You
1401
-
1402
- Thank you for trying!
1403
-
1404
- ---
1405
-
1406
-
1407
- ## v0.28.0 (March 30, 2026)
1408
-
1409
- **Title:** Network-aware metrics and steadier block production
1410
-
1411
- **Date:** March 30, 2026
1412
-
1413
- **Version:** v0.28.0
1414
-
1415
- Hi folks! Here's what we shipped in v0.28.0.
1416
-
1417
- ### ✨ What's New
1418
-
1419
- - **Network-labelled Prometheus metrics and build info:** Dashboard setup is easier because every Prometheus metric now carries a `network` label automatically, and a new `dingo_build_info` gauge exposes version, commit, and Go version at a glance.
1420
- - **Tip gap and epoch gauges:** Sync monitoring is simpler because three new gauges track tip gap (wall-clock slot minus chain tip), Shelley genesis start time, and epoch length.
1421
- - **Transaction metadata label index (Blockfrost):** Metadata queries are faster because a new transaction metadata label table powers indexed lookups with deterministic pagination and rollback-safe cleanup.
1422
-
1423
- ### 💪 Improvements
1424
-
1425
- - **Smarter chain selection near tip:** Tip following is steadier because chain selection now prefers the actually-delivered chainsync tip over the advertised remote tip and sticks with the incumbent peer when two peers report the same frontier.
1426
- - **Paginated DumpHistory (UTxO RPC):** Large history queries are more reliable because `DumpHistory` now uses a chain iterator with `next_token` pagination and sensible defaults when `max_items` is omitted.
1427
- - **Leaner TxSubmission pipeline:** CPU usage under load is lower because the unnecessary rate limiter on the pull-based TxSubmission protocol was removed, eliminating a tight retry loop that starved chainsync and blockfetch.
1428
- - **Leios protocols gated behind config:** Compatibility with non-Leios peers is more rock-solid because Leios mini-protocols are now only registered when `EnableLeios` is set, preventing muxer errors from peers that reject unknown protocols.
1429
-
1430
- ### 🔧 Fixes
1431
-
1432
- - **Post-Mithril leader election:** Block production after a Mithril bootstrap is more reliable because `EpochNonce()` now falls through to the database when the in-memory nonce is empty, and `CaptureGenesisSnapshot()` falls back to the latest epoch start slot when slot 0 yields no pools.
1433
- - **Forged-block rollback exemption:** Fork resolution after slot battles is correct because the rollback loop detector now exempts rollbacks through slots where the node forged a block.
1434
- - **Richer UTxO RPC responses:** Script evaluation and data queries are more complete because `evalTx` now includes redeemer payloads and `readData` now returns parsed datums.
1435
-
1436
- ### 📋 What You Need to Know
1437
-
1438
- - **Metrics dashboards:** If you run Prometheus dashboards, all metrics now include a `network` label — update your queries or selectors if you filter by metric name alone.
1439
- - **Leios users:** If you use Leios mode, make sure `EnableLeios` is set in your configuration; the protocols are no longer registered by default.
1440
- - **Default make target:** `make` no longer runs tests by default — use `make test` explicitly.
1441
-
1442
- ### 🙏 Thank You
1443
-
1444
- Thank you for trying!
1445
-
1446
- ---
1447
-
1448
-
1449
- ## v0.27.7 (March 24, 2026)
1450
-
1451
- **Title:** Steadier sync and leaner storage
1452
-
1453
- **Date:** March 24, 2026
1454
-
1455
- **Version:** v0.27.7
1456
-
1457
- Hi folks! Here’s what we shipped in v0.27.7.
1458
-
1459
- ### ✨ What's New
1460
-
1461
- - **Configurable network ID:** Connecting to the right Cardano network is more rock-solid because you can now set the network identifier in configuration.
1462
- - **Optional blob-store compression:** Disk usage can be lower because you can now enable compression for blob storage in some environments.
1463
- - **Devnet transaction pump:** Testing transaction flow is easier because development networks now include an additional transaction pump service.
1464
-
1465
- ### 💪 Improvements
1466
-
1467
- - **More stable chain following:** Sync is more rock-solid because chain following and recovery is now more stable during tip changes and temporary peer issues.
1468
- - **Safer rollbacks and replay:** Reorg handling is more predictable because rollback and ledger replay behavior is now safer.
1469
- - **Lighter rewind pruning:** Larger cleanups are smoother because rewind and pruning operations now put less pressure on storage backends.
1470
- - **Stickier best-peer selection:** Peer churn can be lower because peer selection now better preserves stable connections when multiple peers report equivalent tips.
1471
-
1472
- ### 🔧 Fixes
1473
-
1474
- - **More consistent blob deletion:** Cleanup is more reliable because blob deletion now better matches transaction behavior.
1475
- - **Graceful missing-blob recovery:** Processing is more resilient because missing blob data is now handled more gracefully in some cases.
1476
-
1477
- ### 📋 What You Need to Know
1478
-
1479
- - **Multi-network deployments:** If you run against different Cardano networks, review your config to ensure the correct network is selected.
1480
- - **Docker builds:** If you rely on custom Docker build caching, Docker builds may behave differently.
1481
- - **Tooling refreshes:** Routine updates to build tooling and libraries may land as part of keeping the project secure and compatible.
1482
-
1483
- ### 🙏 Thank You
1484
-
1485
- Thank you for trying!
1486
-
1487
- ---
1488
-
1489
-
1490
- ## v0.27.5 (March 19, 2026)
1491
-
1492
- **Title:** Faster UTxO lookups and steadier sync
1493
-
1494
- **Date:** March 19, 2026
1495
-
1496
- **Version:** v0.27.5
1497
-
1498
- Hi folks! Here’s what we shipped in v0.27.5.
1499
-
1500
- ### ✨ What's New
1501
-
1502
- - **Stable UTxO ordering and address queries:** Wallet and explorer-style queries are more predictable because you can now query UTxOs with a stable ordering and look them up efficiently by address.
1503
- - **Observability-only chain-sync clients:** Metrics are clearer because you can now run observability-only chain-sync clients that are counted in metrics without affecting normal client operation.
1504
- - **Automatic chain realignment on startup:** Recoveries after interruptions are easier because ledger startup can now realign chain state automatically without noisy side effects.
1505
-
1506
- ### 💪 Improvements
1507
-
1508
- - **More consistent rollback scheduling:** Recovery after chain reorganizations is more reliable because rollback handling now keeps scheduling state more consistent.
1509
- - **Sliding-window chain density:** Chain health signals are more representative because chain density calculations now use a sliding window of recent slots and blocks.
1510
- - **Safer raw block copy resume:** Resuming raw/direct block copying is safer because resume checks are now stricter and reduce accidental skipping or duplication.
1511
- - **Smoother peer governance convergence:** Early runtime is steadier because peer governance now converges faster after startup and follows configuration defaults more consistently.
1512
- - **Better default peer targets:** Peer configuration works out of the box more often because Dingo now falls back to Cardano P2P peer target values when Dingo peer targets aren’t set.
1513
- - **Richer UTxO RPC chain references:** Downstream indexing is easier because UTxO RPC responses now include a more complete reference to chain position.
1514
- - **Clearer stake snapshot errors (SQLite):** Operational debugging is easier because stake snapshot maintenance errors now include clearer context.
1515
- - **Dependency refresh:** Builds are more rock-solid because dependencies were refreshed to keep compatibility and security posture current.
1516
- - **Clearer tests and documentation:** Maintenance is easier because tests and documentation were clarified for long-term readability.
1517
-
1518
- ### 🔧 Fixes
1519
-
1520
- - **Resilient ledger block processing:** The node is less likely to go down on transient ledger errors because block processing now restarts on non-fatal errors instead of exiting.
1521
- - **Safer block fetch flushing:** Block downloads recover more cleanly after flush failures because block fetch now cleans up state when flushing pending blocks fails.
1522
-
1523
- ### 📋 What You Need to Know
1524
-
1525
- - **Client-count metrics may shift:** Capacity planning may look different because observability-only chain-sync clients are now tracked separately from eligible clients.
1526
-
1527
- ### 🙏 Thank You
1528
-
1529
- Thank you for trying!
1530
-
1531
- ---
1532
-
1533
-
1534
- ## v0.27.4 (March 18, 2026)
1535
-
1536
- **Title:** Reliability and usability refinements
1537
-
1538
- **Date:** March 18, 2026
1539
-
1540
- **Version:** v0.27.4
1541
-
1542
- Hi folks! Here’s what we shipped in v0.27.4.
1543
-
1544
- ### ✨ What's New
1545
-
1546
- - **Rock-solid chain-sync recovery:** Sync stays more rock-solid because chain-sync recovers more reliably from stalled or unstable network connections.
1547
- - **Solid chain selection:** Sync wastes less time on poor candidates because chain selection now takes peer suitability into account.
1548
-
1549
- ### 💪 Improvements
1550
-
1551
- - **Simpler config loading:** Configuration stays under your control because config loading no longer fills in a default Cardano configuration path.
1552
- - **Sleeker block downloads:** Block downloads are more consistent because header processing no longer gets blocked by duplicate headers.
1553
- - **More robust intersections:** Synchronization starts from the right place more often because intersection point selection is now more robust.
1554
-
1555
- ### 🔧 Fixes
1556
-
1557
- - **No missing boundary blocks:** Historical imports are more complete because older-era boundary blocks are no longer skipped during block loading.
1558
-
1559
- ### 📋 What You Need to Know
1560
-
1561
- - **Inbound peers excluded from chain choice:** Chain selection behavior may change in mixed inbound/outbound topologies because inbound peers no longer influence which chain is selected.
1562
-
1563
- ### 🙏 Thank You
1564
-
1565
- Thank you for trying!
1566
-
1567
- ---
1568
-
1569
- ## v0.27.3 (March 17, 2026)
1570
-
1571
- **Title:** Safer rollbacks and steadier leader election
1572
-
1573
- **Date:** March 17, 2026
1574
-
1575
- **Version:** v0.27.3
1576
-
1577
- Hi folks! Here’s what we shipped in v0.27.3.
1578
-
1579
- ### ✨ What's New
1580
-
1581
- - **Follow-tip reset and rollback:** Tip tracking is easier to manage because the follow-tip API now supports safe reset and rollback with clearer metadata about what changed.
1582
- - **Leader election readiness:** Block producer readiness is easier to track because leader election now surfaces epoch-nonce readiness and carries schedule state more reliably across restarts.
1583
-
1584
- ### 💪 Improvements
1585
-
1586
- - **More consistent cache sizing:** Sizing runs are easier to tune because cache defaults are more consistent and the BP/PI sizing script now supports explicit memory limits and optional cache overrides.
1587
- - **Predictable KES period semantics:** Operational certificate (KES) periods are more predictable because KES endpoints now standardize on absolute periods while translating internally from the certificate start period.
1588
- - **Preserved original block bytes:** Downstream tooling can retain exact block bytes because API block objects now include the original encoded bytes.
1589
- - **Standard network identifiers from genesis:** Network identification is simpler because genesis reads now return a standard CAIP-2 network identifier derived from network magic.
1590
- - **Smoother peer switching:** Sync stays more rock-solid because chain-sync now preserves its state while only swapping the active connection during a peer switch.
1591
- - **More consistent Mithril imports:** Mithril snapshot imports are more consistent across epochs because imports now normalize snapshot types and centralize persistence and epoch-summary handling.
1592
- - **Protocol dependency validation:** Modern-era transaction handling is more reliable because protocol dependencies were updated and regression tests now guard transaction size behavior.
1593
- - **Safer default containers:** Default containers are safer because the main Docker image now runs as a non-root `dingo` user.
1594
-
1595
- ### 🔧 Fixes
1596
-
1597
- - **Resilient background monitoring:** Long-running monitoring is more rock-solid because the stall checker now recovers from panics instead of crashing its background loop.
1598
- - **Robust block fetch batching:** Block fetch serving is more robust because batching now handles iterator errors and connection closes correctly.
1599
- - **Clearer unexpected event handling:** Event processing is easier to debug because chain-sync and block fetch now log unexpected event payload types instead of failing silently.
1600
- - **Reliable shutdown error reporting:** Shutdowns are easier to troubleshoot because node and metrics server shutdown now propagates errors instead of exiting abruptly.
1601
- - **Clear tx-submission failures:** Transaction submission fails more clearly because the tx-submission handlers now return an explicit error when no mempool consumer exists.
1602
-
1603
- ### 📋 What You Need to Know
1604
-
1605
- - **Docker volume permissions:** If you run Dingo in Docker with mounted volumes, make sure the data directory is writable by the `dingo` user inside the container.
1606
- - **API integrations:** If you integrate with follow-tip or KES APIs, give your client code a quick check for the updated reset/rollback and period semantics.
1607
-
1608
- ### 🙏 Thank You
1609
-
1610
- Thank you for trying!
1611
-
1612
- ---
1613
-
1614
- ## v0.27.2 (March 16, 2026)
1615
-
1616
- **Title:** Snapshot events and safer services
1617
-
1618
- **Date:** March 16, 2026
1619
-
1620
- **Version:** v0.27.2
1621
-
1622
- Hi folks! Here’s what we shipped in v0.27.2.
1623
-
1624
- ### ✨ What's New
1625
-
1626
- - **Snapshot event publishing and clean shutdown:** Relay operation is more reliable because the relay now publishes events from snapshots and shuts down cleanly without dropping in-flight work.
1627
-
1628
- ### 💪 Improvements
1629
-
1630
- - **HTTP timeouts for public APIs:** Network-facing services are more resilient under slow or stalled connections thanks to new write/read/idle timeouts on the Bark, Blockfrost, and UTxO RPC HTTP servers.
1631
- - **Streamlined peer and connection management:** Peer and connection management is faster and uses fewer resources on constrained machines thanks to quicker inbound host lookups, tighter Badger cache defaults, and expanded benchmarks and sizing guidance.
1632
- - **More consistent key-period handling:** Block production key period handling is more consistent across configurations thanks to improved key-period calculations with added validation and tests.
1633
- - **Race detection in CI:** Test runs catch concurrency bugs earlier because the Linux test job now runs with the Go race detector enabled.
1634
-
1635
- ### 🔧 Fixes
1636
-
1637
- - **Safer concurrent chain reads:** Reads are more consistent under load because primary chain and protocol-parameter access are now protected with read locks.
1638
- - **Validated epoch nonce reuse:** Nonce reuse is safer because cached epoch nonce entries are now validated against the nonce provided for the current run before reuse.
1639
- - **Graceful invalid hash handling:** Malformed block metadata no longer crashes encoding because previous-hash length issues now return errors instead of panicking.
1640
- - **SQLite VACUUM actually runs:** Database maintenance now completes as intended because SQLite VACUUM is now executed rather than only prepared.
1641
-
1642
- ### 📋 What You Need to Know
1643
-
1644
- - **Build provenance updates:** Supply-chain attestations are easier to verify because build provenance now uses `actions/attest` and updated Docker Hub image subjects.
1645
-
1646
- ### 🙏 Thank You
1647
-
1648
- Thank you for trying!
1649
-
1650
- ---
1651
-
1652
- ## v0.27.1 (March 16, 2026)
1653
-
1654
- **Title:** Smoother reconnects and safer chain-sync
1655
-
1656
- **Date:** March 16, 2026
1657
-
1658
- **Version:** v0.27.1
1659
-
1660
- Hi folks! Here’s what we shipped in v0.27.1.
1661
-
1662
- ### ✨ What's New
1663
-
1664
- - **Better chain-sync intersection:** Resuming sync is easier and faster because chain-sync uses a denser, wider set of intersect points to improve `ChainSync` intersection behavior.
1665
-
1666
- ### 💪 Improvements
1667
-
1668
- - **Inbound connection reuse and `TxSubmission`:** Networking is more rock-solid on reconnect because peer reuse and governance now normalize exact peer addresses, require client-capable connections for reuse, and start `TxSubmission` on duplex inbound connections.
1669
- - **Stake snapshot and epoch summary upserts:** Data storage is more consistent across supported databases because write paths now upsert across DB backends and report errors more clearly.
1670
- - **More robust delegation parsing:** Delegation reads are more reliable because parsing now handles multiple account encodings with expanded tests.
1671
-
1672
- ### 🔧 Fixes
1673
-
1674
- - **Dependency refresh:** Upgrades are less error-prone because Go modules were refreshed (including AWS SDK v2/S3, `golang.org/x/*`, `plutigo` v0.0.27, `go-ethereum` v1.17.1, and `google.golang.org/api` v0.271.0).
1675
-
1676
- ### 📋 What You Need to Know
1677
-
1678
- - **Go module sync (some builds):** You’re all set for most setups, but if you vendor dependencies or run reproducible builds you may need to re-sync Go modules (update `go.mod`/`go.sum`) to pick up refreshed versions.
1679
-
1680
- ### 🙏 Thank You
1681
-
1682
- Thank you for trying!
1683
-
1684
- ---
1685
-
1686
- ## v0.27.0 (March 15, 2026)
1687
-
1688
- **Title:** S3-backed CI tests and embedded network configs
1689
-
1690
- **Date:** March 15, 2026
1691
-
1692
- **Version:** v0.27.0
1693
-
1694
- Hi folks! Here’s what we shipped in v0.27.0.
1695
-
1696
- ### ✨ What's New
1697
-
1698
- - **S3-backed CI storage tests:** Storage testing is more rock-solid because CI now spins up a MinIO S3-compatible service and runs coverage across all supported storage backends, including S3.
1699
- - **Embedded network config bundles:** Getting started is easier because preview, preprod, mainnet, and devnet network configs are now embedded and loaded via `EmbeddedConfigFS`.
1700
-
1701
- ### 💪 Improvements
1702
-
1703
- - **Snapshot epoch transitions:** Snapshot handling is more reliable because the snapshot manager now processes every epoch transition event during rapid chain progress.
1704
- - **Tip ingestion fast paths:** Sync near the chain tip is sleeker because blockfetch and block insertion reuse queued header data and caller-supplied points to cut redundant work.
1705
-
1706
- ### 🔧 Fixes
1707
-
1708
- - **No fixes:** No user-facing fixes shipped in this release.
1709
-
1710
- ### 📋 What You Need to Know
1711
-
1712
- - **Compact block metadata format (Badger):** Disk usage can be smaller because you can opt into an optional Badger setting that stores block metadata in a compact binary format.
1713
-
1714
- ### 🙏 Thank You
1715
-
1716
- Thank you for trying!
1717
-
1718
- ---
1719
-
1720
- ## v0.26.0 (March 14, 2026)
1721
-
1722
- **Title:** Trusted Mithril downloads and tuned peers
1723
-
1724
- **Date:** March 14, 2026
1725
-
1726
- **Version:** v0.26.0
1727
-
1728
- Hi folks! Here’s what we shipped in v0.26.0.
1729
-
1730
- ### ✨ What's New
1731
-
1732
- - **End-to-end Mithril verification:** Mithril downloads are more rock-solid because Dingo now verifies the full certificate chain and signatures using genesis keys from your Cardano configuration.
1733
-
1734
- ### 💪 Improvements
1735
-
1736
- - **Peer governor tuning:** Peer connectivity is easier to tune because you can now adjust peer-governor settings, including hot-peer promotion behavior and its defaults.
1737
-
1738
- ### 🔧 Fixes
1739
-
1740
- - **No fixes:** No user-facing fixes shipped in this release.
1741
-
1742
- ### 🙏 Thank You
1743
-
1744
- Thank you for trying!
1745
-
1746
- ---
1747
-
1748
- ## v0.25.1 (March 13, 2026)
1749
-
1750
- **Title:** Configurable storage and smoother sync
1751
-
1752
- **Date:** March 13, 2026
1753
-
1754
- **Version:** v0.25.1
1755
-
1756
- Hi folks! Here’s what we shipped in v0.25.1.
1757
-
1758
- ### ✨ What's New
1759
-
1760
- - **Configurable data directory:** Running in different environments is easier because you can now choose where the node stores its data on disk with `--data-dir`.
1761
- - **Built-in Mithril bootstrap:** Containerized bootstrapping is simpler because Dingo can now spin up Mithril sync without an external client.
1762
- - **Expanded architecture docs:** Understanding the system is easier because `ARCHITECTURE.md` now includes clearer diagrams and explanations.
1763
-
1764
- ### 💪 Improvements
1765
-
1766
- - **Idle connection stability:** Long-running connections are more rock-solid because idle sessions are less likely to be dropped unexpectedly.
1767
- - **Resilient sync across reconnections:** Sync is more rock-solid because chainsync and blockfetch handle connection switches more reliably.
1768
- - **Blockfetch overhead:** Observability is sleeker because blockfetch avoids extra work when no one is listening for events.
1769
- - **Dependencies:** Builds are more solid because dependencies were refreshed for consistency.
1770
-
1771
- ### 📋 What You Need to Know
1772
-
1773
- - **Upgrade:** You’re all set—no required configuration changes for this release.
1774
- - **Custom storage path:** If you want to store node data somewhere else, pass `--data-dir <path>` at startup.
1775
-
1776
- ### 🙏 Thank You
1777
-
1778
- Thank you for trying!
1779
-
1780
- ---
1781
-
1782
- ## v0.25.0 (March 12, 2026)
1783
-
1784
- **Title:** Trusted replay verification and peer counts
1785
-
1786
- **Date:** March 12, 2026
1787
-
1788
- **Version:** v0.25.0
1789
-
1790
- Hi folks! Here’s what we shipped in v0.25.0.
1791
-
1792
- ### ✨ What's New
1793
-
1794
- - **Trusted chain verification:** Startup and recovery runs are more rock-solid because your node can now verify the chain from a trusted, immutable replay path.
1795
-
1796
- ### 💪 Improvements
1797
-
1798
- - **Peer metrics accuracy:** Peer limits and metrics are more accurate because local client connections are now tracked separately.
1799
-
1800
- ### 🔧 Fixes
1801
-
1802
- - **Mithril key defaults (Docker):** Docker deployments are less error-prone because the correct Mithril genesis verification key is now picked up automatically when you don’t provide one.
1803
-
1804
- ### 📋 What You Need to Know
1805
-
1806
- - **Peer counts:** If you rely on peer-count metrics or peer-limit tuning, expect local client connections to no longer be included in those counts.
1807
-
1808
- ### 🙏 Thank You
1809
-
1810
- Thank you for trying!
1811
-
1812
- ---
1813
-
1814
- ## v0.24.1 (March 12, 2026)
1815
-
1816
- **Title:** Stability and polish
1817
-
1818
- **Date:** March 12, 2026
1819
-
1820
- **Version:** v0.24.1
1821
-
1822
- Hi folks! Here’s what we shipped in v0.24.1.
1823
-
1824
- ### 💪 Improvements
1825
-
1826
- - **Deeper rollback scanning:** Sync is more rock-solid because deep rollbacks are only enabled when needed, and block fetch can scan a wider window to find the data it needs.
1827
-
1828
- ### 🔧 Fixes
1829
-
1830
- - **Shutdown reliability:** Shutdowns are more rock-solid because node and ledger shutdown paths are less likely to hang, and logs now show how long shutdown took.
1831
- - **Epoch cache consistency checks:** Diagnosing cache issues is easier because epoch cache validation is stricter and catches inconsistencies earlier.
1832
-
1833
- ### 🙏 Thank You
1834
-
1835
- Thank you for trying!
1836
-
1837
- ---
1838
-
1839
- ## v0.24.0 (March 11, 2026)
1840
-
1841
- **Title:** Peer sharing controls and import visibility
1842
-
1843
- **Date:** March 11, 2026
1844
-
1845
- **Version:** v0.24.0
1846
-
1847
- Hi folks! Here’s what we shipped in v0.24.0.
1848
-
1849
- ### ✨ What's New
1850
-
1851
- - **Peer sharing controls:** Networking is easier to lock down because you can now explicitly enable or disable peer sharing.
1852
- - **CLI help text:** Running the tool is easier because the root command now includes clearer Short and Long help text.
1853
- - **Import progress reporting:** Large data setup runs feel less like a black box because Mithril and ledger/UTxO imports now emit rate-limited progress updates.
1854
- - **Benchmark suite:** Performance testing is more consistent because the benchmark tooling now includes a baseline and detailed ingestion benchmarks.
1855
-
1856
- ### 💪 Improvements
1857
-
1858
- - **Docs:** Evaluating Dingo is safer because the README now includes expanded usage, deployment, and DevNet guidance plus a clear “not for production” warning.
1859
- - **Dev mode:** Local runs are less surprising because dev mode now forces storage mode to API and logs when it overrides your configured value.
1860
- - **Connection manager:** Peer connectivity is more rock-solid because inbound connections are treated as the bidirectional link and expected transition timeouts are handled without tearing down peers.
1861
- - **Storage tuning and logging:** Troubleshooting storage is easier because cache defaults were reset and configured cache sizes are now logged on open, with additional Badger and SQLite tuning.
1862
- - **Era-aware validation:** Cross-era validation is more accurate because protocol parameter extraction is now era-aware and governance-state decoding uses raw-element parsing.
1863
- - **Overlay-aware acceptance:** Transaction validity is more consistent because ledger and mempool validation now uses a temporary UTxO overlay with descendant pruning.
1864
- - **CI and publishing:** Releases are more repeatable because CI and publishing workflows were refreshed with Node.js 24.x and newer pinned Docker and GitHub Actions.
1865
- - **Dependencies:** Compatibility is better because key dependencies were updated, including OpenTelemetry Go and gouroboros.
1866
- - **Go toolchain:** Builds are more up to date because the minimum Go version is now 1.25 and CI was updated to match.
1867
-
1868
- ### 🔧 Fixes
1869
-
1870
- - **Connection cleanup tests:** Network tests are less flaky because keepalive timeouts are deterministic and connection cleanup is safer.
1871
- - **Block caching and reconciliation:** Sync is more reliable because block caching now uses fixed-size typed hash keys and reconciliation compares hashes consistently.
1872
-
1873
- ### 📋 What You Need to Know
1874
-
1875
- - **Go version:** If you build from source, you’ll need Go 1.25 or newer.
1876
- - **Dev mode:** If you run dev mode, Dingo will force storage mode to the API option.
1877
-
1878
- ### 🙏 Thank You
1879
-
1880
- Thank you for trying!
1881
-
1882
- ---
1883
-
1884
- ## v0.23.1 (March 11, 2026)
1885
-
1886
- **Title:** Rock-solid Docker publishing
1887
-
1888
- **Date:** March 11, 2026
1889
-
1890
- **Version:** v0.23.1
1891
-
1892
- Hi folks! Here’s what we shipped in v0.23.1.
1893
-
1894
- ### 💪 Improvements
1895
-
1896
- - **Docker publishing (Antithesis image):** Publishing is more consistent because the build pipeline now builds, tags, pushes, and generates an attestation for a Linux amd64-only Antithesis Docker image variant.
1897
-
1898
- ### 🔧 Fixes
1899
-
1900
- - **No fixes:** No user-facing fixes shipped in this patch.
1901
-
1902
- ### 📋 What You Need to Know
1903
-
1904
- - **Upgrade:** You’re all set—no required configuration changes for this release.
1905
-
1906
- ### 🙏 Thank You
1907
-
1908
- Thank you for trying!
1909
-
1910
- ---
1911
-
1912
- ## v0.23.0 (March 10, 2026)
1913
-
1914
- **Title:** Overlay-aware validation and a smoother dev mode
1915
-
1916
- **Date:** March 10, 2026
1917
-
1918
- **Version:** v0.23.0
1919
-
1920
- Hi folks! Here’s what we shipped in v0.23.0.
1921
-
1922
- ### ✨ What's New
1923
-
1924
- - **Transaction validation:** Transaction validation is more accurate because ledger and mempool checks now account for pending, in-flight changes with a temporary UTxO overlay.
1925
-
1926
- ### 💪 Improvements
1927
-
1928
- - **Docs:** Setup is easier because `README.md` now includes expanded usage, deployment, and DevNet guidance plus a clear “not for production” warning.
1929
- - **Publish workflow:** Publishing is more rock-solid because the release workflow now targets Node.js `24.x` and pins key GitHub Actions versions.
1930
-
1931
- ### 🔧 Fixes
1932
-
1933
- - **Connection cleanup:** Connection-related tests are less flaky because keepalive timeouts are deterministic and connection cleanup is safer.
1934
-
1935
- ### 📋 What You Need to Know
1936
-
1937
- - **Dev mode:** If you run dev mode, Dingo will automatically switch the storage mode to API, so check logs if you expected a different mode.
1938
-
1939
- ### 🙏 Thank You
1940
-
1941
- Thank you for trying!
1942
-
1943
- ---
1944
-
1945
- ## v0.22.1 (March 8, 2026)
1946
-
1947
- **Title:** Stability updates and polish
1948
-
1949
- **Date:** March 8, 2026
1950
-
1951
- **Version:** v0.22.1
1952
-
1953
- Hi folks! Here’s what we shipped in v0.22.1.
1954
-
1955
- ### 💪 Improvements
1956
-
1957
- - **Transaction validation:** Transaction validation is more consistent because Conway UTxO validation now runs even when a transaction is marked invalid, while script evaluation is still skipped.
1958
- - **Epoch processing:** Epoch processing recovers more gracefully because nonce recomputation falls back to recomputing from epoch start when an anchor block nonce is missing.
1959
- - **Queue handling:** Queue handling is more solid under load because the main event queue size increased from 1,000 to 10,000 and the header queue size is now clamped to at least the default.
1960
- - **Implausible-tip checks:** Implausible-tip checks are safer across edge cases because the logic now uses peer-based reference blocks with overflow-safe arithmetic.
1961
- - **Publish workflow login:** Publishing is more rock-solid because the publish workflow was tweaked to log in using `docker/login-action@v4`.
1962
- - **Publish workflow runtime:** Automation stays more up to date because Node.js `24.x` was rolled out for the publish workflow.
1963
-
1964
- ### 🔧 Fixes
1965
-
1966
- - **Epoch cache rollbacks:** Epoch cache handling is safer during concurrent rollbacks because `advanceEpochCache` now guards against empty caches and validates the tail before appending a new epoch.
1967
- - **Test timing:** Tests are less flaky on slower machines because `TestSchedulerRunFailFunc` timing parameters were relaxed.
1968
-
1969
- ### 📋 What You Need to Know
1970
-
1971
- - **API bind address:** Config validation no longer defaults the API bind address to `0.0.0.0`, so set it explicitly if you need it.
1972
- - **CI and publishing scripts:** If you maintain custom publishing or CI scripts, give them a quick check for compatibility with Node.js `24.x` and `docker/login-action@v4`.
1973
-
1974
- ### 🙏 Thank You
1975
-
1976
- Thank you for trying!
1977
-
1978
- ---
1979
-
1980
- ## v0.22.0 (March 7, 2026)
1981
-
1982
- **Title:** Mithril bootstrap, built-in APIs, and block production
1983
-
1984
- **Date:** March 7, 2026
1985
-
1986
- **Version:** v0.22.0
1987
-
1988
- Hi folks! Here’s what we shipped in v0.22.0.
1989
-
1990
- ### ✨ What's New
1991
-
1992
- - **Mithril bootstrap:** Node operators can now bootstrap a Dingo node from a Mithril snapshot and have the ledger state imported automatically (see “Fast Bootstrapping with Mithril” in `README.md`).
1993
- - **Built-in HTTP APIs:** You can run Dingo with built-in, configurable HTTP APIs for common ecosystem compatibility.
1994
- - **Block production:** Block production is now supported with Praos leader election and keystore-backed key management.
1995
- - **Lifecycle events:** The node now emits richer on-chain lifecycle events that applications can subscribe to.
1996
- - **Conway governance metadata:** Governance and Conway-era features are now available in the on-chain metadata pipeline.
1997
- - **Leios mode:** A new “leios” mode is available for early experimentation with Leios protocols.
1998
- - **Stake snapshots:** Stake snapshots and stake distribution are now available with persistence and querying.
1999
-
2000
- ### 💪 Improvements
2001
-
2002
- - **Faster catch-up validation:** Syncing is now faster and safer by reducing unnecessary validation during initial catch-up.
2003
- - **Tiered storage and caching:** Block and transaction storage can now be tuned for performance and cost with tiered storage and caching options.
2004
- - **Rollback and resync:** Rollback and resync behavior is more robust under forks and stalled peers.
2005
- - **Peer management:** Network and peer management now scales more predictably under load.
2006
- - **Mempool resilience:** Transaction processing is more resilient and configurable under pressure.
2007
- - **Observability:** Observability has been expanded across sync, forging, and storage.
2008
- - **Time and nonce handling:** Epoch, slot, and nonce handling better matches Cardano semantics and edge cases.
2009
- - **Docs:** Developer and operator documentation has been significantly expanded.
2010
-
2011
- ### 🔧 Fixes
2012
-
2013
- - **Chainsync stability:** Chainsync is more reliable around header/block fetching and coordination.
2014
- - **Concurrency safety:** Several concurrency and event-delivery deadlocks and goroutine leak risks have been eliminated.
2015
- - **Security hardening:** Security hardening has been added for configuration, filesystem usage, and key material.
2016
- - **Protocol validation:** Cryptographic and protocol-validation correctness has been tightened across eras.
2017
- - **Object-store key encoding:** Storage key encoding issues in object stores have been resolved.
2018
-
2019
- ### 📋 What You Need to Know
2020
-
2021
- - **Event consumers:** If you rely on event type strings, update consumers to match the renamed event type strings.
2022
- - **API storage backfill:** If you enable API storage or new tiered storage modes, run a metadata backfill so queries return complete results.
2023
- - **Forging setup:** If you enable forging, double-check VRF/KES/OpCert key paths and permissions first.
2024
-
2025
- ### 🙏 Thank You
2026
-
2027
- Thank you for trying!
2028
-
2029
- ---