@blinklabs/dingo 0.21.0 → 0.23.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.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- # Copyright 2025 Blink Labs Software
3
+ # Copyright 2026 Blink Labs Software
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -21,11 +21,11 @@ export CARDANO_DEV_MODE=true
21
21
 
22
22
  DEBUG=${DEBUG:-false}
23
23
 
24
- conf=$(dirname $CARDANO_CONFIG)
24
+ conf="$(dirname "$CARDANO_CONFIG")"
25
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
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
29
 
30
30
  echo resetting .devnet
31
31
  rm -rf .devnet/*
@@ -33,6 +33,8 @@ database:
33
33
  # Path prefix within the bucket
34
34
  prefix: ""
35
35
  s3:
36
+ # AWS Endpoint
37
+ endpoint: ""
36
38
  # AWS S3 bucket name
37
39
  bucket: ""
38
40
  # AWS region
@@ -124,8 +126,64 @@ privatePort: 3002
124
126
  # Can be overridden with the port environment variable
125
127
  relayPort: 3001
126
128
 
127
- # TCP port to bind for listening for UTxO RPC
128
- utxorpcPort: 9090
129
+ # Storage mode controls how much data is persisted.
130
+ # - "core": Only consensus data (UTxOs, certs, pools, pparams). Suitable for
131
+ # block producers and relay nodes with no APIs enabled.
132
+ # - "api": Core data plus full transaction metadata (witnesses, scripts, datums,
133
+ # redeemers). Required when any API is enabled.
134
+ # APIs will refuse to start if storage mode is not "api".
135
+ #
136
+ # Can be overridden with DINGO_STORAGE_MODE
137
+ storageMode: "core"
138
+
139
+ # API ports (0 = disabled, default)
140
+ # All APIs require storageMode: "api"
141
+ #
142
+ # UTxO RPC gRPC API port
143
+ # Can be overridden with DINGO_UTXORPC_PORT
144
+ utxorpcPort: 0
145
+ # Blockfrost-compatible REST API port
146
+ # Can be overridden with DINGO_BLOCKFROST_PORT
147
+ blockfrostPort: 0
148
+ # Mesh (Coinbase Rosetta) REST API port
149
+ # Can be overridden with DINGO_MESH_PORT
150
+ meshPort: 0
151
+
152
+ # base url of bark archive server
153
+ barkBaseUrl: ""
154
+
155
+ # number of slots from tip within which blocks
156
+ # will not be found in the bark archive
157
+ barkSecurityWindow: 10000
158
+
159
+ # TCP port bind for listening for bark RPC calls
160
+ barkPort: 0
161
+
162
+ # ---
163
+ # Deployment pattern examples (uncomment one block):
164
+ #
165
+ # Relay node (core storage, no APIs):
166
+ # storageMode: "core"
167
+ # blockProducer: false
168
+ #
169
+ # Data node (API storage, one or more API ports enabled):
170
+ # storageMode: "api"
171
+ # utxorpcPort: 9090
172
+ # blockfrostPort: 3100
173
+ #
174
+ # Validator / block producer (core storage, no APIs):
175
+ # storageMode: "core"
176
+ # blockProducer: true
177
+ # shelleyVrfKey: "/keys/vrf.skey"
178
+ # shelleyKesKey: "/keys/kes.skey"
179
+ # shelleyOperationalCertificate: "/keys/opcert.cert"
180
+ # # Optional forging tolerances (0 = defaults)
181
+ # forgeSyncToleranceSlots: 0
182
+ # forgeStaleGapThresholdSlots: 0
183
+ #
184
+ # Dev mode (isolated, forge blocks, no outbound):
185
+ # runMode: "dev"
186
+ # ---
129
187
 
130
188
  # Ignore prior chain history and start from current tip (default: false)
131
189
  # This is experimental and may break — use with caution
@@ -136,6 +194,13 @@ intersectTip: false
136
194
  # Default: 1048576 (1 MB)
137
195
  mempoolCapacity: 1048576
138
196
 
197
+ # Forging tolerances (0 = defaults)
198
+ # forgeSyncToleranceSlots controls how far the local chain can lag the upstream
199
+ # tip before forging is skipped. forgeStaleGapThresholdSlots controls when to
200
+ # log an error if the chain tip is far ahead of the slot clock.
201
+ forgeSyncToleranceSlots: 0
202
+ forgeStaleGapThresholdSlots: 0
203
+
139
204
  # Operational mode: "serve" (default), "load", or "dev"
140
205
  # - serve: Full node with network connectivity (default)
141
206
  # - load: Batch import from ImmutableDB (requires immutableDbPath)
@@ -177,3 +242,43 @@ activePeersTopologyQuota: 0
177
242
  activePeersGossipQuota: 0
178
243
  # Active peer slots for ledger sources
179
244
  activePeersLedgerQuota: 0
245
+
246
+ # Cache configuration for tiered CBOR cache system
247
+ # This controls the in-memory caching of UTxO and transaction CBOR data
248
+ cache:
249
+ # Number of entries in the hot UTxO cache (LFU eviction)
250
+ # Default: 50000
251
+ hotUtxoEntries: 50000
252
+ # Number of entries in the hot transaction cache (LFU eviction)
253
+ # Default: 10000
254
+ hotTxEntries: 10000
255
+ # Maximum memory in bytes for hot transaction cache
256
+ # Default: 268435456 (256 MB)
257
+ hotTxMaxBytes: 268435456
258
+ # Number of blocks to keep in the block LRU cache
259
+ # Default: 500
260
+ blockLruEntries: 500
261
+ # Number of recent blocks to warm up on startup
262
+ # Default: 1000
263
+ warmupBlocks: 1000
264
+ # Wait for cache warmup to complete before serving requests
265
+ # Default: true
266
+ warmupSync: true
267
+
268
+ # Mithril snapshot bootstrap configuration
269
+ # Use 'dingo mithril sync' or 'dingo sync --mithril' to bootstrap from a snapshot
270
+ mithril:
271
+ # Enable Mithril integration (default: true)
272
+ enabled: true
273
+ # Override aggregator URL (auto-detected from network if empty)
274
+ # Supported networks: mainnet, preprod, preview
275
+ aggregatorUrl: ""
276
+ # Directory for downloading snapshot archives
277
+ # If empty, a randomized temporary directory is created automatically
278
+ # downloadDir: ""
279
+ # Remove temporary files after loading completes
280
+ # Default: true
281
+ cleanupAfterLoad: true
282
+ # Verify the Mithril certificate chain from snapshot back to genesis
283
+ # Default: true
284
+ verifyCertificates: true
@@ -0,0 +1,51 @@
1
+ # Dingo Cardano Node - Docker Compose Configuration
2
+ #
3
+ # Usage:
4
+ # docker compose up -d # Start with defaults (preview network)
5
+ # CARDANO_NETWORK=mainnet docker compose up -d # Start on mainnet
6
+ #
7
+ # With Mithril snapshot bootstrap (first run only):
8
+ # RESTORE_SNAPSHOT=1 docker compose up -d
9
+
10
+ services:
11
+ # --------------------------------------------------------------------------
12
+ # Basic relay node
13
+ # --------------------------------------------------------------------------
14
+ dingo:
15
+ build:
16
+ context: .
17
+ dockerfile: Dockerfile
18
+ image: ghcr.io/blinklabs-io/dingo:latest
19
+ restart: unless-stopped
20
+ environment:
21
+ - CARDANO_NETWORK=${CARDANO_NETWORK:-preview}
22
+ - CARDANO_DATABASE_PATH=/data/db
23
+ - DINGO_SOCKET_PATH=/ipc/dingo.socket
24
+ # Uncomment to enable debug logging
25
+ # - DINGO_DEBUG=1
26
+ # Uncomment to bootstrap from Mithril snapshot on first run
27
+ # - RESTORE_SNAPSHOT=1
28
+ ports:
29
+ # Ouroboros Node-to-Node (relay port)
30
+ - "3001:3001"
31
+ # Prometheus metrics (localhost only by default)
32
+ - "127.0.0.1:12798:12798"
33
+ # UTxO RPC (gRPC, localhost only by default)
34
+ - "127.0.0.1:9090:9090"
35
+ volumes:
36
+ # Persistent database storage
37
+ - dingo-data:/data/db
38
+ # Unix socket for cardano-cli and other NtC clients
39
+ - dingo-ipc:/ipc
40
+ healthcheck:
41
+ test: ["CMD", "wget", "-qO-", "http://127.0.0.1:12798/metrics"]
42
+ interval: 30s
43
+ timeout: 5s
44
+ start_period: 60s
45
+ retries: 3
46
+
47
+ volumes:
48
+ dingo-data:
49
+ driver: local
50
+ dingo-ipc:
51
+ driver: local
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blinklabs/dingo",
3
- "version": "0.21.0",
3
+ "version": "0.23.1",
4
4
  "description": "Dingo is a Cardano blockchain data node",
5
5
  "main": "index.js",
6
6
  "bin": {