diff --git a/README.md b/README.md index 319e5ea..61e6293 100644 --- a/README.md +++ b/README.md @@ -2,35 +2,45 @@ ![GitHub Tag](https://img.shields.io/github/v/tag/grassrootseconomics/eth-tracker) -A fast and lightweight tracker designed to monitor EVM blockchains for live and historical transaction events, including reverted transactions. It filters these events and publishes them to NATS for further processing. +A fast and lightweight tracker designed to monitor EVM blockchains for live and +historical transaction events, including reverted transactions. It filters these +events and publishes them to NATS for further processing. -It applies deduplication at the NATS level, making it safe to run in a distributed fashion. +It applies deduplication at the NATS level, making it safe to run in a +distributed fashion. -Note: To run it against an L2/EVM chain, you will need to manually add a replace directive in the `go.mod` file pointing to the EVM chain's `*geth` compatible source code. This will allow the tracker to process transaction types other than Ethereum's `0x0, 0x1 and 0x2`. +Note: To run it against an L2/EVM chain, you will need to manually add a replace +directive in the `go.mod` file pointing to the EVM chain's `*geth` compatible +source code. This will allow the tracker to process transaction types other than +Ethereum's `0x0, 0x1 and 0x2`. ### CEL2 -We maintain a CEL2 compatible tracker (source and container image) on the `cel2` branch. +We maintain a CEL2 compatible tracker (source and container image) on the `cel2` +branch. ## Getting Started A `Makefile` is also provided to build the required binaries to run eth-tracker. -### Bootstrap Cache +### Cache Bootstrap -An optional binary, `eth-tracker-cache-bootstrap`, is included to build the Redis cache with all relevant Grassroots Economics smart contract and user addresses to allow filtering on very busy smart contracts e.g. cUSD. +During startup `eth-tracker` will always build the cache with all relevant +Grassroots Economics smart contract and user addresses to allow filtering on +very busy smart contracts e.g. cUSD. The cache will auto-update based on any additions/removals from all indexes. ### Prerequisites -* Git -* Docker -* NATS server -* Redis server -* Access to a Celo RPC node +- Git +- Docker +- NATS server +- Redis server (Optional) +- Access to a Celo RPC node -See [docker-compose.yaml](dev/docker-compose.yaml) for an example on how to run and deploy a single instance. +See [docker-compose.yaml](dev/docker-compose.yaml) for an example on how to run +and deploy a single instance. ### 1. Build the Docker image @@ -48,9 +58,12 @@ docker images ### 2. Run NATS and Redis For an example, see `dev/docker-compose.yaml`. + ### 3. Update config values -See `.env.example` on how to override default values defined in `config.toml` using env variables. Alternatively, mount your own config.toml either during build time or Docker runtime. +See `.env.example` on how to override default values defined in `config.toml` +using env variables. Alternatively, mount your own config.toml either during +build time or Docker runtime. ```bash # Override only specific config values @@ -58,8 +71,8 @@ nano .env.example mv .env.example .env ``` -Refer to [`config.toml`](config.toml) to understand different config value settings. - +Refer to [`config.toml`](config.toml) to understand different config value +settings. ### 4. Run the tracker @@ -86,7 +99,8 @@ docker compose up ### Monitoring with NATS CLI -Install NATS CLI from [here](https://github.com/nats-io/natscli?tab=readme-ov-file#installation). +Install NATS CLI from +[here](https://github.com/nats-io/natscli?tab=readme-ov-file#installation). ```bash nats subscribe "TRACKER.*" @@ -94,8 +108,11 @@ nats subscribe "TRACKER.*" ### DB File -A `tracker_db` file is created on the first run. This keeps track of all blocks missed by the processor to attempt a retry later on. This file should not be deleted if you want to maintain resume support for historical tracking across restarts. +A `tracker_db` file is created on the first run. This keeps track of all blocks +missed by the processor to attempt a retry later on. This file should not be +deleted if you want to maintain resume support for historical tracking across +restarts. ## License -[AGPL-3.0](LICENSE). \ No newline at end of file +[AGPL-3.0](LICENSE).