Skip to main content

Get Started with Ogmios

Ogmios is a protocol translation service written in Haskell running on top of cardano-node. Instead of speaking to a Cardano node directly, applications can speak to Ogmios using a language they know, and Ogmios translates it to the node and back to the applications.

Ogmios doesn’t do much more than what the node itself does. It’s pretty much as low-level as things can get with the Cardano network. For many applications, this is too low in the abstraction layer and they would be better off using higher-level services like cardano-graphql, Rosetta, or Blockfrost.

Installation#

The easiest way to get started with Ogmios is to use docker. Since Ogmios requires the presence of a Cardano node, it makes sense to use docker-compose to orchestrate both services. A compose file is available on the Ogmios repository, get it via:

git clone --depth 1 https://github.com/CardanoSolutions/ogmios.gitcd ogmios

Then, start the components stack using:

docker-compose up

If you prefer to build everything from source or without docker, please head to the Ogmios website.

Dashboard#

You should now be able to access the dashboard on http://localhost:1337 with a real-time visualization of some of the server runtime metrics.

img

Query metrics#

The dashboard is powered by JSON responses served by http://localhost:1337/health.

curl -H 'Accept: application/json' http://localhost:1337/health

JSON response:

{    "metrics": {        "totalUnrouted": 1,        "totalMessages": 30029,        "runtimeStats": {            "gcCpuTime": 1233009354,            "cpuTime": 81064672549,            "maxHeapSize": 41630,            "currentHeapSize": 1014        },        "totalConnections": 10,        "sessionDurations": {            "max": 57385,            "mean": 7057,            "min": 0        },        "activeConnections": 0    },    "startTime": "2021-03-15T16:16:41.470782977Z",    "lastTipUpdate": "2021-03-15T16:28:36.853115034Z",    "lastKnownTip": {        "hash": "c29428f386c701c1d1ba1fd259d4be78921ee9ee6c174eac898245ceb55e8061",        "blockNo": 5034297,        "slot": 15520688    },    "networkSynchronization": 0.99,    "currentEra": "Mary"}

Ogmios documentation#

To dive further into Ogmios and how to interact with the Ouroboros mini-protocols, visit ogmios.dev.