@blinklabs/dingo 0.46.4 → 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.
@@ -1,130 +0,0 @@
1
- # Dingo Ledger & Database Benchmark Results
2
-
3
- ## Latest Results
4
-
5
- ### Test Environment
6
- - **Date**: November 26, 2025
7
- - **Go Version**: 1.24.1
8
- - **OS**: Linux
9
- - **Architecture**: aarch64
10
- - **CPU Cores**: 128
11
- - **Data Source**: Real Cardano preview testnet data (40k+ blocks, slots 0-863,996)
12
-
13
- ### Benchmark Results
14
-
15
- All benchmarks run with `-benchmem` flag showing memory allocations and operation counts.
16
-
17
- | Benchmark | Operations/sec | Time/op | Memory/op | Allocs/op |
18
- |-----------|----------------|---------|-----------|-----------|
19
- | Pool Lookup By Key Hash No Data | 36231 | 33604ns | 4KB | 79 |
20
- | Pool Registration Lookups No Data | 24210 | 46595ns | 10KB | 93 |
21
- | Account Lookup By Stake Key Real Data | 39950 | 34026ns | 4KB | 75 |
22
- | Utxo Lookup By Address No Data | 109825 | 16460ns | 2KB | 19 |
23
- | Storage Backends/memory | 32593 | 34818ns | 13KB | 70 |
24
- | Transaction Validation | 230958193 | 5.238ns | 0B | 0 |
25
- | Real Block Reading | 22 | 53427289ns | 2183KB | 74472 |
26
- | Block Retrieval By Index Real Data | 303981 | 3868ns | 472B | 11 |
27
- | Index Building Time | 14078 | 87080ns | 17KB | 119 |
28
- | Chain Sync From Genesis | 74 | 15096067ns | 100.0blocks_processed | 2247880 |
29
- | Block Retrieval By Index No Data | 315110 | 3652ns | 472B | 11 |
30
- | Transaction Create | 77013 | 16824ns | 2KB | 18 |
31
- | Utxo Lookup By Address Real Data | 82125 | 16014ns | 2KB | 19 |
32
- | Era Transition Performance | 459890545 | 2.178ns | 0B | 0 |
33
- | Protocol Parameters Lookup By Epoch Real Data | 44181 | 32903ns | 5KB | 62 |
34
- | Pool Registration Lookups Real Data | 22616 | 48729ns | 10KB | 93 |
35
- | Stake Registration Lookups Real Data | 38761 | 33724ns | 5KB | 69 |
36
- | Era Transition Performance Real Data | 4340 | 267246ns | 83KB | 490 |
37
- | Real Block Processing | 13651 | 84993ns | 17KB | 119 |
38
- | Utxo Lookup By Ref No Data | 10461 | 119506ns | 8KB | 131 |
39
- | Storage Backends/disk | 33004 | 32561ns | 13KB | 70 |
40
- | Test Load/memory | 1912 | 650898ns | 260KB | 1400 |
41
- | Stake Registration Lookups No Data | 33963 | 33887ns | 5KB | 69 |
42
- | Utxo Lookup By Ref Real Data | 10000 | 122404ns | 8KB | 131 |
43
- | Protocol Parameters Lookup By Epoch No Data | 37996 | 32298ns | 5KB | 62 |
44
- | Datum Lookup By Hash No Data | 32635 | 34072ns | 4KB | 69 |
45
- | Block Processing Throughput | 3904 | 290370ns | 3444blocks/sec | 22462 |
46
- | Real Data Queries | 68570 | 17752ns | 5KB | 43 |
47
- | Block Nonce Lookup Real Data | 34851 | 37815ns | 4KB | 73 |
48
- | Test Load/disk | 2068 | 536686ns | 260KB | 1400 |
49
- | Pool Lookup By Key Hash Real Data | 40214 | 33631ns | 4KB | 79 |
50
- | D Rep Lookup By Key Hash No Data | 35266 | 36094ns | 4KB | 77 |
51
- | Transaction History Queries No Data | 34167 | 33889ns | 4KB | 78 |
52
- | Datum Lookup By Hash Real Data | 44810 | 33686ns | 4KB | 69 |
53
- | Block Nonce Lookup No Data | 32011 | 36515ns | 4KB | 73 |
54
- | Account Lookup By Stake Key No Data | 34898 | 35142ns | 4KB | 75 |
55
- | Transaction History Queries Real Data | 37575 | 34812ns | 4KB | 78 |
56
- | Concurrent Queries | 15408 | 68781ns | 14581queries/sec | 3943 |
57
- | D Rep Lookup By Key Hash Real Data | 39360 | 34907ns | 4KB | 77 |
58
- | Block Memory Usage | 29292 | 44369ns | 14KB | 49 |
59
-
60
- ## Performance Changes
61
-
62
- Changes since **November 26, 2025**:
63
-
64
- ### Summary
65
- - **Faster benchmarks**: 19
66
- - **Slower benchmarks**: 20
67
- - **New benchmarks**: 0
68
- - **Removed benchmarks**: 0
69
-
70
- ### Top Improvements
71
- - Utxo Lookup By Address No Data (+44%)
72
- - Transaction Validation (+0%)
73
- - Test Load/memory (+19%)
74
- - Test Load/disk (+31%)
75
- - Storage Backends/memory (+3%)
76
-
77
- ### Performance Regressions
78
- - Pool Lookup By Key Hash No Data (-0%)
79
- - Index Building Time (-0%)
80
- - Account Lookup By Stake Key No Data (-0%)
81
- - Transaction History Queries No Data (-1%)
82
- - Stake Registration Lookups No Data (-1%)
83
-
84
-
85
- ## Historical Results
86
-
87
- ### November 26, 2025
88
-
89
- | Benchmark | Operations/sec | Time/op | Memory/op | Allocs/op |
90
- |-----------|----------------|---------|-----------|-----------|
91
- | Pool Lookup By Key Hash No Data | 36328 | 33556ns | 4KB | 79 |
92
- | Pool Registration Lookups No Data | 24898 | 51298ns | 10KB | 93 |
93
- | Account Lookup By Stake Key Real Data | 39936 | 33871ns | 4KB | 75 |
94
- | Utxo Lookup By Address No Data | 75966 | 16953ns | 2KB | 19 |
95
- | Storage Backends/memory | 31369 | 33394ns | 13KB | 70 |
96
- | Transaction Validation | 230637091 | 5.213ns | 0B | 0 |
97
- | Real Block Reading | 20 | 55046083ns | 2183KB | 74472 |
98
- | Block Retrieval By Index Real Data | 312492 | 4102ns | 472B | 11 |
99
- | Index Building Time | 14168 | 86378ns | 17KB | 119 |
100
- | Chain Sync From Genesis | 100 | 14189212ns | 100.0blocks_processed | 2247966 |
101
- | Block Retrieval By Index No Data | 277410 | 4025ns | 472B | 11 |
102
- | Transaction Create | 92761 | 16456ns | 2KB | 18 |
103
- | Utxo Lookup By Address Real Data | 86467 | 15705ns | 2KB | 19 |
104
- | Era Transition Performance | 499031763 | 2.139ns | 0B | 0 |
105
- | Protocol Parameters Lookup By Epoch Real Data | 44150 | 30066ns | 5KB | 62 |
106
- | Pool Registration Lookups Real Data | 23724 | 48201ns | 10KB | 93 |
107
- | Stake Registration Lookups Real Data | 40082 | 32844ns | 5KB | 69 |
108
- | Era Transition Performance Real Data | 3525 | 305364ns | 83KB | 490 |
109
- | Real Block Processing | 13509 | 87846ns | 17KB | 119 |
110
- | Utxo Lookup By Ref No Data | 10724 | 111792ns | 8KB | 131 |
111
- | Storage Backends/disk | 28960 | 37643ns | 13KB | 70 |
112
- | Test Load/memory | 1605 | 669272ns | 260KB | 1400 |
113
- | Stake Registration Lookups No Data | 34359 | 36417ns | 5KB | 69 |
114
- | Utxo Lookup By Ref Real Data | 10000 | 111756ns | 8KB | 131 |
115
- | Protocol Parameters Lookup By Epoch No Data | 37886 | 32905ns | 5KB | 62 |
116
- | Datum Lookup By Hash No Data | 40302 | 29076ns | 4KB | 69 |
117
- | Block Processing Throughput | 4632 | 287053ns | 3484blocks/sec | 22466 |
118
- | Real Data Queries | 62532 | 19011ns | 5KB | 43 |
119
- | Block Nonce Lookup Real Data | 35782 | 38514ns | 4KB | 73 |
120
- | Test Load/disk | 1574 | 711525ns | 260KB | 1400 |
121
- | Pool Lookup By Key Hash Real Data | 39812 | 33599ns | 4KB | 79 |
122
- | D Rep Lookup By Key Hash No Data | 35139 | 35088ns | 4KB | 77 |
123
- | Transaction History Queries No Data | 34530 | 36887ns | 4KB | 78 |
124
- | Datum Lookup By Hash Real Data | 36972 | 31369ns | 4KB | 69 |
125
- | Block Nonce Lookup No Data | 32977 | 36460ns | 4KB | 73 |
126
- | Account Lookup By Stake Key No Data | 35020 | 32890ns | 4KB | 75 |
127
- | Transaction History Queries Real Data | 38739 | 35904ns | 4KB | 78 |
128
- | D Rep Lookup By Key Hash Real Data | 38977 | 36859ns | 4KB | 77 |
129
- | Concurrent Queries | 19104 | 59527ns | 168280queries/sec | 3851 |
130
- | Block Memory Usage | 26552 | 46212ns | 14KB | 49 |
@@ -1,50 +0,0 @@
1
- # Four-Thread Block Producer Sizing Report (Non-Pi Host)
2
-
3
- Assumptions:
4
- - `storageMode=core`
5
- - `runMode=serve`, `blob=badger`, `metadata=sqlite`
6
- - `GOMAXPROCS=4`
7
- - immutable fixture: `database/immutable/testdata`
8
- - measurements were collected on non-Pi hardware and are a sizing proxy, not Raspberry Pi device benchmarks
9
- - block producer peer count remains small; this is not a relay profile
10
-
11
- ## Load Footprint
12
-
13
- | Profile | Elapsed | Peak RSS | Notes |
14
- | --- | --- | --- | --- |
15
- | `core-default` | `100.35s` | `568.1 MB` | Current default `serve/core` cache profile |
16
-
17
- ## Recommendation
18
-
19
- For Raspberry Pi-class sizing in `storageMode=core`, the current default `serve/core` profile is already in the measured low-memory range on this four-thread non-Pi host.
20
- Explicit Badger cache settings still override these defaults if an operator wants to tune further.
21
- Treat this as a sizing baseline rather than a direct Raspberry Pi hardware measurement.
22
-
23
- # Four-Thread Block Producer Sizing Benchmark Results (Non-Pi Host)
24
-
25
- ## Latest Results
26
-
27
- ### Test Environment
28
- - **Date**: March 15, 2026
29
- - **Go Version**: 1.25.8
30
- - **OS**: Linux
31
- - **Architecture**: aarch64
32
- - **CPU Cores**: 128
33
- - **Data Source**: database/immutable/testdata plus local immutable load runs
34
- - **Scope**: Four-thread block producer path (GOMAXPROCS=4) in core mode on a non-Pi host
35
-
36
- ### Benchmark Results
37
-
38
- All benchmarks run with `-benchmem` flag. Iterations are Go benchmark iteration counts; benchmark-specific throughput metrics (for example `blocks/sec`) are reported separately.
39
-
40
- | Benchmark | Iterations | Time/op | Extra Metrics | Memory/op | Allocs/op |
41
- |-----------|------------|---------|---------------|-----------|-----------|
42
- | ledger:Blockfetch Near Tip Queued Header Predecoded | 155935 | 36391ns | 27479 blocks/sec | 2KB | 51 |
43
- | ledger:Blockfetch Near Tip Throughput | 181371 | 66974ns | 14931 blocks/sec | 25KB | 128 |
44
- | ledger:Blockfetch Near Tip Throughput Predecoded | 328588 | 36882ns | 27113 blocks/sec | 2KB | 50 |
45
- | ledger:Verify Block Header/direct | 5946 | 1005264ns | - | 2KB | 29 |
46
- | ledger:Verify Block Header/ledger_state | 6008 | 997998ns | - | 2KB | 29 |
47
-
48
- ## Performance Changes
49
-
50
- No previous results found. This is the first benchmark run.
@@ -1,102 +0,0 @@
1
- # Targeted Runtime Baseline
2
-
3
- ## Latest Results
4
-
5
- ### Test Environment
6
- - **Date**: March 15, 2026
7
- - **Go Version**: 1.25.8
8
- - **OS**: Linux
9
- - **Architecture**: aarch64
10
- - **CPU Cores**: 128
11
- - **Data Source**: database/immutable/testdata plus synthetic relay fanout/control-loop benchmarks
12
- - **Scope**: BP and relay runtime paths
13
-
14
- ### Benchmark Results
15
-
16
- All benchmarks run with `-benchmem` flag. Iterations are Go benchmark iteration counts; benchmark-specific throughput metrics (for example `blocks/sec`) are reported separately.
17
-
18
- | Benchmark | Iterations | Time/op | Extra Metrics | Memory/op | Allocs/op |
19
- |-----------|------------|---------|---------------|-----------|-----------|
20
- | connmanager:Has Inbound From Host/10 | 81306320 | 62.31ns | - | 0B | 0 |
21
- | connmanager:Has Inbound From Host/100 | 94509072 | 70.91ns | - | 0B | 0 |
22
- | connmanager:Has Inbound From Host/1000 | 92533866 | 64.39ns | - | 0B | 0 |
23
- | connmanager:Has Inbound From Host/500 | 99476421 | 59.57ns | - | 0B | 0 |
24
- | connmanager:Try Reserve Inbound Slot Parallel/10 | 15721854 | 388.8ns | - | 0B | 0 |
25
- | connmanager:Try Reserve Inbound Slot Parallel/100 | 7024470 | 823.6ns | - | 0B | 0 |
26
- | connmanager:Try Reserve Inbound Slot Parallel/500 | 7173524 | 840.6ns | - | 0B | 0 |
27
- | connmanager:Update Connection Metrics/10 | 199656918 | 29.24ns | - | 0B | 0 |
28
- | connmanager:Update Connection Metrics/100 | 203453912 | 29.82ns | - | 0B | 0 |
29
- | connmanager:Update Connection Metrics/1000 | 203063875 | 30.09ns | - | 0B | 0 |
30
- | connmanager:Update Connection Metrics/500 | 204545601 | 29.69ns | - | 0B | 0 |
31
- | event:Publish Subscribers/1 | 7974799 | 650.6ns | - | 0B | 0 |
32
- | event:Publish Subscribers/10 | 746738 | 7520ns | - | 0B | 0 |
33
- | event:Publish Subscribers/100 | 61120 | 94657ns | - | 0B | 0 |
34
- | event:Publish Subscribers/500 | 12976 | 489401ns | - | 0B | 0 |
35
- | ledger:Block Processing Throughput | 54142 | 95123ns | 10513 blocks/sec | 25KB | 133 |
36
- | ledger:Block Processing Throughput Predecoded | 144867 | 40441ns | 24728 blocks/sec | 2KB | 51 |
37
- | ledger:Blockfetch Near Tip Throughput | 172838 | 69818ns | 14323 blocks/sec | 25KB | 129 |
38
- | ledger:Blockfetch Near Tip Flush Only Predecoded | 342222 | 37234ns | 26857 blocks/sec | 2KB | 50 |
39
- | ledger:Blockfetch Near Tip Throughput Predecoded | 340428 | 36428ns | 27452 blocks/sec | 2KB | 50 |
40
- | ledger:Blockfetch Verified Header Dispatch | 156298824 | 38.37ns | - | 0B | 0 |
41
- | ledger:Verify Block Header/direct | 5907 | 1008310ns | - | 2KB | 29 |
42
- | ledger:Verify Block Header/ledger_state | 5935 | 1006660ns | - | 2KB | 29 |
43
- | peergov:Reconcile/100 | 64309 | 93859ns | - | 19KB | 124 |
44
- | peergov:Reconcile/1000 | 3626 | 1632793ns | - | 250KB | 1597 |
45
- | peergov:Reconcile/500 | 7881 | 733098ns | - | 124KB | 697 |
46
-
47
- ## Performance Changes
48
-
49
- Changes relative to the earlier **March 15, 2026** baseline below:
50
-
51
- ### Summary
52
- - Focused timed reruns were used for the connmanager and peergov rows in this update.
53
- - `Update Connection Metrics` now uses incremental cached counts instead of rescanning all connections.
54
- - The default `serve/core` Badger profile now uses the previously measured Pi-tight cache sizing.
55
- - `peergov.reconcile` still benefits heavily from keeping per-peer churn logs below `Info`.
56
- - `peergov.reconcile` now reuses one reconcile timestamp and caches under-valency for warm-promotion candidates.
57
- - `peergov.enforceStateLimit` now sorts only removable peers and rebuilds the slice once instead of repeatedly deleting from it.
58
- - `peergov.reconcile` now skips valency-status scans entirely unless debug logging is enabled.
59
-
60
- ### Top Improvements
61
- - connmanager:Update Connection Metrics/1000: `291625ns -> 30.09ns`
62
- - connmanager:Update Connection Metrics/500: `138551ns -> 29.69ns`
63
- - connmanager:Update Connection Metrics/100: `24518ns -> 29.82ns`
64
- - connmanager:Update Connection Metrics/10: `3123ns -> 29.24ns`
65
- - ledger:Blockfetch Near Tip Throughput: `86320ns -> 69818ns`
66
- - ledger:Blockfetch Near Tip Throughput Predecoded: `40031ns -> 36428ns`
67
- - peergov:Reconcile/1000: `2587803ns -> 1632793ns`
68
- - peergov:Reconcile/500: `1072577ns -> 733098ns`
69
- - peergov:Reconcile/100: `130667ns -> 93859ns`
70
-
71
-
72
- ## Historical Results
73
-
74
- ### Earlier March 15, 2026 Baseline
75
-
76
- | Benchmark | Iterations | Time/op | Extra Metrics | Memory/op | Allocs/op |
77
- |-----------|------------|---------|---------------|-----------|-----------|
78
- | connmanager:Has Inbound From Host/10 | 102497121 | 63.18ns | - | 0B | 0 |
79
- | connmanager:Has Inbound From Host/100 | 93197125 | 57.95ns | - | 0B | 0 |
80
- | connmanager:Has Inbound From Host/1000 | 99058254 | 60.09ns | - | 0B | 0 |
81
- | connmanager:Has Inbound From Host/500 | 91016371 | 65.75ns | - | 0B | 0 |
82
- | connmanager:Try Reserve Inbound Slot Parallel/10 | 15616777 | 403.8ns | - | 0B | 0 |
83
- | connmanager:Try Reserve Inbound Slot Parallel/100 | 7449546 | 779.0ns | - | 0B | 0 |
84
- | connmanager:Try Reserve Inbound Slot Parallel/500 | 7706102 | 772.6ns | - | 0B | 0 |
85
- | connmanager:Update Connection Metrics/10 | 1876092 | 3123ns | - | 456B | 3 |
86
- | connmanager:Update Connection Metrics/100 | 239965 | 24518ns | - | 3KB | 3 |
87
- | connmanager:Update Connection Metrics/1000 | 20446 | 291625ns | - | 54KB | 5 |
88
- | connmanager:Update Connection Metrics/500 | 43100 | 138551ns | - | 27KB | 3 |
89
- | event:Publish Subscribers/1 | 7974799 | 650.6ns | - | 0B | 0 |
90
- | event:Publish Subscribers/10 | 746738 | 7520ns | - | 0B | 0 |
91
- | event:Publish Subscribers/100 | 61120 | 94657ns | - | 0B | 0 |
92
- | event:Publish Subscribers/500 | 12976 | 489401ns | - | 0B | 0 |
93
- | ledger:Block Processing Throughput | 54142 | 95123ns | 10513 blocks/sec | 25KB | 133 |
94
- | ledger:Block Processing Throughput Predecoded | 144867 | 40441ns | 24728 blocks/sec | 2KB | 51 |
95
- | ledger:Blockfetch Near Tip Throughput | 76536 | 86320ns | 11585 blocks/sec | 25KB | 128 |
96
- | ledger:Blockfetch Near Tip Throughput Predecoded | 160242 | 40031ns | 24981 blocks/sec | 2KB | 50 |
97
- | ledger:Blockfetch Verified Header Dispatch | 156298824 | 38.37ns | - | 0B | 0 |
98
- | ledger:Verify Block Header/direct | 5907 | 1008310ns | - | 2KB | 29 |
99
- | ledger:Verify Block Header/ledger_state | 5935 | 1006660ns | - | 2KB | 29 |
100
- | peergov:Reconcile/100 | 45027 | 130667ns | - | 16KB | 185 |
101
- | peergov:Reconcile/1000 | 2343 | 2587803ns | - | 202KB | 1662 |
102
- | peergov:Reconcile/500 | 5739 | 1072577ns | - | 100KB | 760 |
package/devmode.sh DELETED
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Copyright 2026 Blink Labs Software
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- export CARDANO_NETWORK=devnet
18
- export CARDANO_CONFIG=./config/cardano/devnet/config.json
19
- export CARDANO_DATABASE_PATH=.devnet
20
- export CARDANO_DEV_MODE=true
21
-
22
- DEBUG=${DEBUG:-false}
23
-
24
- conf="$(dirname "$CARDANO_CONFIG")"
25
- now=$(date -u +%s)
26
- echo "setting start time in $conf to $now"
27
- sed -i -e "s/startTime\": .*,/startTime\": $now,/" "$conf/byron-genesis.json"
28
- sed -i -e "s/systemStart\": .*,/systemStart\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ --date=@$now)\",/" "$conf/shelley-genesis.json"
29
-
30
- echo resetting .devnet
31
- rm -rf .devnet/*
32
-
33
- if [[ ${DEBUG} == true ]]; then
34
- go run ./cmd/dingo/ --debug
35
- else
36
- go run ./cmd/dingo/
37
- fi