Indexer-only service: syncs all the public info from an ixo blockchain to an instance of PostgreSQL (reads are served by ixo-blocksync-api). It gets fed from a ixo-blocksync-core database in order to speed up indexing and put less strain on nodes, which means you need an ixo-blocksync-core database connection in order to run this.
For now the only source for information is a ixo-blocksync-core database connection, but we plan on expanding that to different sources in the near future
Requirements
git clone https://github.com/ixofoundation/ixo-blocksync.git
cd ixo-blocksync/Copy .env.example to .env and configure. If this step is skipped, ixo-blocksync will use .env.example as the configuration by default.
- Create a database called Blocksync
yarn install
yarn build
yarn startRequirements
git clone https://github.com/ixofoundation/ixo-blocksync.git
cd ixo-blocksync/Copy .env.example to .env and configure. If this step is skipped, ixo-blocksync will use .env.example as the configuration by default.
Don't use quotations when asign env vars for docker
Delete the seed folder in src/seed/* if you do not plan to import data from json
Create a role(e.g. app_user) in the DB for postgress to work
docker build -t ixofoundation/ixo-blocksync:latest .
docker compose up -dixo-blocksync is the write half of the blocksync pair: it indexes the chain into PostgreSQL and runs the write-side cron jobs (tokenomics account refresh, entity externalId resolution, claim schemaType fetch from cellnode). All query traffic — GraphQL and REST — is served by ixo-blocksync-api from the same database.
The only public endpoints are for health monitoring:
| Path | Description |
|---|---|
GET / |
Plain liveness text ("Indexer is Running") — used by k8s probes |
GET /healthz |
DB round-trip returning the latest indexed chainId + blockHeight, so monitoring can verify the indexer is alive and progressing |