Dingo does not support a configuration file of its own and uses environment variables to modify its own behavior.
This behavior can be changed via the following environment variables:
CARDANO_BIND_ADDR
- IP address to bind for listening (default:
0.0.0.0
)
- IP address to bind for listening (default:
CARDANO_CONFIG
- Full path to the Cardano node configuration (default:
./config/cardano/preview/config.json
) - Use your own configuration files for different networks
- Genesis configuration files are read from the same directory by default
- Full path to the Cardano node configuration (default:
CARDANO_DATABASE_PATH
- A directory which contains the ledger database files (default:
.dingo
) - This is the location for persistent data storage for the ledger
- A directory which contains the ledger database files (default:
CARDANO_INTERSECT_TIP
- Ignore prior chain history and start from current position (default:
false
) - This is experimental and will likely break... use with caution
- Ignore prior chain history and start from current position (default:
CARDANO_METRICS_PORT
- TCP port to bind for listening for Prometheus metrics (default:
12798
)
- TCP port to bind for listening for Prometheus metrics (default:
CARDANO_NETWORK
- Named Cardano network (default:
preview
)
- Named Cardano network (default:
CARDANO_PRIVATE_BIND_ADDR
- IP address to bind for listening for Ouroboros NtC (default:
127.0.0.1
)
- IP address to bind for listening for Ouroboros NtC (default:
CARDANO_PRIVATE_PORT
- TCP port to bind for listening for Ouroboros NtC (default:
3002
)
- TCP port to bind for listening for Ouroboros NtC (default:
CARDANO_RELAY_PORT
- TCP port to bind for listening for Ouroboros NtN (default:
3001
)
- TCP port to bind for listening for Ouroboros NtN (default:
CARDANO_SOCKET_PATH
- UNIX socket path for listening (default:
dingo.socket
) - This socket speaks Ouroboros NtC and is used by client software
- UNIX socket path for listening (default:
CARDANO_TOPOLOGY
- Full path to the Cardano node topology (default: "")
CARDANO_UTXORPC_PORT
- TCP port to bind for listening for UTxO RPC (default:
9090
)
- TCP port to bind for listening for UTxO RPC (default:
TLS_CERT_FILE_PATH
- SSL certificate to use, requiresTLS_KEY_FILE_PATH
(default: empty)TLS_KEY_FILE_PATH
- SSL certificate key to use (default: empty)
Running on mainnet (:sweat_smile:):
CARDANO_NODE=mainnet ./dingo
Dingo will drop a dingo.socket
file which can be used by other clients, such
as cardano-cli
or software like adder
or kupo
. This has only had limited
testing, so success/failure reports are very welcome and encouraged!
- Network
- UTxO RPC
- Ouroboros
- Node-to-node
- ChainSync
- BlockFetch
- TxSubmission2
- Node-to-client
- ChainSync
- LocalTxMonitor
- LocalTxSubmission
- LocalStateQuery
- Peer governor
- Topology config
- Peer churn
- Ledger peers
- Connection manager
- Inbound connections
- Node-to-client over TCP
- Node-to-client over UNIX socket
- Node-to-node over TCP
- Outbound connections
- Node-to-node over TCP
- Inbound connections
- Node-to-node
- Ledger
- Blocks
- Block storage
- Chain selection
- UTxO tracking
- Protocol parameters
- Certificates
- Pool registration
- Stake registration/delegation
- Governance
- Transaction validation
- UTxO rules
- Smart contracts
- Blocks
- Mempool
- Accept transactions from local clients
- Distribute transactions to other nodes
- Validation of transaction on add
- Consumer tracking
- Transaction purging on chain update
Additional planned features can be found in our issue tracker and project boards.
Catalyst Fund 12 - Go Node (Dingo)
Catalyst Fund 13 - Archive Node
Check the issue tracker for known issues. Due to rapid development, bugs happen especially as there is functionality which has not yet been developed.
This requires Go 1.23 or better is installed. You also need make
.
# Build
make
# Run
./dingo
You can also run the code without building a binary, first
go run ./cmd/dingo/