@blinklabs/dingo 0.29.0 → 0.29.1
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 +3 -5
- package/RELEASE_NOTES.md +83 -0
- package/dingo.yaml.example +17 -16
- package/package.json +1 -1
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
|
|
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
|
-
- [
|
|
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,89 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v0.29.0 (March 31, 2026)
|
|
5
|
+
|
|
6
|
+
**Title:** Smoother operations and API refinements
|
|
7
|
+
|
|
8
|
+
**Date:** March 31, 2026
|
|
9
|
+
|
|
10
|
+
**Version:** v0.29.0
|
|
11
|
+
|
|
12
|
+
Hi folks! Here’s what we shipped in v0.29.0.
|
|
13
|
+
|
|
14
|
+
### ✨ What's New
|
|
15
|
+
|
|
16
|
+
- **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.
|
|
17
|
+
- **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.
|
|
18
|
+
- **Storage disk-usage metrics:** Capacity planning is easier because the blob store and metadata store now export disk-usage (`DiskSize`) Prometheus gauge metrics.
|
|
19
|
+
|
|
20
|
+
### 💪 Improvements
|
|
21
|
+
|
|
22
|
+
- **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.
|
|
23
|
+
- **Configurable CBOR cache sizing:** Performance tuning is simpler because you can now set the CBOR cache size in configuration.
|
|
24
|
+
- **More predictable Badger defaults:** Deployments are more consistent because storage-mode-specific defaults only apply when values are truly unset.
|
|
25
|
+
- **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.
|
|
26
|
+
|
|
27
|
+
### 🔧 Fixes
|
|
28
|
+
|
|
29
|
+
- **Safer rollbacks behind snapshots:** Rollback behavior is more rock-solid because the Mithril trust-boundary now resets when a rollback crosses it.
|
|
30
|
+
- **Rock-solid rollback recovery:** Recovery is smoother because “rollback point not found” now follows the same handling path as `local_tip_plateau`.
|
|
31
|
+
- **Rock-solid WatchTx rollbacks:** Transaction watching is more reliable because WatchTx now supports undo and rollback during chain reorganizations.
|
|
32
|
+
|
|
33
|
+
### 📋 What You Need to Know
|
|
34
|
+
|
|
35
|
+
- **No action required:** You're all set—just upgrade to v0.29.0.
|
|
36
|
+
- **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.
|
|
37
|
+
|
|
38
|
+
### 🙏 Thank You
|
|
39
|
+
|
|
40
|
+
Thank you for trying!
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## v0.28.0 (March 30, 2026)
|
|
46
|
+
|
|
47
|
+
**Title:** Network-aware metrics and steadier block production
|
|
48
|
+
|
|
49
|
+
**Date:** March 30, 2026
|
|
50
|
+
|
|
51
|
+
**Version:** v0.28.0
|
|
52
|
+
|
|
53
|
+
Hi folks! Here's what we shipped in v0.28.0.
|
|
54
|
+
|
|
55
|
+
### ✨ What's New
|
|
56
|
+
|
|
57
|
+
- **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.
|
|
58
|
+
- **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.
|
|
59
|
+
- **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.
|
|
60
|
+
|
|
61
|
+
### 💪 Improvements
|
|
62
|
+
|
|
63
|
+
- **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.
|
|
64
|
+
- **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.
|
|
65
|
+
- **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.
|
|
66
|
+
- **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.
|
|
67
|
+
|
|
68
|
+
### 🔧 Fixes
|
|
69
|
+
|
|
70
|
+
- **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.
|
|
71
|
+
- **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.
|
|
72
|
+
- **Richer UTxO RPC responses:** Script evaluation and data queries are more complete because `evalTx` now includes redeemer payloads and `readData` now returns parsed datums.
|
|
73
|
+
|
|
74
|
+
### 📋 What You Need to Know
|
|
75
|
+
|
|
76
|
+
- **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.
|
|
77
|
+
- **Leios users:** If you use Leios mode, make sure `EnableLeios` is set in your configuration; the protocols are no longer registered by default.
|
|
78
|
+
- **Default make target:** `make` no longer runs tests by default — use `make test` explicitly.
|
|
79
|
+
|
|
80
|
+
### 🙏 Thank You
|
|
81
|
+
|
|
82
|
+
Thank you for trying!
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
|
|
4
87
|
## v0.27.7 (March 24, 2026)
|
|
5
88
|
|
|
6
89
|
**Title:** Steadier sync and leaner storage
|
package/dingo.yaml.example
CHANGED
|
@@ -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
|
|
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).
|
|
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
|
|
151
|
-
#
|
|
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:
|
|
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:
|
|
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:
|
|
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,
|
|
176
|
+
# Relay node (core storage, API ports ignored):
|
|
177
177
|
# storageMode: "core"
|
|
178
178
|
# blockProducer: false
|
|
179
179
|
#
|
|
180
|
-
# Data node (
|
|
180
|
+
# Data node (all APIs start on defaults automatically):
|
|
181
181
|
# storageMode: "api"
|
|
182
|
-
#
|
|
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,
|
|
190
|
+
# Validator / block producer (core storage, API ports ignored):
|
|
190
191
|
# storageMode: "core"
|
|
191
192
|
# blockProducer: true
|
|
192
193
|
# shelleyVrfKey: "/keys/vrf.skey"
|