@blinklabs/dingo 0.39.2 → 0.40.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/AGENTS.md +1 -0
- package/CLAUDE.md +1 -0
- package/README.md +7 -4
- package/RELEASE_NOTES.md +98 -0
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -24,6 +24,7 @@ make golines
|
|
|
24
24
|
- No `time.Sleep()` for sync — use `internal/test/testutil/` (`WaitForCondition`, `RequireReceive`, `context.WithTimeout`).
|
|
25
25
|
- Integration tests: `internal/integration/` + `database/immutable/testdata/` (real blocks, slots 0–1.3M).
|
|
26
26
|
- Mock fixtures come from `github.com/blinklabs-io/ouroboros-mock` (`fixtures/`, `ledger/`, `conformance/`). Never duplicate mocks inside dingo — extend the shared library so every Blink Labs app (dingo, gouroboros, adder, ...) reuses the same test surface.
|
|
27
|
+
- DevNet end-to-end (`internal/test/devnet/run-tests.sh`): validate any change touching consensus, block production, header/VRF/KES/OpCert verification, chain selection, mempool, tx submission, NtN/NtC protocols, epoch boundaries, or nonce computation. Brings up Dingo + cardano-node side by side with `txpump` driving the mempool, so it catches divergence from the reference implementation that unit tests miss. Conformance tests in `internal/test/conformance/` are still mandatory after every change — DevNet is the additional bar for consensus-affecting work.
|
|
27
28
|
|
|
28
29
|
## Non-obvious invariants
|
|
29
30
|
|
package/CLAUDE.md
CHANGED
|
@@ -11,6 +11,7 @@ Go Cardano node (Ouroboros). Derivable info (build targets, flags, package layou
|
|
|
11
11
|
- `make test` runs with `-race`.
|
|
12
12
|
- Integration tests in `internal/integration/` load real blocks from `database/immutable/testdata/`.
|
|
13
13
|
- Mock fixtures come from `github.com/blinklabs-io/ouroboros-mock` (`fixtures/`, `ledger/`, `conformance/`). Never add local ledger/consensus/network mocks — extend the shared library.
|
|
14
|
+
- DevNet (`internal/test/devnet/run-tests.sh`, see `internal/test/devnet/README.md`): use to validate any change that touches consensus, block production, header/VRF/KES/OpCert verification, chain selection, mempool, tx submission, NtN/NtC protocols, epoch boundaries, or nonce computation. Brings up Dingo + cardano-node side by side with `txpump` feeding the mempool, so it surfaces divergence from the reference implementation that unit and conformance tests miss. Run conformance (`internal/test/conformance/`) after every change; run DevNet additionally for consensus-affecting work.
|
|
14
15
|
|
|
15
16
|
## Pre-commit
|
|
16
17
|
|
package/README.md
CHANGED
|
@@ -503,20 +503,21 @@ The DevNet runs a private Cardano network with Dingo and `cardano-node` producin
|
|
|
503
503
|
|
|
504
504
|
### Architecture
|
|
505
505
|
|
|
506
|
-
The DevNet uses Docker Compose to run
|
|
506
|
+
The DevNet uses Docker Compose to run three Cardano nodes plus a load generator on a bridge network:
|
|
507
507
|
|
|
508
508
|
| Container | Role | Host Port |
|
|
509
509
|
|-----------|------|-----------|
|
|
510
510
|
| `dingo-producer` | Dingo block producer (pool 1) | 3010 |
|
|
511
511
|
| `cardano-producer` | cardano-node block producer (pool 2) | 3011 |
|
|
512
512
|
| `cardano-relay` | Relay node (no block production) | 3012 |
|
|
513
|
+
| `txpump` | Submits payment transactions into Dingo's mempool | — |
|
|
513
514
|
|
|
514
|
-
A `configurator` init container generates fresh pool keys and genesis files before nodes start.
|
|
515
|
+
A `configurator` init container generates fresh pool keys and genesis files before nodes start. The `txpump` sidecar comes up after Dingo is healthy and continuously feeds the mempool so block bodies and tx-submission paths are exercised alongside consensus.
|
|
515
516
|
|
|
516
517
|
### Prerequisites
|
|
517
518
|
|
|
518
519
|
- Docker with the Compose plugin (`docker compose`)
|
|
519
|
-
- Go 1.
|
|
520
|
+
- Go 1.25+
|
|
520
521
|
|
|
521
522
|
### Running the Automated Tests
|
|
522
523
|
|
|
@@ -561,7 +562,9 @@ docker compose -f docker-compose.yml logs -f dingo-producer
|
|
|
561
562
|
./stop.sh
|
|
562
563
|
```
|
|
563
564
|
|
|
564
|
-
Containers remain running until you stop them. The DevNet parameters (in `testnet.yaml`) use 1-second slots and
|
|
565
|
+
Containers remain running until you stop them. The DevNet parameters (in `testnet.yaml`) use 1-second slots and 500-slot epochs (~8 minutes per epoch) with `activeSlotsCoeff=0.4` and `securityParam (k)=40`, so you can observe epoch transitions, leader election, and stake snapshot rotation relatively quickly.
|
|
566
|
+
|
|
567
|
+
See [`internal/test/devnet/README.md`](internal/test/devnet/README.md) for full details on the harness, configurator, available test scenarios, and port/address overrides.
|
|
565
568
|
|
|
566
569
|
### Local DevNet (Without Docker)
|
|
567
570
|
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,6 +1,104 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v0.39.3 (May 4, 2026)
|
|
5
|
+
|
|
6
|
+
**Title:** Correct era transitions, Bark metadata, and peer recovery
|
|
7
|
+
|
|
8
|
+
**Date:** May 4, 2026
|
|
9
|
+
|
|
10
|
+
**Version:** v0.39.3
|
|
11
|
+
|
|
12
|
+
Hi folks! Here’s what we shipped in v0.39.3.
|
|
13
|
+
|
|
14
|
+
### ✨ What's New
|
|
15
|
+
|
|
16
|
+
* Noted **no new features:** This patch release focuses on improvements and fixes.
|
|
17
|
+
|
|
18
|
+
### 💪 Improvements
|
|
19
|
+
|
|
20
|
+
* 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.
|
|
21
|
+
* 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.
|
|
22
|
+
* Refined **AWS SDK config compatibility:** AWS backed configuration handling now stays aligned with the latest patch level for steadier cloud integration behavior.
|
|
23
|
+
* Modernized **MySQL driver support:** MySQL backed deployments now stay current with `v1.10.0` for ongoing compatibility and maintenance.
|
|
24
|
+
* Refreshed **Google API client support:** Google API integrations now stay current with `v0.277.0` for routine compatibility maintenance.
|
|
25
|
+
* Advanced **AWS S3 SDK maintenance:** S3 backed storage support now includes the latest patch level for steadier ongoing compatibility.
|
|
26
|
+
* 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.
|
|
27
|
+
* Restored **release history continuity:** Release tracking now includes the v0.39.2 notes entry in `RELEASE_NOTES.md`, which keeps recent history easier to scan.
|
|
28
|
+
|
|
29
|
+
### 🔧 Fixes
|
|
30
|
+
|
|
31
|
+
* 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.
|
|
32
|
+
* 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.
|
|
33
|
+
* 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.
|
|
34
|
+
|
|
35
|
+
### 📋 What You Need to Know
|
|
36
|
+
|
|
37
|
+
* Clarified **patch release upgrade guidance:** This is a patch release, and normal upgrade procedures are generally sufficient.
|
|
38
|
+
* 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.
|
|
39
|
+
* Summarized **Bark historical metadata availability:** Bark backed historical block access now returns the metadata needed for archived and tombstoned block lookups.
|
|
40
|
+
* Emphasized **safer plateau recovery behavior:** Plateau recovery now realigns peers after a stalled active peer is recycled, which reduces the chance of getting stuck.
|
|
41
|
+
* Reviewed **config and dependency refreshes:** Bundled Cardano configs now use the newer sync set, and several dependencies were updated for compatibility and maintenance.
|
|
42
|
+
|
|
43
|
+
### Recommended Network Compatibility ⚠️
|
|
44
|
+
|
|
45
|
+
| Network | Compatible |
|
|
46
|
+
|---------------------|------------|
|
|
47
|
+
| mainnet | ⛔ |
|
|
48
|
+
| preprod-testnet | ⛔ |
|
|
49
|
+
| preview-testnet | ✅ |
|
|
50
|
+
|
|
51
|
+
### 🙏 Thank You
|
|
52
|
+
|
|
53
|
+
Thank you for trying!
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## v0.39.2 (May 2, 2026)
|
|
58
|
+
|
|
59
|
+
**Title:** Improve fork recovery and hard fork readiness
|
|
60
|
+
|
|
61
|
+
**Date:** May 2, 2026
|
|
62
|
+
|
|
63
|
+
**Version:** v0.39.2
|
|
64
|
+
|
|
65
|
+
Hi folks! Here’s what we shipped in v0.39.2.
|
|
66
|
+
|
|
67
|
+
### ✨ What's New
|
|
68
|
+
|
|
69
|
+
* 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.
|
|
70
|
+
|
|
71
|
+
### 💪 Improvements
|
|
72
|
+
|
|
73
|
+
* 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.
|
|
74
|
+
* 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.
|
|
75
|
+
|
|
76
|
+
### 🔧 Fixes
|
|
77
|
+
|
|
78
|
+
* 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.
|
|
79
|
+
* 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.
|
|
80
|
+
|
|
81
|
+
### 📋 What You Need to Know
|
|
82
|
+
|
|
83
|
+
* Clarified **patch release upgrade guidance:** This is a patch release, and normal upgrade procedures are generally sufficient.
|
|
84
|
+
* Highlighted **safer tip recovery behavior:** Nodes are less likely to remain stuck on the same failing fork after a tip validation problem.
|
|
85
|
+
* 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.
|
|
86
|
+
* Summarized **corrected nonce behavior at epoch boundaries:** Epoch boundary validation and leader related behavior now stay aligned with the correct nonce progression.
|
|
87
|
+
|
|
88
|
+
### Recommended Network Compatibility ⚠️
|
|
89
|
+
|
|
90
|
+
| Network | Compatible |
|
|
91
|
+
|---------------------|------------|
|
|
92
|
+
| mainnet | ⛔ |
|
|
93
|
+
| preprod-testnet | ⛔ |
|
|
94
|
+
| preview-testnet | ✅ |
|
|
95
|
+
|
|
96
|
+
### 🙏 Thank You
|
|
97
|
+
|
|
98
|
+
Thank you for trying!
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
4
102
|
## v0.39.1 (May 1, 2026)
|
|
5
103
|
|
|
6
104
|
**Title:** Safer pruning, rollback recovery, and snapshot nonces
|