Skip to content

Latest commit

 

History

History
93 lines (63 loc) · 3.13 KB

README.md

File metadata and controls

93 lines (63 loc) · 3.13 KB

Oasis Indexer

ci-lint ci-test

The official indexer for the Oasis Network.

Docker Development

You can create and run the Oasis Indexer with docker compose. Keep reading to get started, or take a look at our Docker docs for more detail.

Configuration

Download the current network's genesis document to the docker/node/etc directory. You will need this to run the Oasis Node container.

Build

From the repository root, you can run:

$ make docker

Run

From the repository root, you can run:

$ make start-docker

The analyzer will run migrations on start based on files in storage/migrations. See Generating Migrations for information on generating new migrations.

Query

Now you can query the Oasis Indexer API

$ curl -X GET http://0.0.0.0:8008/v1

For a full list of endpoints see our API docs.

Local Development

Below are instructions for running the Oasis Indexer locally, without Docker.

Oasis Node

You will need to run a local node for development purposes. You will need to set the Unix socket in the config/local-dev.yaml file while running an instance of the Oasis Indexer. For example, this will be unix:/node/data/internal.sock in Docker.

Database

You will need to run a local PostgreSQL DB.

For example, you can start a local Docker instance of Postgres with:

make postgres

Indexer

You should be able to make oasis-indexer and run ./oasis-indexer --config config/local-dev.yml from the repository root. This will start the entire indexer, but you can start each of its constituent services independently as well. See ./oasis-indexer --help for more details.

Once the indexer has started, you can query the Oasis Indexer API

$ curl -X GET http://localhost:8008/v1

Generating Migrations

The Oasis Indexer supports generating SQL migrations from a genesis document to initialize indexed state. You can do so as follows:

oasis-indexer generate \
  --generator.genesis_file path/to/your/genesis.json
  --generator.migration_file storage/migrations/nnnn_example.up.sql

or directly from a running node

oasis-indexer generate \
  --generator.network_config_file path/to/your/config.yaml
  --generator.migration_file storage/migrations/nnnn_example.up.sql

See our naming convention for how to aptly name your migrations.