Skip to content

wowica/fester

Repository files navigation

Fester

Fester Logo

An Elixir based Cardano Indexer.

Roadmap

Phase 1 - MVP

  • Index outputs by address.
  • Persist to local database (SQLite)
  • HTTP endpoint for querying assets by address
  • Metrics printed to standard out
  • Tested with Preview + Mainnet
  • Run with Docker

Phase 2

  • Ability to stop/resume syncing.
  • In-memory indexer (look into ETS)
  • Metrics LiveView Dashboard
  • Metrics exported to Prometheus

Phase 3

  • Clustered indexer with (BEAM) process distribution
  • Adjust persistence to fit with a clustered environment (look into Mnesia)
  • Index more data (TBD)
  • Add more endpoints (TBD)

How to run

Set a OGMIOS_URL environment variable to the URL of the OGMIOS instance you want to connect to.

export OGMIOS_URL=http://localhost:1337

Run the application with iex -S mix. This should immediately start the syncing process. Defaults to syncing from the origin so it will take a while to catch up.

To sync from a specific point in the chain, set the sync_from option on lib/fester/chain_sync.ex.

Listing assets for a particular address:

Fester.Indexer.list_assets_by_address("addr_test1...")

or a straight-up list of UTXOs:

Fester.Indexer.list_utxos_by_address("addr_test1...")

Running with Docker

Build the Docker image with:

docker build -t fester .

Populate the proper environment variables in docker_run.sh and run it with:

./docker_run.sh

HTTP API

A GET request to the /api/address/$ADDR/assets endpoint returns the assets for an address.

About

An Elixir based Cardano indexer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published