Skip to content

Ouroboros

Dolos exposes a unix socket implementing Cardano’s node-to-client Ouroboros mini-protocols. This provides drop-in compatibility with tools that normally connect to a Cardano full node, such as cardano-cli, Ogmios, and other ecosystem tooling.

Supported Mini-protocols

Dolos implements the following node-to-client mini-protocols:

Mini-protocolDescription
ChainSyncFollow the chain tip and receive new blocks in real time
LocalStateQueryQuery the current ledger state

LocalStateQuery Coverage

The following local state queries are supported:

QueryDescription
GetSystemStartGet the system start time
GetChainBlockNoGet the current chain block number
GetChainPointGet the current chain tip point
GetCurrentEraGet the current era index
GetInterpreterGet the era history / interpreter summary
GetCurrentPParamsGet the current protocol parameters
GetLedgerTipGet the ledger tip point
GetEpochNoGet the current epoch number
GetUTxOByAddressQuery UTxOs for a set of addresses
GetStakePoolsList all registered stake pools
GetStakePoolParamsGet parameters for specific stake pools
GetPoolStateGet detailed state for specific pools
GetStakeSnapshotsGet stake snapshots for specific pools
GetAccountStateGet the global account state (treasury/reserves)

Usage

If enabled via configuration, Dolos will create a unix socket file accepting Ouroboros node-to-client connections. The default socket path is dolos.socket in the working directory, but this can be changed via configuration.

Using with cardano-cli

Point cardano-cli to the Dolos socket using the CARDANO_NODE_SOCKET_PATH environment variable:

Terminal window
export CARDANO_NODE_SOCKET_PATH=./dolos.socket
cardano-cli query tip --testnet-magic 1

Using with Ogmios

Start Ogmios pointing to the Dolos socket:

Terminal window
ogmios --node-socket ./dolos.socket --node-config config.json

Configuration

The serve.ouroboros section controls the options for the Ouroboros endpoint.

propertytypeexample
listen_pathstring”dolos.socket”
  • listen_path: the file path for the unix socket that will listen for Ouroboros node-to-client mini-protocols.

This is an example of the serve.ouroboros fragment within a dolos.toml configuration file.

[serve.ouroboros]
listen_path = "dolos.socket"

Check the Configuration Schema for detailed info on how to set this up.