@blinklabs/dingo 0.6.0 → 0.8.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.
Files changed (188) hide show
  1. package/.dingo/blob/000001.sst +0 -0
  2. package/.dingo/blob/000001.vlog +0 -0
  3. package/.dingo/blob/DISCARD +0 -0
  4. package/.dingo/blob/KEYREGISTRY +2 -0
  5. package/.dingo/blob/MANIFEST +0 -0
  6. package/.dingo/metadata.sqlite +0 -0
  7. package/.github/workflows/golangci-lint.yml +1 -1
  8. package/.github/workflows/publish.yml +1 -7
  9. package/README.md +2 -1
  10. package/{dist/dingo_darwin_amd64_v1/dingo → dingo} +0 -0
  11. package/dingo.yaml.example +53 -0
  12. package/package.json +5 -5
  13. package/Dockerfile +0 -25
  14. package/Makefile +0 -53
  15. package/blockfetch.go +0 -144
  16. package/chain/chain.go +0 -504
  17. package/chain/chain_test.go +0 -468
  18. package/chain/errors.go +0 -80
  19. package/chain/event.go +0 -33
  20. package/chain/iter.go +0 -64
  21. package/chainsync/chainsync.go +0 -97
  22. package/chainsync.go +0 -223
  23. package/cmd/dingo/load.go +0 -52
  24. package/cmd/dingo/main.go +0 -118
  25. package/cmd/dingo/serve.go +0 -49
  26. package/config/cardano/node.go +0 -192
  27. package/config/cardano/node_test.go +0 -85
  28. package/config/cardano/preview/README.md +0 -4
  29. package/config/cardano/preview/alonzo-genesis.json +0 -196
  30. package/config/cardano/preview/byron-genesis.json +0 -117
  31. package/config/cardano/preview/config.json +0 -114
  32. package/config/cardano/preview/conway-genesis.json +0 -297
  33. package/config/cardano/preview/shelley-genesis.json +0 -68
  34. package/config.go +0 -245
  35. package/connmanager/connection_manager.go +0 -105
  36. package/connmanager/connection_manager_test.go +0 -185
  37. package/connmanager/event.go +0 -37
  38. package/connmanager/listener.go +0 -140
  39. package/connmanager/outbound.go +0 -93
  40. package/connmanager/socket.go +0 -55
  41. package/connmanager/unix.go +0 -78
  42. package/custom-p2p-topology.json +0 -24
  43. package/custom-p2p-topology.json.backup +0 -24
  44. package/custom-p2p-topology.json.mainnet +0 -37
  45. package/database/account.go +0 -138
  46. package/database/block.go +0 -362
  47. package/database/certs.go +0 -53
  48. package/database/commit_timestamp.go +0 -77
  49. package/database/database.go +0 -118
  50. package/database/database_test.go +0 -62
  51. package/database/drep.go +0 -27
  52. package/database/epoch.go +0 -121
  53. package/database/immutable/chunk.go +0 -182
  54. package/database/immutable/immutable.go +0 -350
  55. package/database/immutable/immutable_test.go +0 -59
  56. package/database/immutable/primary.go +0 -106
  57. package/database/immutable/secondary.go +0 -103
  58. package/database/immutable/testdata/08893.chunk +0 -0
  59. package/database/immutable/testdata/08893.primary +0 -0
  60. package/database/immutable/testdata/08893.secondary +0 -0
  61. package/database/immutable/testdata/08894.chunk +0 -0
  62. package/database/immutable/testdata/08894.primary +0 -0
  63. package/database/immutable/testdata/08894.secondary +0 -0
  64. package/database/immutable/testdata/README.md +0 -4
  65. package/database/plugin/blob/badger/commit_timestamp.go +0 -50
  66. package/database/plugin/blob/badger/database.go +0 -152
  67. package/database/plugin/blob/badger/logger.go +0 -63
  68. package/database/plugin/blob/badger/metrics.go +0 -98
  69. package/database/plugin/blob/blob.go +0 -19
  70. package/database/plugin/blob/store.go +0 -40
  71. package/database/plugin/log.go +0 -27
  72. package/database/plugin/metadata/metadata.go +0 -19
  73. package/database/plugin/metadata/sqlite/account.go +0 -224
  74. package/database/plugin/metadata/sqlite/certs.go +0 -58
  75. package/database/plugin/metadata/sqlite/commit_timestamp.go +0 -68
  76. package/database/plugin/metadata/sqlite/database.go +0 -218
  77. package/database/plugin/metadata/sqlite/epoch.go +0 -120
  78. package/database/plugin/metadata/sqlite/models/account.go +0 -81
  79. package/database/plugin/metadata/sqlite/models/auth_committee_hot.go +0 -26
  80. package/database/plugin/metadata/sqlite/models/deregistration_drep.go +0 -26
  81. package/database/plugin/metadata/sqlite/models/drep.go +0 -27
  82. package/database/plugin/metadata/sqlite/models/epoch.go +0 -31
  83. package/database/plugin/metadata/sqlite/models/models.go +0 -45
  84. package/database/plugin/metadata/sqlite/models/pool.go +0 -97
  85. package/database/plugin/metadata/sqlite/models/pparam_update.go +0 -27
  86. package/database/plugin/metadata/sqlite/models/pparams.go +0 -27
  87. package/database/plugin/metadata/sqlite/models/registration_drep.go +0 -28
  88. package/database/plugin/metadata/sqlite/models/resign_committee_cold.go +0 -27
  89. package/database/plugin/metadata/sqlite/models/stake_registration_delegation.go +0 -27
  90. package/database/plugin/metadata/sqlite/models/stake_vote_delegation.go +0 -27
  91. package/database/plugin/metadata/sqlite/models/stake_vote_registration_delegation.go +0 -27
  92. package/database/plugin/metadata/sqlite/models/tip.go +0 -26
  93. package/database/plugin/metadata/sqlite/models/update_drep.go +0 -27
  94. package/database/plugin/metadata/sqlite/models/utxo.go +0 -30
  95. package/database/plugin/metadata/sqlite/models/vote_delegation.go +0 -26
  96. package/database/plugin/metadata/sqlite/models/vote_registration_delegation.go +0 -26
  97. package/database/plugin/metadata/sqlite/pool.go +0 -240
  98. package/database/plugin/metadata/sqlite/pparams.go +0 -110
  99. package/database/plugin/metadata/sqlite/tip.go +0 -83
  100. package/database/plugin/metadata/sqlite/utxo.go +0 -292
  101. package/database/plugin/metadata/store.go +0 -168
  102. package/database/plugin/option.go +0 -190
  103. package/database/plugin/plugin.go +0 -20
  104. package/database/plugin/register.go +0 -118
  105. package/database/pparams.go +0 -145
  106. package/database/tip.go +0 -45
  107. package/database/txn.go +0 -147
  108. package/database/types/types.go +0 -74
  109. package/database/types/types_test.go +0 -83
  110. package/database/utxo.go +0 -263
  111. package/dist/artifacts.json +0 -1
  112. package/dist/checksums.txt +0 -22
  113. package/dist/config.yaml +0 -253
  114. package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz +0 -0
  115. package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz.sbom.json +0 -1
  116. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz +0 -0
  117. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz.sbom.json +0 -1
  118. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz +0 -0
  119. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz.sbom.json +0 -1
  120. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk +0 -0
  121. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk.sbom.json +0 -1
  122. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb +0 -0
  123. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb.sbom.json +0 -1
  124. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm +0 -0
  125. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm.sbom.json +0 -1
  126. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk +0 -0
  127. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk.sbom.json +0 -1
  128. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb +0 -0
  129. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb.sbom.json +0 -1
  130. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm +0 -0
  131. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm.sbom.json +0 -1
  132. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz +0 -0
  133. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz.sbom.json +0 -1
  134. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz +0 -0
  135. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz.sbom.json +0 -1
  136. package/dist/dingo_darwin_arm64_v8.0/dingo +0 -0
  137. package/dist/dingo_linux_amd64_v1/dingo +0 -0
  138. package/dist/dingo_linux_arm64_v8.0/dingo +0 -0
  139. package/dist/homebrew/dingo.rb +0 -51
  140. package/dist/metadata.json +0 -1
  141. package/event/event.go +0 -141
  142. package/event/event_test.go +0 -115
  143. package/event/metrics.go +0 -44
  144. package/go.mod +0 -98
  145. package/go.sum +0 -358
  146. package/internal/config/config.go +0 -145
  147. package/internal/config/config_test.go +0 -118
  148. package/internal/node/load.go +0 -149
  149. package/internal/node/node.go +0 -176
  150. package/internal/version/version.go +0 -33
  151. package/ledger/certs.go +0 -113
  152. package/ledger/chainsync.go +0 -578
  153. package/ledger/eras/allegra.go +0 -154
  154. package/ledger/eras/alonzo.go +0 -156
  155. package/ledger/eras/babbage.go +0 -154
  156. package/ledger/eras/byron.go +0 -42
  157. package/ledger/eras/conway.go +0 -158
  158. package/ledger/eras/eras.go +0 -44
  159. package/ledger/eras/mary.go +0 -154
  160. package/ledger/eras/shelley.go +0 -164
  161. package/ledger/error.go +0 -19
  162. package/ledger/event.go +0 -50
  163. package/ledger/metrics.go +0 -53
  164. package/ledger/queries.go +0 -260
  165. package/ledger/slot.go +0 -127
  166. package/ledger/slot_test.go +0 -147
  167. package/ledger/state.go +0 -726
  168. package/ledger/view.go +0 -73
  169. package/localstatequery.go +0 -50
  170. package/localtxmonitor.go +0 -44
  171. package/localtxsubmission.go +0 -52
  172. package/mempool/consumer.go +0 -98
  173. package/mempool/mempool.go +0 -322
  174. package/node.go +0 -320
  175. package/peergov/event.go +0 -27
  176. package/peergov/peer.go +0 -67
  177. package/peergov/peergov.go +0 -290
  178. package/peersharing.go +0 -70
  179. package/preview-local-topology.json +0 -23
  180. package/topology/topology.go +0 -69
  181. package/topology/topology_test.go +0 -179
  182. package/tracing.go +0 -65
  183. package/txsubmission.go +0 -233
  184. package/utxorpc/query.go +0 -311
  185. package/utxorpc/submit.go +0 -395
  186. package/utxorpc/sync.go +0 -276
  187. package/utxorpc/utxorpc.go +0 -166
  188. package/utxorpc/watch.go +0 -310
