@blinklabs/dingo 0.29.0 → 0.30.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/README.md CHANGED
@@ -22,7 +22,7 @@ A high-performance Cardano blockchain node implementation in Go by Blink Labs. D
22
22
  - Peer governance with dynamic peer selection, ledger peers, and topology support
23
23
  - Chain rollback support for handling forks with automatic state restoration
24
24
  - Fast bootstrapping via built-in Mithril client
25
- - Multiple API servers: UTxO RPC, Blockfrost-compatible REST, Mesh (Coinbase Rosetta)
25
+ - Multiple API servers: UTxO RPC, WIP Blockfrost-compatible REST, Mesh (Coinbase Rosetta)
26
26
 
27
27
  Note: On Windows systems, named pipes are used instead of Unix sockets for node-to-client communication.
28
28
 
@@ -163,14 +163,13 @@ storageMode: "api"
163
163
 
164
164
  ## API Servers
165
165
 
166
- Dingo includes four API servers, all disabled by default. Enable them by setting a non-zero port. All API servers except Bark require `storageMode: "api"`.
166
+ Dingo includes three API servers. All APIs require `storageMode: "api"` and start automatically on their default ports in that mode. Set an individual port to 0 to disable a specific API. The Blockfrost server provides a WIP Blockfrost-compatible REST API with a growing subset of the compatibility surface.
167
167
 
168
168
  | API | Port Env Var | Default | Protocol |
169
169
  |-----|-------------|---------|----------|
170
170
  | UTxO RPC | `DINGO_UTXORPC_PORT` | disabled | gRPC |
171
171
  | Blockfrost | `DINGO_BLOCKFROST_PORT` | disabled | REST |
172
172
  | Mesh (Rosetta) | `DINGO_MESH_PORT` | disabled | REST |
173
- | Bark | `DINGO_BARK_PORT` | disabled | RPC |
174
173
 
