@blinklabs/dingo 0.35.3 → 0.36.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/CLAUDE.md +33 -0
- package/RELEASE_NOTES.md +77 -0
- package/package.json +1 -1
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
Go-based Cardano node implementing Ouroboros. Most of what you need is derivable from code (`Makefile`, `go.mod`, `node.go`, `dingo.yaml.example`). Below is what isn't.
|
|
4
|
+
|
|
5
|
+
## Testing rules
|
|
6
|
+
|
|
7
|
+
- **Never use `time.Sleep()` for synchronization.** Use helpers in `internal/test/testutil/`:
|
|
8
|
+
- `WaitForCondition` / `require.Eventually` for polling (2–5s timeout, 5–10ms interval, lock shared state inside the condition fn)
|
|
9
|
+
- `RequireReceive` / `RequireNoReceive` for channel assertions
|
|
10
|
+
- `context.WithTimeout` for graceful shutdown — not sleep
|
|
11
|
+
- Race detection is on by default in `make test`.
|
|
12
|
+
- Integration tests in `internal/integration/` load real blocks from `database/immutable/testdata/`.
|
|
13
|
+
|
|
14
|
+
## Before committing
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
golangci-lint run ./... # .golangci.yml configured
|
|
18
|
+
nilaway ./...
|
|
19
|
+
modernize ./... # --fix to auto-apply
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Non-obvious architecture
|
|
23
|
+
|
|
24
|
+
- **CBOR offset storage**: UTxOs/txs store 52-byte `CborOffset` refs (magic `"DOFF"`, slot, hash, offset, length), not full CBOR. Resolved via `TieredCborCache` (hot → block LRU → cold extract from blob store). See `database/cbor_offset.go`, `database/cbor_cache.go`, `database/block_indexer.go`.
|
|
25
|
+
- **Plugins** (`database/plugin/`): blob = `badger` (default) / `gcs` / `s3`; metadata = `sqlite` (default) / `mysql` / `postgres`.
|
|
26
|
+
- **Event bus**: components communicate via `event.EventBus.SubscribeFunc()`, not direct calls.
|
|
27
|
+
|
|
28
|
+
## Profiling
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
./dingo --cpuprofile=cpu.prof --memprofile=mem.prof load database/immutable/testdata
|
|
32
|
+
go tool pprof cpu.prof
|
|
33
|
+
```
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,6 +1,83 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v0.36.0 (April 20, 2026)
|
|
5
|
+
|
|
6
|
+
**Title:** Asset endpoints and steadier chain operations
|
|
7
|
+
|
|
8
|
+
**Date:** April 20, 2026
|
|
9
|
+
|
|
10
|
+
**Version:** v0.36.0
|
|
11
|
+
|
|
12
|
+
Hi folks! Here’s what we shipped in v0.36.0.
|
|
13
|
+
|
|
14
|
+
### ✨ What's New
|
|
15
|
+
|
|
16
|
+
* 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.
|
|
17
|
+
* Expanded **era transition visibility:** Era history now shows confirmed upcoming change points more clearly, so slot and time forecasts stay aligned with known transitions.
|
|
18
|
+
* 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.
|
|
19
|
+
|
|
20
|
+
### 💪 Improvements
|
|
21
|
+
|
|
22
|
+
* Improved **contributor setup guidance:** Development work is easier to follow because the project now includes clearer guidance for testing, architecture, and profiling.
|
|
23
|
+
* Refreshed **build cache stability:** Automation now uses a newer cache action release for steadier build runs.
|
|
24
|
+
* Updated **protocol support alignment:** Network compatibility stays current with newer upstream protocol updates.
|
|
25
|
+
* Modernized **operator tooling support:** Operational workflows stay aligned with newer Cardano command line tooling.
|
|
26
|
+
* Streamlined **era rollover handling:** Era changes now follow one transition path, which makes chain operations more consistent during rollovers.
|
|
27
|
+
* Restored **release history continuity:** Recent changes stay easier to scan in one place through the updated release notes.
|
|
28
|
+
|
|
29
|
+
### 🔧 Fixes
|
|
30
|
+
|
|
31
|
+
* Fixed **single relay sync stalls:** Single-relay block producers now keep chain progress steadier when the relay reconnects first after an interruption.
|
|
32
|
+
* Hardened **ledger startup safeguards:** Startup and rollback related paths now stop immediately when the Ouroboros security parameter K is missing or zero.
|
|
33
|
+
* Corrected **fork recovery error reporting:** Fork recovery now returns ancestor lookup failures directly, which makes recovery issues easier to detect.
|
|
34
|
+
* Prevented **Blockfrost startup crashes:** Blockfrost startup now returns a clear error when ledger state is missing instead of crashing.
|
|
35
|
+
* Set **forged block version markers:** Forged blocks now carry the expected minor protocol version for steadier interoperability.
|
|
36
|
+
|
|
37
|
+
### 📋 What You Need to Know
|
|
38
|
+
|
|
39
|
+
* Blockfrost API users can now query native assets through /api/v0/assets/{asset} using the concatenated {policy_id}{asset_name_hex} identifier format.
|
|
40
|
+
* 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.
|
|
41
|
+
* 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.
|
|
42
|
+
|
|
43
|
+
### 🙏 Thank You
|
|
44
|
+
|
|
45
|
+
Thank you for trying!
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## v0.35.3 (April 19, 2026)
|
|
50
|
+
|
|
51
|
+
**Title:** Improve peer sharing compatibility
|
|
52
|
+
|
|
53
|
+
**Date:** April 19, 2026
|
|
54
|
+
|
|
55
|
+
**Version:** v0.35.3
|
|
56
|
+
|
|
57
|
+
Hi folks! Here’s what we shipped in v0.35.3.
|
|
58
|
+
|
|
59
|
+
### ✨ What's New
|
|
60
|
+
|
|
61
|
+
* Noted **no new features:** This patch focuses on improvements and fixes.
|
|
62
|
+
|
|
63
|
+
### 💪 Improvements
|
|
64
|
+
|
|
65
|
+
* Refined **release history continuity:** RELEASE_NOTES.md now stays up to date, so recent changes are easier to scan in one place.
|
|
66
|
+
|
|
67
|
+
### 🔧 Fixes
|
|
68
|
+
|
|
69
|
+
* 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.
|
|
70
|
+
|
|
71
|
+
### 📋 What You Need to Know
|
|
72
|
+
|
|
73
|
+
* 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.
|
|
74
|
+
|
|
75
|
+
### 🙏 Thank You
|
|
76
|
+
|
|
77
|
+
Thank you for trying!
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
4
81
|
## v0.35.2 (April 18, 2026)
|
|
5
82
|
|
|
6
83
|
**Title:** Safer era forecasts and refreshed dependencies
|