@blinklabs/dingo 0.6.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/.dockerignore +5 -0
- package/.github/CODEOWNERS +5 -0
- package/.github/assets/dingo-ate-my-blockchain.png +0 -0
- package/.github/assets/dingo-illustration.png +0 -0
- package/.github/assets/dingo-logo-with-text-horizontal.png +0 -0
- package/.github/assets/dingo-logo-with-text.png +0 -0
- package/.github/dependabot.yml +19 -0
- package/.github/dingo-20241210.png +0 -0
- package/.github/dingo.md +56 -0
- package/.github/workflows/ci-docker.yml +36 -0
- package/.github/workflows/conventional-commits.yml +17 -0
- package/.github/workflows/go-test.yml +29 -0
- package/.github/workflows/golangci-lint.yml +23 -0
- package/.github/workflows/publish.yml +207 -0
- package/.golangci.yml +71 -0
- package/Dockerfile +25 -0
- package/LICENSE +201 -0
- package/Makefile +53 -0
- package/README.md +150 -0
- package/blockfetch.go +144 -0
- package/chain/chain.go +504 -0
- package/chain/chain_test.go +468 -0
- package/chain/errors.go +80 -0
- package/chain/event.go +33 -0
- package/chain/iter.go +64 -0
- package/chainsync/chainsync.go +97 -0
- package/chainsync.go +223 -0
- package/cmd/dingo/load.go +52 -0
- package/cmd/dingo/main.go +118 -0
- package/cmd/dingo/serve.go +49 -0
- package/config/cardano/node.go +192 -0
- package/config/cardano/node_test.go +85 -0
- package/config/cardano/preview/README.md +4 -0
- package/config/cardano/preview/alonzo-genesis.json +196 -0
- package/config/cardano/preview/byron-genesis.json +117 -0
- package/config/cardano/preview/config.json +114 -0
- package/config/cardano/preview/conway-genesis.json +297 -0
- package/config/cardano/preview/shelley-genesis.json +68 -0
- package/config.go +245 -0
- package/connmanager/connection_manager.go +105 -0
- package/connmanager/connection_manager_test.go +185 -0
- package/connmanager/event.go +37 -0
- package/connmanager/listener.go +140 -0
- package/connmanager/outbound.go +93 -0
- package/connmanager/socket.go +55 -0
- package/connmanager/unix.go +78 -0
- package/custom-p2p-topology.json +24 -0
- package/custom-p2p-topology.json.backup +24 -0
- package/custom-p2p-topology.json.mainnet +37 -0
- package/database/account.go +138 -0
- package/database/block.go +362 -0
- package/database/certs.go +53 -0
- package/database/commit_timestamp.go +77 -0
- package/database/database.go +118 -0
- package/database/database_test.go +62 -0
- package/database/drep.go +27 -0
- package/database/epoch.go +121 -0
- package/database/immutable/chunk.go +182 -0
- package/database/immutable/immutable.go +350 -0
- package/database/immutable/immutable_test.go +59 -0
- package/database/immutable/primary.go +106 -0
- package/database/immutable/secondary.go +103 -0
- package/database/immutable/testdata/08893.chunk +0 -0
- package/database/immutable/testdata/08893.primary +0 -0
- package/database/immutable/testdata/08893.secondary +0 -0
- package/database/immutable/testdata/08894.chunk +0 -0
- package/database/immutable/testdata/08894.primary +0 -0
- package/database/immutable/testdata/08894.secondary +0 -0
- package/database/immutable/testdata/README.md +4 -0
- package/database/plugin/blob/badger/commit_timestamp.go +50 -0
- package/database/plugin/blob/badger/database.go +152 -0
- package/database/plugin/blob/badger/logger.go +63 -0
- package/database/plugin/blob/badger/metrics.go +98 -0
- package/database/plugin/blob/blob.go +19 -0
- package/database/plugin/blob/store.go +40 -0
- package/database/plugin/log.go +27 -0
- package/database/plugin/metadata/metadata.go +19 -0
- package/database/plugin/metadata/sqlite/account.go +224 -0
- package/database/plugin/metadata/sqlite/certs.go +58 -0
- package/database/plugin/metadata/sqlite/commit_timestamp.go +68 -0
- package/database/plugin/metadata/sqlite/database.go +218 -0
- package/database/plugin/metadata/sqlite/epoch.go +120 -0
- package/database/plugin/metadata/sqlite/models/account.go +81 -0
- package/database/plugin/metadata/sqlite/models/auth_committee_hot.go +26 -0
- package/database/plugin/metadata/sqlite/models/deregistration_drep.go +26 -0
- package/database/plugin/metadata/sqlite/models/drep.go +27 -0
- package/database/plugin/metadata/sqlite/models/epoch.go +31 -0
- package/database/plugin/metadata/sqlite/models/models.go +45 -0
- package/database/plugin/metadata/sqlite/models/pool.go +97 -0
- package/database/plugin/metadata/sqlite/models/pparam_update.go +27 -0
- package/database/plugin/metadata/sqlite/models/pparams.go +27 -0
- package/database/plugin/metadata/sqlite/models/registration_drep.go +28 -0
- package/database/plugin/metadata/sqlite/models/resign_committee_cold.go +27 -0
- package/database/plugin/metadata/sqlite/models/stake_registration_delegation.go +27 -0
- package/database/plugin/metadata/sqlite/models/stake_vote_delegation.go +27 -0
- package/database/plugin/metadata/sqlite/models/stake_vote_registration_delegation.go +27 -0
- package/database/plugin/metadata/sqlite/models/tip.go +26 -0
- package/database/plugin/metadata/sqlite/models/update_drep.go +27 -0
- package/database/plugin/metadata/sqlite/models/utxo.go +30 -0
- package/database/plugin/metadata/sqlite/models/vote_delegation.go +26 -0
- package/database/plugin/metadata/sqlite/models/vote_registration_delegation.go +26 -0
- package/database/plugin/metadata/sqlite/pool.go +240 -0
- package/database/plugin/metadata/sqlite/pparams.go +110 -0
- package/database/plugin/metadata/sqlite/tip.go +83 -0
- package/database/plugin/metadata/sqlite/utxo.go +292 -0
- package/database/plugin/metadata/store.go +168 -0
- package/database/plugin/option.go +190 -0
- package/database/plugin/plugin.go +20 -0
- package/database/plugin/register.go +118 -0
- package/database/pparams.go +145 -0
- package/database/tip.go +45 -0
- package/database/txn.go +147 -0
- package/database/types/types.go +74 -0
- package/database/types/types_test.go +83 -0
- package/database/utxo.go +263 -0
- package/dist/artifacts.json +1 -0
- package/dist/checksums.txt +22 -0
- package/dist/config.yaml +253 -0
- package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz +0 -0
- package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz.sbom.json +1 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz.sbom.json +1 -0
- package/dist/dingo_darwin_amd64_v1/dingo +0 -0
- package/dist/dingo_darwin_arm64_v8.0/dingo +0 -0
- package/dist/dingo_linux_amd64_v1/dingo +0 -0
- package/dist/dingo_linux_arm64_v8.0/dingo +0 -0
- package/dist/homebrew/dingo.rb +51 -0
- package/dist/metadata.json +1 -0
- package/event/event.go +141 -0
- package/event/event_test.go +115 -0
- package/event/metrics.go +44 -0
- package/go.mod +98 -0
- package/go.sum +358 -0
- package/internal/config/config.go +145 -0
- package/internal/config/config_test.go +118 -0
- package/internal/node/load.go +149 -0
- package/internal/node/node.go +176 -0
- package/internal/version/version.go +33 -0
- package/ledger/certs.go +113 -0
- package/ledger/chainsync.go +578 -0
- package/ledger/eras/allegra.go +154 -0
- package/ledger/eras/alonzo.go +156 -0
- package/ledger/eras/babbage.go +154 -0
- package/ledger/eras/byron.go +42 -0
- package/ledger/eras/conway.go +158 -0
- package/ledger/eras/eras.go +44 -0
- package/ledger/eras/mary.go +154 -0
- package/ledger/eras/shelley.go +164 -0
- package/ledger/error.go +19 -0
- package/ledger/event.go +50 -0
- package/ledger/metrics.go +53 -0
- package/ledger/queries.go +260 -0
- package/ledger/slot.go +127 -0
- package/ledger/slot_test.go +147 -0
- package/ledger/state.go +726 -0
- package/ledger/view.go +73 -0
- package/localstatequery.go +50 -0
- package/localtxmonitor.go +44 -0
- package/localtxsubmission.go +52 -0
- package/mempool/consumer.go +98 -0
- package/mempool/mempool.go +322 -0
- package/node.go +320 -0
- package/package.json +33 -0
- package/peergov/event.go +27 -0
- package/peergov/peer.go +67 -0
- package/peergov/peergov.go +290 -0
- package/peersharing.go +70 -0
- package/preview-local-topology.json +23 -0
- package/topology/topology.go +69 -0
- package/topology/topology_test.go +179 -0
- package/tracing.go +65 -0
- package/txsubmission.go +233 -0
- package/utxorpc/query.go +311 -0
- package/utxorpc/submit.go +395 -0
- package/utxorpc/sync.go +276 -0
- package/utxorpc/utxorpc.go +166 -0
- package/utxorpc/watch.go +310 -0
|
@@ -0,0 +1,192 @@
|
|
|
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 cardano
|
|
16
|
+
|
|
17
|
+
import (
|
|
18
|
+
"io"
|
|
19
|
+
"os"
|
|
20
|
+
"path"
|
|
21
|
+
"path/filepath"
|
|
22
|
+
|
|
23
|
+
"github.com/blinklabs-io/gouroboros/ledger/alonzo"
|
|
24
|
+
"github.com/blinklabs-io/gouroboros/ledger/byron"
|
|
25
|
+
"github.com/blinklabs-io/gouroboros/ledger/conway"
|
|
26
|
+
"github.com/blinklabs-io/gouroboros/ledger/shelley"
|
|
27
|
+
"gopkg.in/yaml.v3"
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
// CardanoNodeConfig represents the config.json/yaml file used by cardano-node
|
|
31
|
+
type CardanoNodeConfig struct {
|
|
32
|
+
path string
|
|
33
|
+
alonzoGenesis *alonzo.AlonzoGenesis
|
|
34
|
+
AlonzoGenesisFile string `yaml:"AlonzoGenesisFile"`
|
|
35
|
+
AlonzoGenesisHash string `yaml:"AlonzoGenesisHash"`
|
|
36
|
+
byronGenesis *byron.ByronGenesis
|
|
37
|
+
ByronGenesisFile string `yaml:"ByronGenesisFile"`
|
|
38
|
+
ByronGenesisHash string `yaml:"ByronGenesisHash"`
|
|
39
|
+
conwayGenesis *conway.ConwayGenesis
|
|
40
|
+
ConwayGenesisFile string `yaml:"ConwayGenesisFile"`
|
|
41
|
+
ConwayGenesisHash string `yaml:"ConwayGenesisHash"`
|
|
42
|
+
shelleyGenesis *shelley.ShelleyGenesis
|
|
43
|
+
ShelleyGenesisFile string `yaml:"ShelleyGenesisFile"`
|
|
44
|
+
ShelleyGenesisHash string `yaml:"ShelleyGenesisHash"`
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
func NewCardanoNodeConfigFromReader(r io.Reader) (*CardanoNodeConfig, error) {
|
|
48
|
+
var ret CardanoNodeConfig
|
|
49
|
+
dec := yaml.NewDecoder(r)
|
|
50
|
+
if err := dec.Decode(&ret); err != nil {
|
|
51
|
+
return nil, err
|
|
52
|
+
}
|
|
53
|
+
return &ret, nil
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
func NewCardanoNodeConfigFromFile(file string) (*CardanoNodeConfig, error) {
|
|
57
|
+
f, err := os.Open(file)
|
|
58
|
+
if err != nil {
|
|
59
|
+
return nil, err
|
|
60
|
+
}
|
|
61
|
+
c, err := NewCardanoNodeConfigFromReader(f)
|
|
62
|
+
if err != nil {
|
|
63
|
+
return nil, err
|
|
64
|
+
}
|
|
65
|
+
c.path = path.Dir(file)
|
|
66
|
+
if err := c.loadGenesisConfigs(); err != nil {
|
|
67
|
+
return nil, err
|
|
68
|
+
}
|
|
69
|
+
return c, nil
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
func (c *CardanoNodeConfig) loadGenesisConfigs() error {
|
|
73
|
+
// Load Byron genesis
|
|
74
|
+
if c.ByronGenesisFile != "" {
|
|
75
|
+
byronGenesisPath := c.ByronGenesisFile
|
|
76
|
+
if !filepath.IsAbs(byronGenesisPath) {
|
|
77
|
+
byronGenesisPath = path.Join(c.path, byronGenesisPath)
|
|
78
|
+
}
|
|
79
|
+
// TODO: check genesis file hash (#399)
|
|
80
|
+
byronGenesis, err := byron.NewByronGenesisFromFile(byronGenesisPath)
|
|
81
|
+
if err != nil {
|
|
82
|
+
return err
|
|
83
|
+
}
|
|
84
|
+
c.byronGenesis = &byronGenesis
|
|
85
|
+
}
|
|
86
|
+
// Load Shelley genesis
|
|
87
|
+
if c.ShelleyGenesisFile != "" {
|
|
88
|
+
shelleyGenesisPath := c.ShelleyGenesisFile
|
|
89
|
+
if !filepath.IsAbs(shelleyGenesisPath) {
|
|
90
|
+
shelleyGenesisPath = path.Join(c.path, shelleyGenesisPath)
|
|
91
|
+
}
|
|
92
|
+
// TODO: check genesis file hash (#399)
|
|
93
|
+
shelleyGenesis, err := shelley.NewShelleyGenesisFromFile(
|
|
94
|
+
shelleyGenesisPath,
|
|
95
|
+
)
|
|
96
|
+
if err != nil {
|
|
97
|
+
return err
|
|
98
|
+
}
|
|
99
|
+
c.shelleyGenesis = &shelleyGenesis
|
|
100
|
+
}
|
|
101
|
+
// Load Alonzo genesis
|
|
102
|
+
if c.AlonzoGenesisFile != "" {
|
|
103
|
+
alonzoGenesisPath := c.AlonzoGenesisFile
|
|
104
|
+
if !filepath.IsAbs(alonzoGenesisPath) {
|
|
105
|
+
alonzoGenesisPath = path.Join(c.path, alonzoGenesisPath)
|
|
106
|
+
}
|
|
107
|
+
// TODO: check genesis file hash (#399)
|
|
108
|
+
alonzoGenesis, err := alonzo.NewAlonzoGenesisFromFile(alonzoGenesisPath)
|
|
109
|
+
if err != nil {
|
|
110
|
+
return err
|
|
111
|
+
}
|
|
112
|
+
c.alonzoGenesis = &alonzoGenesis
|
|
113
|
+
}
|
|
114
|
+
// Load Conway genesis
|
|
115
|
+
if c.ConwayGenesisFile != "" {
|
|
116
|
+
conwayGenesisPath := c.ConwayGenesisFile
|
|
117
|
+
if !filepath.IsAbs(conwayGenesisPath) {
|
|
118
|
+
conwayGenesisPath = path.Join(c.path, conwayGenesisPath)
|
|
119
|
+
}
|
|
120
|
+
// TODO: check genesis file hash (#399)
|
|
121
|
+
conwayGenesis, err := conway.NewConwayGenesisFromFile(conwayGenesisPath)
|
|
122
|
+
if err != nil {
|
|
123
|
+
return err
|
|
124
|
+
}
|
|
125
|
+
c.conwayGenesis = &conwayGenesis
|
|
126
|
+
}
|
|
127
|
+
return nil
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// ByronGenesis returns the Byron genesis config specified in the cardano-node config
|
|
131
|
+
func (c *CardanoNodeConfig) ByronGenesis() *byron.ByronGenesis {
|
|
132
|
+
return c.byronGenesis
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// LoadByronGenesisFromReader loads a Byron genesis config from an io.Reader
|
|
136
|
+
// This is useful mostly for tests
|
|
137
|
+
func (c *CardanoNodeConfig) LoadByronGenesisFromReader(r io.Reader) error {
|
|
138
|
+
byronGenesis, err := byron.NewByronGenesisFromReader(r)
|
|
139
|
+
if err != nil {
|
|
140
|
+
return err
|
|
141
|
+
}
|
|
142
|
+
c.byronGenesis = &byronGenesis
|
|
143
|
+
return nil
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// ShelleyGenesis returns the Shelley genesis config specified in the cardano-node config
|
|
147
|
+
func (c *CardanoNodeConfig) ShelleyGenesis() *shelley.ShelleyGenesis {
|
|
148
|
+
return c.shelleyGenesis
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// LoadShelleyGenesisFromReader loads a Shelley genesis config from an io.Reader
|
|
152
|
+
// This is useful mostly for tests
|
|
153
|
+
func (c *CardanoNodeConfig) LoadShelleyGenesisFromReader(r io.Reader) error {
|
|
154
|
+
shelleyGenesis, err := shelley.NewShelleyGenesisFromReader(r)
|
|
155
|
+
if err != nil {
|
|
156
|
+
return err
|
|
157
|
+
}
|
|
158
|
+
c.shelleyGenesis = &shelleyGenesis
|
|
159
|
+
return nil
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// AlonzoGenesis returns the Alonzo genesis config specified in the cardano-node config
|
|
163
|
+
func (c *CardanoNodeConfig) AlonzoGenesis() *alonzo.AlonzoGenesis {
|
|
164
|
+
return c.alonzoGenesis
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// LoadAlonzoGenesisFromReader loads a Alonzo genesis config from an io.Reader
|
|
168
|
+
// This is useful mostly for tests
|
|
169
|
+
func (c *CardanoNodeConfig) LoadAlonzoGenesisFromReader(r io.Reader) error {
|
|
170
|
+
alonzoGenesis, err := alonzo.NewAlonzoGenesisFromReader(r)
|
|
171
|
+
if err != nil {
|
|
172
|
+
return err
|
|
173
|
+
}
|
|
174
|
+
c.alonzoGenesis = &alonzoGenesis
|
|
175
|
+
return nil
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// ConwayGenesis returns the Conway genesis config specified in the cardano-node config
|
|
179
|
+
func (c *CardanoNodeConfig) ConwayGenesis() *conway.ConwayGenesis {
|
|
180
|
+
return c.conwayGenesis
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// LoadConwayGenesisFromReader loads a Conway genesis config from an io.Reader
|
|
184
|
+
// This is useful mostly for tests
|
|
185
|
+
func (c *CardanoNodeConfig) LoadConwayGenesisFromReader(r io.Reader) error {
|
|
186
|
+
conwayGenesis, err := conway.NewConwayGenesisFromReader(r)
|
|
187
|
+
if err != nil {
|
|
188
|
+
return err
|
|
189
|
+
}
|
|
190
|
+
c.conwayGenesis = &conwayGenesis
|
|
191
|
+
return nil
|
|
192
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Copyright 2024 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 cardano
|
|
16
|
+
|
|
17
|
+
import (
|
|
18
|
+
"path"
|
|
19
|
+
"reflect"
|
|
20
|
+
"testing"
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
const (
|
|
24
|
+
testDataDir = "testdata"
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
var expectedCardanoNodeConfig = &CardanoNodeConfig{
|
|
28
|
+
path: testDataDir,
|
|
29
|
+
AlonzoGenesisFile: "alonzo-genesis.json",
|
|
30
|
+
AlonzoGenesisHash: "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874",
|
|
31
|
+
ByronGenesisFile: "byron-genesis.json",
|
|
32
|
+
ByronGenesisHash: "83de1d7302569ad56cf9139a41e2e11346d4cb4a31c00142557b6ab3fa550761",
|
|
33
|
+
ConwayGenesisFile: "conway-genesis.json",
|
|
34
|
+
ConwayGenesisHash: "9cc5084f02e27210eacba47af0872e3dba8946ad9460b6072d793e1d2f3987ef",
|
|
35
|
+
ShelleyGenesisFile: "shelley-genesis.json",
|
|
36
|
+
ShelleyGenesisHash: "363498d1024f84bb39d3fa9593ce391483cb40d479b87233f868d6e57c3a400d",
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
func TestCardanoNodeConfig(t *testing.T) {
|
|
40
|
+
tmpPath := path.Join(
|
|
41
|
+
testDataDir,
|
|
42
|
+
"config.json",
|
|
43
|
+
)
|
|
44
|
+
cfg, err := NewCardanoNodeConfigFromFile(tmpPath)
|
|
45
|
+
if err != nil {
|
|
46
|
+
t.Fatalf("unexpected error: %s", err)
|
|
47
|
+
}
|
|
48
|
+
// Create temp config without parsed genesis files to make comparison easier
|
|
49
|
+
tmpCfg := *cfg
|
|
50
|
+
tmpCfg.byronGenesis = nil
|
|
51
|
+
tmpCfg.shelleyGenesis = nil
|
|
52
|
+
tmpCfg.alonzoGenesis = nil
|
|
53
|
+
tmpCfg.conwayGenesis = nil
|
|
54
|
+
if !reflect.DeepEqual(&tmpCfg, expectedCardanoNodeConfig) {
|
|
55
|
+
t.Fatalf(
|
|
56
|
+
"did not get expected object\n got: %#v\n wanted: %#v\n",
|
|
57
|
+
tmpCfg,
|
|
58
|
+
expectedCardanoNodeConfig,
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
t.Run("Byron genesis", func(t *testing.T) {
|
|
62
|
+
g := cfg.ByronGenesis()
|
|
63
|
+
if g == nil {
|
|
64
|
+
t.Fatalf("got nil instead of ByronGenesis")
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
t.Run("Shelley genesis", func(t *testing.T) {
|
|
68
|
+
g := cfg.ShelleyGenesis()
|
|
69
|
+
if g == nil {
|
|
70
|
+
t.Fatalf("got nil instead of ShelleyGenesis")
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
t.Run("Alonzo genesis", func(t *testing.T) {
|
|
74
|
+
g := cfg.AlonzoGenesis()
|
|
75
|
+
if g == nil {
|
|
76
|
+
t.Fatalf("got nil instead of AlonzoGenesis")
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
t.Run("Conway genesis", func(t *testing.T) {
|
|
80
|
+
g := cfg.ConwayGenesis()
|
|
81
|
+
if g == nil {
|
|
82
|
+
t.Fatalf("got nil instead of ConwayGenesis")
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lovelacePerUTxOWord": 34482,
|
|
3
|
+
"executionPrices": {
|
|
4
|
+
"prSteps":
|
|
5
|
+
{
|
|
6
|
+
"numerator" : 721,
|
|
7
|
+
"denominator" : 10000000
|
|
8
|
+
},
|
|
9
|
+
"prMem":
|
|
10
|
+
{
|
|
11
|
+
"numerator" : 577,
|
|
12
|
+
"denominator" : 10000
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"maxTxExUnits": {
|
|
16
|
+
"exUnitsMem": 10000000,
|
|
17
|
+
"exUnitsSteps": 10000000000
|
|
18
|
+
},
|
|
19
|
+
"maxBlockExUnits": {
|
|
20
|
+
"exUnitsMem": 50000000,
|
|
21
|
+
"exUnitsSteps": 40000000000
|
|
22
|
+
},
|
|
23
|
+
"maxValueSize": 5000,
|
|
24
|
+
"collateralPercentage": 150,
|
|
25
|
+
"maxCollateralInputs": 3,
|
|
26
|
+
"costModels": {
|
|
27
|
+
"PlutusV1": {
|
|
28
|
+
"sha2_256-memory-arguments": 4,
|
|
29
|
+
"equalsString-cpu-arguments-constant": 1000,
|
|
30
|
+
"cekDelayCost-exBudgetMemory": 100,
|
|
31
|
+
"lessThanEqualsByteString-cpu-arguments-intercept": 103599,
|
|
32
|
+
"divideInteger-memory-arguments-minimum": 1,
|
|
33
|
+
"appendByteString-cpu-arguments-slope": 621,
|
|
34
|
+
"blake2b-cpu-arguments-slope": 29175,
|
|
35
|
+
"iData-cpu-arguments": 150000,
|
|
36
|
+
"encodeUtf8-cpu-arguments-slope": 1000,
|
|
37
|
+
"unBData-cpu-arguments": 150000,
|
|
38
|
+
"multiplyInteger-cpu-arguments-intercept": 61516,
|
|
39
|
+
"cekConstCost-exBudgetMemory": 100,
|
|
40
|
+
"nullList-cpu-arguments": 150000,
|
|
41
|
+
"equalsString-cpu-arguments-intercept": 150000,
|
|
42
|
+
"trace-cpu-arguments": 150000,
|
|
43
|
+
"mkNilData-memory-arguments": 32,
|
|
44
|
+
"lengthOfByteString-cpu-arguments": 150000,
|
|
45
|
+
"cekBuiltinCost-exBudgetCPU": 29773,
|
|
46
|
+
"bData-cpu-arguments": 150000,
|
|
47
|
+
"subtractInteger-cpu-arguments-slope": 0,
|
|
48
|
+
"unIData-cpu-arguments": 150000,
|
|
49
|
+
"consByteString-memory-arguments-intercept": 0,
|
|
50
|
+
"divideInteger-memory-arguments-slope": 1,
|
|
51
|
+
"divideInteger-cpu-arguments-model-arguments-slope": 118,
|
|
52
|
+
"listData-cpu-arguments": 150000,
|
|
53
|
+
"headList-cpu-arguments": 150000,
|
|
54
|
+
"chooseData-memory-arguments": 32,
|
|
55
|
+
"equalsInteger-cpu-arguments-intercept": 136542,
|
|
56
|
+
"sha3_256-cpu-arguments-slope": 82363,
|
|
57
|
+
"sliceByteString-cpu-arguments-slope": 5000,
|
|
58
|
+
"unMapData-cpu-arguments": 150000,
|
|
59
|
+
"lessThanInteger-cpu-arguments-intercept": 179690,
|
|
60
|
+
"mkCons-cpu-arguments": 150000,
|
|
61
|
+
"appendString-memory-arguments-intercept": 0,
|
|
62
|
+
"modInteger-cpu-arguments-model-arguments-slope": 118,
|
|
63
|
+
"ifThenElse-cpu-arguments": 1,
|
|
64
|
+
"mkNilPairData-cpu-arguments": 150000,
|
|
65
|
+
"lessThanEqualsInteger-cpu-arguments-intercept": 145276,
|
|
66
|
+
"addInteger-memory-arguments-slope": 1,
|
|
67
|
+
"chooseList-memory-arguments": 32,
|
|
68
|
+
"constrData-memory-arguments": 32,
|
|
69
|
+
"decodeUtf8-cpu-arguments-intercept": 150000,
|
|
70
|
+
"equalsData-memory-arguments": 1,
|
|
71
|
+
"subtractInteger-memory-arguments-slope": 1,
|
|
72
|
+
"appendByteString-memory-arguments-intercept": 0,
|
|
73
|
+
"lengthOfByteString-memory-arguments": 4,
|
|
74
|
+
"headList-memory-arguments": 32,
|
|
75
|
+
"listData-memory-arguments": 32,
|
|
76
|
+
"consByteString-cpu-arguments-intercept": 150000,
|
|
77
|
+
"unIData-memory-arguments": 32,
|
|
78
|
+
"remainderInteger-memory-arguments-minimum": 1,
|
|
79
|
+
"bData-memory-arguments": 32,
|
|
80
|
+
"lessThanByteString-cpu-arguments-slope": 248,
|
|
81
|
+
"encodeUtf8-memory-arguments-intercept": 0,
|
|
82
|
+
"cekStartupCost-exBudgetCPU": 100,
|
|
83
|
+
"multiplyInteger-memory-arguments-intercept": 0,
|
|
84
|
+
"unListData-memory-arguments": 32,
|
|
85
|
+
"remainderInteger-cpu-arguments-model-arguments-slope": 118,
|
|
86
|
+
"cekVarCost-exBudgetCPU": 29773,
|
|
87
|
+
"remainderInteger-memory-arguments-slope": 1,
|
|
88
|
+
"cekForceCost-exBudgetCPU": 29773,
|
|
89
|
+
"sha2_256-cpu-arguments-slope": 29175,
|
|
90
|
+
"equalsInteger-memory-arguments": 1,
|
|
91
|
+
"indexByteString-memory-arguments": 1,
|
|
92
|
+
"addInteger-memory-arguments-intercept": 1,
|
|
93
|
+
"chooseUnit-cpu-arguments": 150000,
|
|
94
|
+
"sndPair-cpu-arguments": 150000,
|
|
95
|
+
"cekLamCost-exBudgetCPU": 29773,
|
|
96
|
+
"fstPair-cpu-arguments": 150000,
|
|
97
|
+
"quotientInteger-memory-arguments-minimum": 1,
|
|
98
|
+
"decodeUtf8-cpu-arguments-slope": 1000,
|
|
99
|
+
"lessThanInteger-memory-arguments": 1,
|
|
100
|
+
"lessThanEqualsInteger-cpu-arguments-slope": 1366,
|
|
101
|
+
"fstPair-memory-arguments": 32,
|
|
102
|
+
"modInteger-memory-arguments-intercept": 0,
|
|
103
|
+
"unConstrData-cpu-arguments": 150000,
|
|
104
|
+
"lessThanEqualsInteger-memory-arguments": 1,
|
|
105
|
+
"chooseUnit-memory-arguments": 32,
|
|
106
|
+
"sndPair-memory-arguments": 32,
|
|
107
|
+
"addInteger-cpu-arguments-intercept": 197209,
|
|
108
|
+
"decodeUtf8-memory-arguments-slope": 8,
|
|
109
|
+
"equalsData-cpu-arguments-intercept": 150000,
|
|
110
|
+
"mapData-cpu-arguments": 150000,
|
|
111
|
+
"mkPairData-cpu-arguments": 150000,
|
|
112
|
+
"quotientInteger-cpu-arguments-constant": 148000,
|
|
113
|
+
"consByteString-memory-arguments-slope": 1,
|
|
114
|
+
"cekVarCost-exBudgetMemory": 100,
|
|
115
|
+
"indexByteString-cpu-arguments": 150000,
|
|
116
|
+
"unListData-cpu-arguments": 150000,
|
|
117
|
+
"equalsInteger-cpu-arguments-slope": 1326,
|
|
118
|
+
"cekStartupCost-exBudgetMemory": 100,
|
|
119
|
+
"subtractInteger-cpu-arguments-intercept": 197209,
|
|
120
|
+
"divideInteger-cpu-arguments-model-arguments-intercept": 425507,
|
|
121
|
+
"divideInteger-memory-arguments-intercept": 0,
|
|
122
|
+
"cekForceCost-exBudgetMemory": 100,
|
|
123
|
+
"blake2b-cpu-arguments-intercept": 2477736,
|
|
124
|
+
"remainderInteger-cpu-arguments-constant": 148000,
|
|
125
|
+
"tailList-cpu-arguments": 150000,
|
|
126
|
+
"encodeUtf8-cpu-arguments-intercept": 150000,
|
|
127
|
+
"equalsString-cpu-arguments-slope": 1000,
|
|
128
|
+
"lessThanByteString-memory-arguments": 1,
|
|
129
|
+
"multiplyInteger-cpu-arguments-slope": 11218,
|
|
130
|
+
"appendByteString-cpu-arguments-intercept": 396231,
|
|
131
|
+
"lessThanEqualsByteString-cpu-arguments-slope": 248,
|
|
132
|
+
"modInteger-memory-arguments-slope": 1,
|
|
133
|
+
"addInteger-cpu-arguments-slope": 0,
|
|
134
|
+
"equalsData-cpu-arguments-slope": 10000,
|
|
135
|
+
"decodeUtf8-memory-arguments-intercept": 0,
|
|
136
|
+
"chooseList-cpu-arguments": 150000,
|
|
137
|
+
"constrData-cpu-arguments": 150000,
|
|
138
|
+
"equalsByteString-memory-arguments": 1,
|
|
139
|
+
"cekApplyCost-exBudgetCPU": 29773,
|
|
140
|
+
"quotientInteger-memory-arguments-slope": 1,
|
|
141
|
+
"verifySignature-cpu-arguments-intercept": 3345831,
|
|
142
|
+
"unMapData-memory-arguments": 32,
|
|
143
|
+
"mkCons-memory-arguments": 32,
|
|
144
|
+
"sliceByteString-memory-arguments-slope": 1,
|
|
145
|
+
"sha3_256-memory-arguments": 4,
|
|
146
|
+
"ifThenElse-memory-arguments": 1,
|
|
147
|
+
"mkNilPairData-memory-arguments": 32,
|
|
148
|
+
"equalsByteString-cpu-arguments-slope": 247,
|
|
149
|
+
"appendString-cpu-arguments-intercept": 150000,
|
|
150
|
+
"quotientInteger-cpu-arguments-model-arguments-slope": 118,
|
|
151
|
+
"cekApplyCost-exBudgetMemory": 100,
|
|
152
|
+
"equalsString-memory-arguments": 1,
|
|
153
|
+
"multiplyInteger-memory-arguments-slope": 1,
|
|
154
|
+
"cekBuiltinCost-exBudgetMemory": 100,
|
|
155
|
+
"remainderInteger-memory-arguments-intercept": 0,
|
|
156
|
+
"sha2_256-cpu-arguments-intercept": 2477736,
|
|
157
|
+
"remainderInteger-cpu-arguments-model-arguments-intercept": 425507,
|
|
158
|
+
"lessThanEqualsByteString-memory-arguments": 1,
|
|
159
|
+
"tailList-memory-arguments": 32,
|
|
160
|
+
"mkNilData-cpu-arguments": 150000,
|
|
161
|
+
"chooseData-cpu-arguments": 150000,
|
|
162
|
+
"unBData-memory-arguments": 32,
|
|
163
|
+
"blake2b-memory-arguments": 4,
|
|
164
|
+
"iData-memory-arguments": 32,
|
|
165
|
+
"nullList-memory-arguments": 32,
|
|
166
|
+
"cekDelayCost-exBudgetCPU": 29773,
|
|
167
|
+
"subtractInteger-memory-arguments-intercept": 1,
|
|
168
|
+
"lessThanByteString-cpu-arguments-intercept": 103599,
|
|
169
|
+
"consByteString-cpu-arguments-slope": 1000,
|
|
170
|
+
"appendByteString-memory-arguments-slope": 1,
|
|
171
|
+
"trace-memory-arguments": 32,
|
|
172
|
+
"divideInteger-cpu-arguments-constant": 148000,
|
|
173
|
+
"cekConstCost-exBudgetCPU": 29773,
|
|
174
|
+
"encodeUtf8-memory-arguments-slope": 8,
|
|
175
|
+
"quotientInteger-cpu-arguments-model-arguments-intercept": 425507,
|
|
176
|
+
"mapData-memory-arguments": 32,
|
|
177
|
+
"appendString-cpu-arguments-slope": 1000,
|
|
178
|
+
"modInteger-cpu-arguments-constant": 148000,
|
|
179
|
+
"verifySignature-cpu-arguments-slope": 1,
|
|
180
|
+
"unConstrData-memory-arguments": 32,
|
|
181
|
+
"quotientInteger-memory-arguments-intercept": 0,
|
|
182
|
+
"equalsByteString-cpu-arguments-constant": 150000,
|
|
183
|
+
"sliceByteString-memory-arguments-intercept": 0,
|
|
184
|
+
"mkPairData-memory-arguments": 32,
|
|
185
|
+
"equalsByteString-cpu-arguments-intercept": 112536,
|
|
186
|
+
"appendString-memory-arguments-slope": 1,
|
|
187
|
+
"lessThanInteger-cpu-arguments-slope": 497,
|
|
188
|
+
"modInteger-cpu-arguments-model-arguments-intercept": 425507,
|
|
189
|
+
"modInteger-memory-arguments-minimum": 1,
|
|
190
|
+
"sha3_256-cpu-arguments-intercept": 0,
|
|
191
|
+
"verifySignature-memory-arguments": 1,
|
|
192
|
+
"cekLamCost-exBudgetMemory": 100,
|
|
193
|
+
"sliceByteString-cpu-arguments-intercept": 150000
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{ "bootStakeholders":
|
|
2
|
+
{ "021e737009040bf7f1e7b1bcc148f29d748d4a6b561902c95e4a9f36": 1
|
|
3
|
+
, "0bc82ced9544980b9ffe7f64b1538bbda6804a5cc32c8035485e184b": 1
|
|
4
|
+
, "18ed9844deef98cf9ba8b39791dede0538d2d2fa79bf67ef37dcc826": 1
|
|
5
|
+
, "66cfa84ad0ee5ca8586244c8393007cf3d9622d77cfa03fd4f35065b": 1
|
|
6
|
+
, "76c4d6c68c0ef81ae364411a84e52ce66089ed006ca29adfc0227901": 1
|
|
7
|
+
, "8cc6b89fec65cc83d34b7bab2e6494db631d8476a86625767dd0c2a0": 1
|
|
8
|
+
, "e90060fdc085ac9f63cdb3b32ba1d84e0f7eb98561687b213b4c8770": 1
|
|
9
|
+
}
|
|
10
|
+
, "heavyDelegation":
|
|
11
|
+
{ "021e737009040bf7f1e7b1bcc148f29d748d4a6b561902c95e4a9f36":
|
|
12
|
+
{ "omega": 0
|
|
13
|
+
, "issuerPk":
|
|
14
|
+
"6hSFCotivD08t02n43RMiaF9LzwtYVrFMu/WX6ShfEsxfdXFL5Y6c+DwHSZOCywU0RJz5er2icIO03UytC9NTg=="
|
|
15
|
+
, "delegatePk":
|
|
16
|
+
"JEnSVQTPGriTx1+lAMkKhCNsMBDNPGw+NiEvNPh4ui6IdvxrO+WkQPTy5U865XB4VFvi/zb7d+H1bilnztQNBg=="
|
|
17
|
+
, "cert":
|
|
18
|
+
"558952d17442e8cc73f0c7dd606e329b38ed2ec0c1f83fe2567d28b21ef2223d2d23640cd0531f75832b50e519631c48643fcfaa7168851645dce07b90d87f0e"
|
|
19
|
+
}
|
|
20
|
+
, "0bc82ced9544980b9ffe7f64b1538bbda6804a5cc32c8035485e184b":
|
|
21
|
+
{ "omega": 0
|
|
22
|
+
, "issuerPk":
|
|
23
|
+
"MJ7IskKU8GKk0Eeg3zhfSOK1DDVXOMHD2V/zhEpODUtL9YB0Y7sXnbZfg3+Df05hskP5Jz+dZvdC6DH/dP9jmQ=="
|
|
24
|
+
, "delegatePk":
|
|
25
|
+
"hwO7NJL7LfAk5e/QG61FKcdORoK60tvprE3063Muh4EQKrWA6l7t23B2GziK8D0hRO0j5W1Gzpn8WW69XLIlKA=="
|
|
26
|
+
, "cert":
|
|
27
|
+
"2bccf50d0c3cbb03dd29cfba817e8ba615db3d7722b41b264ad08722e548cfe83d069b29d13e490823d7519ecdd9940ea49573f6027056c4bd58da1adf75020e"
|
|
28
|
+
}
|
|
29
|
+
, "18ed9844deef98cf9ba8b39791dede0538d2d2fa79bf67ef37dcc826":
|
|
30
|
+
{ "omega": 0
|
|
31
|
+
, "issuerPk":
|
|
32
|
+
"pXbW4Jak8maeuWiosvrurykKnqDSHswUjroonSDS3fTnWS+BKe+vjT4zZJNKhQ33KbagiHVJ5CJUNggfsCtG2g=="
|
|
33
|
+
, "delegatePk":
|
|
34
|
+
"rbJAZp3kWCUvp8dnLR6qsgpGU+qKAFow4NHYKWiKCkfm1qFCFONob50N1IbNWCGWAhg38ZPTvBazTasjsfj6yQ=="
|
|
35
|
+
, "cert":
|
|
36
|
+
"89e1638e31fd3d402cecb897ba773d8c2c11c2d3cff2462b266e21461539b1a4fe8fb528e159b9af473799b51e49aa5b5816a88f10c484aa7cef7ad12850830a"
|
|
37
|
+
}
|
|
38
|
+
, "66cfa84ad0ee5ca8586244c8393007cf3d9622d77cfa03fd4f35065b":
|
|
39
|
+
{ "omega": 0
|
|
40
|
+
, "issuerPk":
|
|
41
|
+
"/LGZjmmcAMRisP7Rf454GM2QUKgj2aAyqE+iQo2PIEhcistFOlT+idtbLTceZAnQcwwPJDtTcNi+EnPQyscZOg=="
|
|
42
|
+
, "delegatePk":
|
|
43
|
+
"rinFUiKKCPPFY0ULEKn1SPRgLVmOS3jdTXDtrxK6VI1I11G3uBS1Olxi0mQSN3kf+B3hm/xHkuUDVNaSXNiBeQ=="
|
|
44
|
+
, "cert":
|
|
45
|
+
"3e7f30bb68c5bc4d23c2a730ac154a188a1fd45aac3f438efd380303171443d2ca4f50e5a1ff66b40ae3da64697f2599956ae06c21b73fa828b8c0dc9fb27302"
|
|
46
|
+
}
|
|
47
|
+
, "76c4d6c68c0ef81ae364411a84e52ce66089ed006ca29adfc0227901":
|
|
48
|
+
{ "omega": 0
|
|
49
|
+
, "issuerPk":
|
|
50
|
+
"9EE85tTLdSSR4T1Xoy6n9wr6jlbavCdfp9oQKusskO3DSSyNqRYS7QzYQ96j/WnphUey63082YkKijMfF9A4eA=="
|
|
51
|
+
, "delegatePk":
|
|
52
|
+
"dvyHDkXg8LFtb0K6Sitl8OGSEZPvfCVQYLDR6Au6t6/ROvlerMKQ8uri4fG7hQQzbHKtdKWgv94t+zuFJTQ1fw=="
|
|
53
|
+
, "cert":
|
|
54
|
+
"5ec0ed46ae7e575bdb089f1bceca3b2689b13a7162fe08578fe60ba64607fffaa507412a97652c3c81cc0ef93ff404cf809a628ae19faba1a035fca0505c1d04"
|
|
55
|
+
}
|
|
56
|
+
, "8cc6b89fec65cc83d34b7bab2e6494db631d8476a86625767dd0c2a0":
|
|
57
|
+
{ "omega": 0
|
|
58
|
+
, "issuerPk":
|
|
59
|
+
"Hr5S5PAxf9HSB4FzmtZzaFcXrNrctrI5XUrDrnCkOUTX6rhbtOMkXU3sWVDOvU6LNSSr3/Ws2+iCYZIr7LmTWg=="
|
|
60
|
+
, "delegatePk":
|
|
61
|
+
"FaLH2b5H/XS31YRnm98N6fP4Etx6m+GbniVAXMwOp8KhYXPKBJBsX/EjIy3pSkvRBhGCjsycB0yrDxWMi5ZsIQ=="
|
|
62
|
+
, "cert":
|
|
63
|
+
"10f06304cceb42071605ebba67b308c7568e5e6fe0d773c58f7e8c13bc8d8a340f70a4fd5e1b4a1c1db1de5c7646802bbc929d6c82d7adb8a77cb6ad77eac50a"
|
|
64
|
+
}
|
|
65
|
+
, "e90060fdc085ac9f63cdb3b32ba1d84e0f7eb98561687b213b4c8770":
|
|
66
|
+
{ "omega": 0
|
|
67
|
+
, "issuerPk":
|
|
68
|
+
"B2R+VXzy3c8bxncdOpQ2Z/tblxRNQO8AXQ0OsJDQvZYnLeGQcLD78kyYLpi3nfuS4SfnLar23NV4yiEVwaw+Yw=="
|
|
69
|
+
, "delegatePk":
|
|
70
|
+
"nACHGIBacymrKwn07iW/a5ZKJCPZ2cKQqeXw3ivR7WOYVUuufWhZlCoUTZ7rtBqoDaexblUQwkC7hA7AmNA3FA=="
|
|
71
|
+
, "cert":
|
|
72
|
+
"b5440daa05f7fae557df46e4f1b7c5802b86f465daad1137e315abf6e72f1c877207276abb8dcba86e18e42d39b34c2f0fa82ba2919944cdc8e2e5264baa450b"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
, "startTime": 1666656000
|
|
76
|
+
, "nonAvvmBalances":
|
|
77
|
+
{ "FHnt4NL7yPXjpZtYj1YUiX9QYYUZGXDT9gA2PJXQFkTSMx3EgawXK5BUrCHdhe2":
|
|
78
|
+
"0"
|
|
79
|
+
, "FHnt4NL7yPXk7D87qAWEmfnL7wSQ9AzBU2mjZt3eM48NSCbygxgzAU6vCGiRZEW":
|
|
80
|
+
"0"
|
|
81
|
+
, "FHnt4NL7yPXpazQsTdJ3Gp1twQUo4N5rrgGbRNSzchjchPiApc1k4CvqDMcdd7H":
|
|
82
|
+
"0"
|
|
83
|
+
, "FHnt4NL7yPXtNo1wLCLZyGTMfAvB14h8onafiYkM7B69ZwvGgXeUyQWfi7FPrif":
|
|
84
|
+
"0"
|
|
85
|
+
, "FHnt4NL7yPXtmi4mAjD43V3NB3shDs1gCuHNcMLPsRWjaw1b2yRV2xad8S8V6aq":
|
|
86
|
+
"0"
|
|
87
|
+
, "FHnt4NL7yPXvDWHa8bVs73UEUdJd64VxWXSFNqetECtYfTd9TtJguJ14Lu3feth":
|
|
88
|
+
"30000000000000000"
|
|
89
|
+
, "FHnt4NL7yPXvNSRpCYydjRr7koQCrsTtkovk5uYMimgqMJX2DyrEEBqiXaTd8rG":
|
|
90
|
+
"0"
|
|
91
|
+
, "FHnt4NL7yPY9rTvdsCeyRnsbzp4bN7XdmAZeU5PzA1qR2asYmN6CsdxJw4YoDjG":
|
|
92
|
+
"0"
|
|
93
|
+
}
|
|
94
|
+
, "blockVersionData":
|
|
95
|
+
{ "scriptVersion": 0
|
|
96
|
+
, "slotDuration": "20000"
|
|
97
|
+
, "maxBlockSize": "2000000"
|
|
98
|
+
, "maxHeaderSize": "2000000"
|
|
99
|
+
, "maxTxSize": "4096"
|
|
100
|
+
, "maxProposalSize": "700"
|
|
101
|
+
, "mpcThd": "20000000000000"
|
|
102
|
+
, "heavyDelThd": "300000000000"
|
|
103
|
+
, "updateVoteThd": "1000000000000"
|
|
104
|
+
, "updateProposalThd": "100000000000000"
|
|
105
|
+
, "updateImplicit": "10000"
|
|
106
|
+
, "softforkRule":
|
|
107
|
+
{ "initThd": "900000000000000"
|
|
108
|
+
, "minThd": "600000000000000"
|
|
109
|
+
, "thdDecrement": "50000000000000"
|
|
110
|
+
}
|
|
111
|
+
, "txFeePolicy":
|
|
112
|
+
{ "summand": "155381000000000" , "multiplier": "43946000000" }
|
|
113
|
+
, "unlockStakeEpoch": "18446744073709551615"
|
|
114
|
+
}
|
|
115
|
+
, "protocolConsts": { "k": 432 , "protocolMagic": 2 }
|
|
116
|
+
, "avvmDistr": {}
|
|
117
|
+
}
|