Chain events tracker and indexer
Go to file
Mohamed Sohail 2bbc05bb45
major refactor: sig ch, remove conf settings, jetstream pub, ci
* This is a major refactor and includes general improvements around

- context cancellation
- build settings
- jetstream pub sub
- logging
- docker builds
- conf loading
2023-03-08 14:30:40 +00:00
.github major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
cmd/service major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
dev major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
docs docs: fix minor mistakes 2023-01-19 15:27:29 +03:00
internal major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
migrations docs: add functionality, and usage 2023-01-11 09:29:16 +00:00
pkg/fetch refactor: filters, pipeline, minor fixes, remove RPC support (#27) 2023-02-24 13:28:30 +03:00
.deepsource.toml add: ci integration 2023-01-06 08:07:19 +00:00
.dockerignore major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
.env.example major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
.gitignore dev: add profiler 2023-01-16 10:57:05 +00:00
.goreleaser.yaml major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
Dockerfile major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
LICENSE release: v0.1.0-alpha 2023-01-05 11:45:09 +00:00
Makefile major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
README.md docs: fix minor mistakes 2023-01-19 15:27:29 +03:00
config.toml major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
go.mod major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
go.sum major refactor: sig ch, remove conf settings, jetstream pub, ci 2023-03-08 14:30:40 +00:00
queries.sql release: v0.1.0-alpha 2023-01-05 11:45:09 +00:00

README.md

cic-chain-events

GitHub release (latest by date) GitHub Workflow Status Go Report Card

CIC Chain Events

Filters live (and past) transactions on Celo and emits relevant events to a NATS JetStream sink for further processing/indexing.

Prerequisites

  • Linux OS (amd64) or Docker
  • Postgres >= 14
  • Celo geth with GraphQL API enabled
  • NATS server with JetStream enabled

Usage

The provided docker-compose.yaml is the fastest way to get up and running. Bring up the Postgres and NATS conatiners with docker-compose up -d

1. Run migrations

Run the SQL migrations inside the migrations folder with psql or tern (recommended).

2. Update the config

The base config is described in config.toml. Values can be overriden with env variables e.g. to disable metrics, set METRICS_GO_PROCESS=false.

3. Start the service

Compiling the binary

Run make build or download pre-compiled binaries from the releases page.

Then start the service with ./cic-chain-events

Optional flags:

  • -config - config.toml file path
  • -debug - Enable/disable debug level logs
  • -queries - queries.sql file path

Docker

To pull the pre-built docker image:

docker pull ghcr.io/grassrootseconomics/cic-chain-events/cic-chain-events:latest

Or to build it:

DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f docker-compose.build.yaml build --progress plain

4. NATS JetStream consumer

A consumer with the following NATS JetStream config is required:

  • Durable
  • Stream: CHAIN.* (See config.toml for stream subjects)

Benthos (Benthos can act as a JetStream consumer) example.

# config.yaml
input:
  label: jetstream
  nats_jetstream:
    urls:
      - nats://127.0.0.1:4222
    subject: "CHAIN.*"
    durable: benthos
    deliver: all
output:
  stdout:
    codec: lines

Then run:

benthos -c config.yaml

Functionality

Read more here.

License

AGPL-3.0.