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.
#
InstallationThe 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.
#
DashboardYou should now be able to access the dashboard on http://localhost:1337 with a real-time visualization of some of the server runtime metrics.
#
Query metricsThe dashboard is powered by JSON responses served by http://localhost:1337/health.
- curl
- wget
curl -H 'Accept: application/json' http://localhost:1337/health
wget --header='Accept: application/json' -qO- 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 documentationTo dive further into Ogmios and how to interact with the Ouroboros mini-protocols, visit ogmios.dev.