175
174
  ```bash
176
175
  # Enable Blockfrost API on port 3100 and UTxO RPC on port 9090
@@ -441,9 +440,8 @@ For information on developing custom storage plugins, see [PLUGIN_DEVELOPMENT.md
441
440
  - [x] Genesis snapshot capture
442
441
  - [x] API Servers
443
442
  - [x] UTxO RPC (gRPC)
444
- - [x] Blockfrost-compatible REST API
443
+ - [ ] WIP Blockfrost-compatible REST API
445
444
  - [x] Mesh (Coinbase Rosetta) API
446
- - [x] Bark block archive API
447
445
  - [x] Mithril Bootstrap
448
446
  - [x] Built-in Mithril client
449
447
  - [x] Ledger state import (UTxOs, accounts, pools, DReps, epochs)
package/RELEASE_NOTES.md CHANGED
@@ -1,6 +1,129 @@
1
1
  # Release Notes
2
2
 
3
3
 
4
+ ## v0.29.1 (April 2, 2026)
5
+
6
+ **Title:** Safer APIs and steadier sync
7
+
8
+ **Date:** April 2, 2026
9
+
10
+ **Version:** v0.29.1
11
+
12
+ Hi folks! Here’s what we shipped in v0.29.1.
13
+
14
+ ### ✨ What's New
15
+
16
+ - **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.
17
+ - **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.
18
+
19
+ ### 💪 Improvements
20
+
21
+ - **Safer API opt-in defaults:** Service exposure is clearer because APIs now only activate when you explicitly opt in.
22
+ - **Steadier rollback iteration:** Catch-up and restart behavior is more predictable because chain iteration is now safer under rollbacks.
23
+ - **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.
24
+ - **More reproducible CI and release automation:** Builds are easier to operate because CI and Antithesis automation were hardened.
25
+ - **Clearer release documentation:** What changed is easier to see because release documentation was updated.
26
+ - **Refreshed dependency set:** Compatibility stays rock-solid because a key dependency was updated.
27
+
28
+ ### 🔧 Fixes
29
+
30
+ - **Iterator cleanup in ledger iteration:** Long-running processes are steadier because ledger iteration now avoids potential resource leaks.
31
+
32
+ ### 📋 What You Need to Know
33
+
34
+ - **No action required:** You're all set—just upgrade to v0.29.1.
35
+ - **API users:** If you rely on Dingo APIs, make sure your configuration explicitly opts in so the endpoints are enabled.
36
+
37
+ ### 🙏 Thank You
38
+
39
+ Thank you for trying!
40
+
41
+ ---
42
+
43
+
44
+ ## v0.29.0 (March 31, 2026)
45
+
46
+ **Title:** Smoother operations and API refinements
47
+
48
+ **Date:** March 31, 2026
49
+
50
+ **Version:** v0.29.0
51
+
52
+ Hi folks! Here’s what we shipped in v0.29.0.
53
+
54
+ ### ✨ What's New
55
+
56
+ - **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.
57
+ - **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.
58
+ - **Storage disk-usage metrics:** Capacity planning is easier because the blob store and metadata store now export disk-usage (`DiskSize`) Prometheus gauge metrics.
59
+
60
+ ### 💪 Improvements
61
+
62
+ - **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.
63
+ - **Configurable CBOR cache sizing:** Performance tuning is simpler because you can now set the CBOR cache size in configuration.
64
+ - **More predictable Badger defaults:** Deployments are more consistent because storage-mode-specific defaults only apply when values are truly unset.
65
+ - **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.
66
+
67
+ ### 🔧 Fixes
68
+
69
+ - **Safer rollbacks behind snapshots:** Rollback behavior is more rock-solid because the Mithril trust-boundary now resets when a rollback crosses it.
70
+ - **Rock-solid rollback recovery:** Recovery is smoother because “rollback point not found” now follows the same handling path as `local_tip_plateau`.
71
+ - **Rock-solid WatchTx rollbacks:** Transaction watching is more reliable because WatchTx now supports undo and rollback during chain reorganizations.
72
+
73
+ ### 📋 What You Need to Know
74
+
75
+ - **No action required:** You're all set—just upgrade to v0.29.0.
76
+ - **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.
77
+
78
+ ### 🙏 Thank You
79
+
80
+ Thank you for trying!
81
+
82
+ ---
83
+
84
+
85
+ ## v0.28.0 (March 30, 2026)
86
+
87
+ **Title:** Network-aware metrics and steadier block production
88
+
89
+ **Date:** March 30, 2026
90
+
91
+ **Version:** v0.28.0
92
+
93
+ Hi folks! Here's what we shipped in v0.28.0.
94
+
95
+ ### ✨ What's New
96
+
97
+ - **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.
98
+ - **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.
99
+ - **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.
100
+
101
+ ### 💪 Improvements
102
+
103
+ - **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.
104
+ - **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.
105
+ - **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.
106
+ - **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.
107
+
108
+ ### 🔧 Fixes
109
+
110
+ - **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.
111
+ - **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.
112
+ - **Richer UTxO RPC responses:** Script evaluation and data queries are more complete because `evalTx` now includes redeemer payloads and `readData` now returns parsed datums.
113
+
114
+ ### 📋 What You Need to Know
115
+
116
+ - **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.
117
+ - **Leios users:** If you use Leios mode, make sure `EnableLeios` is set in your configuration; the protocols are no longer registered by default.
118
+ - **Default make target:** `make` no longer runs tests by default — use `make test` explicitly.
119
+
120
+ ### 🙏 Thank You
121
+
122
+ Thank you for trying!
123
+
124
+ ---
125
+
126
+
4
127
  ## v0.27.7 (March 24, 2026)
5
128
 
6
129
  **Title:** Steadier sync and leaner storage
@@ -139,26 +139,26 @@ relayPort: 3001
139
139
 
140
140
  # Storage mode controls how much data is persisted.
141
141
  # - "core": Only consensus data (UTxOs, certs, pools, pparams). Suitable for
142
- # block producers and relay nodes with no APIs enabled.
142
+ # block producers and relay nodes. API ports are ignored in core mode.
143
143
  # - "api": Core data plus full transaction metadata (witnesses, scripts, datums,
144
- # redeemers). Required when any API is enabled.
145
- # APIs will refuse to start if storage mode is not "api".
144
+ # redeemers). All APIs start automatically on their default ports.
146
145
  #
147
146
  # Can be overridden with DINGO_STORAGE_MODE
148
147
  storageMode: "core"
149
148
 
150
- # API ports (0 = disabled, default)
151
- # All APIs require storageMode: "api"
149
+ # API ports — only used when storageMode is "api".
150
+ # In API mode, all APIs start on their default ports. Set a port to 0 to
151
+ # disable an individual API.
152
152
  #
153
- # UTxO RPC gRPC API port
153
+ # UTxO RPC gRPC API port (default: 9090)
154
154
  # Can be overridden with DINGO_UTXORPC_PORT
155
- utxorpcPort: 0
156
- # Blockfrost-compatible REST API port
155
+ utxorpcPort: 9090
156
+ # Blockfrost-compatible REST API port (default: 3000)
157
157
  # Can be overridden with DINGO_BLOCKFROST_PORT
158
- blockfrostPort: 0
159
- # Mesh (Coinbase Rosetta) REST API port
158
+ blockfrostPort: 3000
159
+ # Mesh (Coinbase Rosetta) REST API port (default: 8080)
160
160
  # Can be overridden with DINGO_MESH_PORT
161
- meshPort: 0
161
+ meshPort: 8080
162
162
 
163
163
  # base url of bark archive server
164
164
  barkBaseUrl: ""
@@ -173,20 +173,21 @@ barkPort: 0
173
173
  # ---
174
174
  # Deployment pattern examples (uncomment one block):
175
175
  #
176
- # Relay node (core storage, no APIs):
176
+ # Relay node (core storage, API ports ignored):
177
177
  # storageMode: "core"
178
178
  # blockProducer: false
179
179
  #
180
- # Data node (API storage, one or more API ports enabled):
180
+ # Data node (all APIs start on defaults automatically):
181
181
  # storageMode: "api"
182
- # utxorpcPort: 9090
183
- # blockfrostPort: 3100
182
+ # # Override individual ports or set to 0 to disable:
183
+ # # blockfrostPort: 3100
184
+ # # meshPort: 0 # disable Mesh API
184
185
  # # With storageMode: "api", leave mode-sensitive Badger settings unset to keep:
185
186
  # # block-cache-size: 268435456
186
187
  # # index-cache-size: 0
187
188
  # # compression: true
188
189
  #
189
- # Validator / block producer (core storage, no APIs):
190
+ # Validator / block producer (core storage, API ports ignored):
190
191
  # storageMode: "core"
191
192
  # blockProducer: true
192
193
  # shelleyVrfKey: "/keys/vrf.skey"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blinklabs/dingo",
3
- "version": "0.29.0",
3
+ "version": "0.30.0",
4
4
  "description": "Dingo is a Cardano blockchain data node",
5
5
  "main": "index.js",
6
6
  "bin": {