package/ledger/slot.go DELETED
@@ -1,127 +0,0 @@
1
- // Copyright 2025 Blink Labs Software
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- package ledger
16
-
17
- import (
18
- "errors"
19
- "math"
20
- "time"
21
-
22
- "github.com/blinklabs-io/dingo/database"
23
- )
24
-
25
- // SlotToTime returns the current time for a given slot based on known epochs
26
- func (ls *LedgerState) SlotToTime(slot uint64) (time.Time, error) {
27
- if slot > math.MaxInt64 {
28
- return time.Time{}, errors.New("slot is larger than time.Duration")
29
- }
30
- shelleyGenesis := ls.config.CardanoNodeConfig.ShelleyGenesis()
31
- if shelleyGenesis == nil {
32
- return time.Time{}, errors.New("could not get genesis config")
33
- }
34
- slotTime := shelleyGenesis.SystemStart
35
- // Special case for chain genesis
36
- if slot == 0 {
37
- return slotTime, nil
38
- }
39
- foundSlot := false
40
- for _, epoch := range ls.epochCache {
41
- if epoch.StartSlot > math.MaxInt64 ||
42
- epoch.LengthInSlots > math.MaxInt64 ||
43
- epoch.SlotLength > math.MaxInt64 {
44
- return time.Time{}, errors.New(
45
- "epoch slot values are larger than time.Duration",
46
- )
47
- }
48
- if slot < epoch.StartSlot+uint64(epoch.LengthInSlots) {
49
- slotTime = slotTime.Add(
50
- time.Duration(
51
- int64(slot)-int64(epoch.StartSlot),
52
- ) * (time.Duration(epoch.SlotLength) * time.Millisecond),
53
- )
54
- foundSlot = true
55
- break
56
- }
57
- slotTime = slotTime.Add(
58
- time.Duration(
59
- epoch.LengthInSlots,
60
- ) * (time.Duration(epoch.SlotLength) * time.Millisecond),
61
- )
62
- }
63
- if !foundSlot {
64
- return slotTime, errors.New("slot not found in known epochs")
65
- }
66
- return slotTime, nil
67
- }
68
-
69
- // TimeToSlot returns the slot number for a given time based on known epochs
70
- func (ls *LedgerState) TimeToSlot(t time.Time) (uint64, error) {
71
- shelleyGenesis := ls.config.CardanoNodeConfig.ShelleyGenesis()
72
- if shelleyGenesis == nil {
73
- return 0, errors.New("could not get genesis config")
74
- }
75
- epochStartTime := shelleyGenesis.SystemStart
76
- // Special case for chain genesis
77
- if t.Equal(epochStartTime) {
78
- return 0, nil
79
- }
80
- var timeSlot uint64
81
- foundTime := false
82
- for _, epoch := range ls.epochCache {
83
- if epoch.LengthInSlots > math.MaxInt64 ||
84
- epoch.SlotLength > math.MaxInt64 {
85
- return 0, errors.New(
86
- "epoch slot values are larger than time.Duration",
87
- )
88
- }
89
- slotDuration := time.Duration(epoch.SlotLength) * time.Millisecond
90
- if slotDuration < 0 {
91
- return 0, errors.New("slot duration is negative")
92
- }
93
- epochEndTime := epochStartTime.Add(
94
- time.Duration(epoch.LengthInSlots) * slotDuration,
95
- )
96
- if (t.Equal(epochStartTime) || t.After(epochStartTime)) &&
97
- t.Before(epochEndTime) {
98
- // Figure out how far into the epoch the specified time is
99
- timeDiff := t.Sub(epochStartTime)
100
- // nolint:gosec
101
- // This will never overflow using 2 positive int64 values, but gosec seems determined
102
- // to complain about it
103
- timeSlot += uint64(timeDiff / slotDuration)
104
- foundTime = true
105
- break
106
- }
107
- epochStartTime = epochEndTime
108
- timeSlot += uint64(epoch.LengthInSlots)
109
- }
110
- if !foundTime {
111
- return timeSlot, errors.New("time not found in known epochs")
112
- }
113
- return timeSlot, nil
114
- }
115
-
116
- // SlotToEpoch returns a known epoch by slot number
117
- func (ls *LedgerState) SlotToEpoch(slot uint64) (database.Epoch, error) {
118
- for _, epoch := range ls.epochCache {
119
- if slot < epoch.StartSlot {
120
- continue
121
- }
122
- if slot < epoch.StartSlot+uint64(epoch.LengthInSlots) {
123
- return epoch, nil
124
- }
125
- }
126
- return database.Epoch{}, errors.New("slot not found in known epochs")
127
- }
@@ -1,147 +0,0 @@
1
- // Copyright 2025 Blink Labs Software
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- package ledger
16
-
17
- import (
18
- "strings"
19
- "testing"
20
- "time"
21
-
22
- "github.com/blinklabs-io/dingo/config/cardano"
23
- "github.com/blinklabs-io/dingo/database"
24
- )
25
-
26
- func TestSlotCalc(t *testing.T) {
27
- testLedgerState := &LedgerState{
28
- epochCache: []database.Epoch{
29
- {
30
- EpochId: 0,
31
- StartSlot: 0,
32
- SlotLength: 1000,
33
- LengthInSlots: 86400,
34
- },
35
- {
36
- EpochId: 1,
37
- StartSlot: 86400,
38
- SlotLength: 1000,
39
- LengthInSlots: 86400,
40
- },
41
- {
42
- EpochId: 2,
43
- StartSlot: 172800,
44
- SlotLength: 1000,
45
- LengthInSlots: 86400,
46
- },
47
- {
48
- EpochId: 3,
49
- StartSlot: 259200,
50
- SlotLength: 1000,
51
- LengthInSlots: 86400,
52
- },
53
- {
54
- EpochId: 4,
55
- StartSlot: 345600,
56
- SlotLength: 1000,
57
- LengthInSlots: 86400,
58
- },
59
- {
60
- EpochId: 5,
61
- StartSlot: 432000,
62
- SlotLength: 1000,
63
- LengthInSlots: 86400,
64
- },
65
- },
66
- config: LedgerStateConfig{
67
- CardanoNodeConfig: &cardano.CardanoNodeConfig{},
68
- },
69
- }
70
- testShelleyGenesis := `{"systemStart": "2022-10-25T00:00:00Z"}`
71
- if err := testLedgerState.config.CardanoNodeConfig.LoadShelleyGenesisFromReader(strings.NewReader(testShelleyGenesis)); err != nil {
72
- t.Fatalf("unexpected error loading cardano node config: %s", err)
73
- }
74
- testDefs := []struct {
75
- slot uint64
76
- slotTime time.Time
77
- epoch uint64
78
- }{
79
- {
80
- slot: 0,
81
- slotTime: time.Date(2022, time.October, 25, 0, 0, 0, 0, time.UTC),
82
- epoch: 0,
83
- },
84
- {
85
- slot: 86399,
86
- slotTime: time.Date(
87
- 2022,
88
- time.October,
89
- 25,
90
- 23,
91
- 59,
92
- 59,
93
- 0,
94
- time.UTC,
95
- ),
96
- epoch: 0,
97
- },
98
- {
99
- slot: 86400,
100
- slotTime: time.Date(2022, time.October, 26, 0, 0, 0, 0, time.UTC),
101
- epoch: 1,
102
- },
103
- {
104
- slot: 432001,
105
- slotTime: time.Date(2022, time.October, 30, 0, 0, 1, 0, time.UTC),
106
- epoch: 5,
107
- },
108
- }
109
- for _, testDef := range testDefs {
110
- // Slot to time
111
- tmpSlotToTime, err := testLedgerState.SlotToTime(testDef.slot)
112
- if err != nil {
113
- t.Errorf("unexpected error converting slot to time: %s", err)
114
- }
115
- if !tmpSlotToTime.Equal(testDef.slotTime) {
116
- t.Errorf(
117
- "did not get expected time from slot: got %s, wanted %s",
118
- tmpSlotToTime,
119
- testDef.slotTime,
120
- )
121
- }
122
- // Time to slot
123
- tmpTimeToSlot, err := testLedgerState.TimeToSlot(testDef.slotTime)
124
- if err != nil {
125
- t.Errorf("unexpected error converting time to slot: %s", err)
126
- }
127
- if tmpTimeToSlot != testDef.slot {
128
- t.Errorf(
129
- "did not get expected slot from time: got %d, wanted %d",
130
- tmpTimeToSlot,
131
- testDef.slot,
132
- )
133
- }
134
- // Slot to epoch
135
- tmpSlotToEpoch, err := testLedgerState.SlotToEpoch(testDef.slot)
136
- if err != nil {
137
- t.Errorf("unexpected error getting epoch from slot: %s", err)
138
- }
139
- if tmpSlotToEpoch.EpochId != testDef.epoch {
140
- t.Errorf(
141
- "did not get expected epoch from slot: got %d, wanted %d",
142
- tmpSlotToEpoch.EpochId,
143
- testDef.epoch,
144
- )
145
- }
146
- }
147
- }