⚠️ WARNING: Dingo is under heavy active development and is not yet ready for mainnet block production use. It should only be used on testnets (preview, preprod, musashi, dijkstra) and devnets. Do not use Dingo on mainnet for block production with real funds.
Dingo is Blink Labs' Cardano node implementation in Go. It implements the Ouroboros networking and consensus protocols, validates ledger state, and provides pluggable storage and client interfaces.
- Node operators: Dingo guides, including the quick start, configuration and storage modes, bootstrap and data maintenance, and stake pool operation.
- Application developers: APIs and archive services and using Dingo with Cardano CLI.
- The Kupo-compatible API is disabled by default. To enable it, configure
DINGO_PLUGINS_API_KUPO_CONFIG_PORTand use API storage mode. - Dingo contributors: development guide, local DevNet, benchmarks and profiling, architecture, database design, and plugin development.
| Area | Location |
|---|---|
| Application composition and CLI | node.go, internal/node/, cmd/dingo/ |
| Ledger validation and state | ledger/, ledgerstate/ |
| Ouroboros protocols and peer management | ouroboros/, connmanager/, peergov/, topology/ |
| Persistence and transaction pool | database/, mempool/ |
| Client APIs and Dingo archive service | api/, bark/ |
The @blinklabs/dingo NPM package installs the matching release binary for
Linux, FreeBSD or macOS on amd64/arm64. It requires Node.js 22 or
later and tar. Run it with npx @blinklabs/dingo --help, or install it with
npm install --global @blinklabs/dingo and run dingo --help. Arguments, exit
codes and termination signals are passed to the release binary. Installation
fails if the platform has no released binary or the archive cannot be fetched
and extracted. If install scripts were disabled for a global installation,
npm rebuild --global @blinklabs/dingo runs the installer.
npm test checks the packed package and local, global and npx invocation using
an isolated release archive fixture.
Use Go 1.26 or later and make:
make build
./dingo --help
./dingo devnet
# Keep the chain between runs, then reset it when needed:
./dingo devnet --data-dir ./.dingo-devnet
./dingo devnet --data-dir ./.dingo-devnet --resetThe npm package supports the same commands, including
npx @blinklabs/dingo devnet --data-dir ./.dingo-devnet.
dingo devnet writes test funding credentials to cardano/keys/ under its
state directory: faucet.skey, faucet.vkey, and faucet.addr. The faucet
address starts with 900,000 test ADA; use its signing key to make transactions
on network magic 42. With the persistent command above, read the address with
cat ./.dingo-devnet/cardano/keys/faucet.addr. Without --data-dir, the files
are in the temporary directory printed at startup and are removed on exit.
These public test keys must never hold real funds. See the
local DevNet guide for details.
Run the test suite with race detection using make test. See the
development guide for repository checks, integration
environments, and profiling. For basic node setup and usage, follow the
operator quick start.
