@blinklabs/dingo 0.21.0 → 0.23.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/AGENTS.md +115 -0
- package/ARCHITECTURE.md +839 -0
- package/README.md +431 -44
- package/RELEASE_NOTES.md +91 -0
- package/{devnet.sh → devmode.sh} +5 -5
- package/dingo.yaml.example +107 -2
- package/docker-compose.yml +51 -0
- package/package.json +1 -1
package/{devnet.sh → devmode.sh}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
|
|
3
|
-
# Copyright
|
|
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
|
|
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/*
|
package/dingo.yaml.example
CHANGED
|
@@ -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
|
-
#
|
|
128
|
-
|
|
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
|