Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@metmirr/hydra-indexer

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@metmirr/hydra-indexer

Block index builder for substrate based chains

latest
npmnpm
Version
2.0.1-beta.17
Version published
Maintainers
1
Created
Source

Hydra Indexer

Hydra Indexer is a daemon that ingests raw substrate data such as events and extrinsics from a substrate chain and saves it into a Postgres database. It is typically used in conjunction with Hydra Indexer Gateway providing a GraphQL API interface.

Installation

The indexer exits if an unrecoverable error occurs. It is therefore advisable to run the indexer with a process manager, such as PM2 or Docker.

Prerequisites

  • Node 12.x
  • Postgres database
  • Redis instances
  • (Optional) Docker

Environment variables

The indexer is set up using the following environment variables

VariableDefaultRequiredDescription
WS_PROVIDER_ENDPOINT_URI-YesSubstrate API endpoint to connect
REDIS_URI-YesRedis instance URI
DB_NAME-YesDatabase name
DB_PORT-YesDatabase port
DB_HOST-YesDatabase host
DB_USER-YesDatabase user
DB_PASS-YesDatabase password
TYPES_JSON-NoPath to a JSON type definition with custom Substrate types
BLOCK_HEIGHT0NoBlock height to start indexing. Ignored if the database already contains indexed blocks

Manual setup

Run

yarn && yarn build

For setting up the database and running the migrations, run yarn db:bootstrap. Make sure the environment variables DB_* are set.

For starting the indexer, run yarn start:prod.

Docker image

There are pre-built runnable docker images in joystream/hydra-indexer docker repo. The default command is yarn start:prod.

First, bootstrap the database:

docker run -e DB_HOST=... -e DB_PORT=... -e DB_NAME=... -e DB_PASS=... -e DB_USER=... joystream/hydra-indexer sh -c 'yarn db:bootstrap'

Then run the indexer (make sure that all the required environment variables are set)

docker run -e ... joystream/hydra-indexer

Advanced environment variables

Some optional environment variables are available for fine-tuning.

VariableDefaultDescription
BLOCK_CACHE_TTL_SEC60*60TTL for processed blocks in the Redis cache
INDEXER_HEAD_TTL_SEC60*15TTL for the indexer head block entry
WORKERS_NUMBER5Number of concurrent workers fetching the blocks
BLOCK_PRODUCER_FETCH_RETRIES3Number of attempts fetching each a block before throwing an error. Set to -1 for indefinite attempts
SUBSTRATE_API_TIMEOUT1000 * 60 * 5Timeout in (milliseconds) for API calls
NEW_BLOCK_TIMEOUT_MS60 * 10 * 1000Panic if no blockchain blocks have been received within this time

FAQs

Package last updated on 29 Mar 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts