GitHub - blinklabs-io/dingo: Cardano Blockchain Data Node (original) (raw)

Dingo

Dingo Logo
GitHub Go Report Card Go Reference Discord

Dingo

⚠️ This is a work in progress and is currently under heavy development

Note: On Windows systems, named pipes are used instead of Unix sockets for node-to-client communication.

dingo screenshot

Running

Dingo supports configuration via both a YAML config file (dingo.yaml) and uses environment variables to modify its own behavior.

A sample configuration file is provided at dingo.yaml.example.You can copy and edit this file to configure Dingo for your local or production environment: This behavior can be changed via the following environment variables:

Database Plugins

Dingo supports pluggable storage backends for both blob storage (blocks, transactions) and metadata storage. This allows you to choose the best storage solution for your use case.

Available Plugins

Blob Storage Plugins:

Metadata Storage Plugins:

Plugin Selection

Plugins can be selected via command-line flags, environment variables, or configuration file:

Command line

./dingo --blob gcs --metadata sqlite

Environment variables

DINGO_DATABASE_BLOB_PLUGIN=gcs DINGO_DATABASE_METADATA_PLUGIN=sqlite

Configuration file (dingo.yaml)

database: blob: plugin: "gcs" metadata: plugin: "sqlite"

Plugin Configuration

Each plugin supports specific configuration options. See dingo.yaml.example for detailed configuration examples.

BadgerDB Options:

Google Cloud Storage Options:

AWS S3 Options:

SQLite Options:

Listing Available Plugins

You can see all available plugins and their descriptions:

Plugin Development

For information on developing custom storage plugins, see PLUGIN_DEVELOPMENT.md.

Example

Running on mainnet (:sweat_smile:):

CARDANO_NETWORK=mainnet CARDANO_CONFIG=path/to/cardano/configs/mainnet/config.json ./dingo

Note: you can find cardano configuration files athttps://github.com/blinklabs-io/docker-cardano-configs/tree/main/config

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!

Features

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.

Development / Building

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