evm-history
# build with local profile, without tests, with docker image build
# (!!!) Use java 21 to build, because lombok do not support java 23+
mvn clean install
# with tests, test using dev services, so no need to run any infra
mvn clean install -DskipTests=false
# run infra
cd {project-root}/src/main/docker
docker compose up -d
# run project from docker
docker compose -f project.yml up -d
# for runing project from IDE, just run io.evm.history.Main.main(String... args)
# Open dashboard
http://localhost:8080/
# stop the app from docker
cd {project-root}/src/main/docker
docker compose -f project.yml down
# stop the infra
docker compose down
# if you want the volumes also to be deleted
docker compose down -v
Name | URL | Description |
---|---|---|
Dashboard | localhost:8080 |
Dashboard endpoint |
Healthcheck | localhost:8080/q/health |
Healthcheck endpoint |
Metrics | localhost:8080/q/metrics |
Metrics endpoint. Return metrics in 'Prometheus' format |
- top 10 contracts called in the transactions that make up a blocks (by amount of calls)
- For each top 10 contract calculate
- All RPC calls (blocks, receipts, contract code) are
batched
. See: - Added
throttling
andretries
to address rate limits and service unavailability. See: - Data is
yearly partitioned
, so we assume to be ok on performance even with whole blockchain data (testnet for sure). See: - Data is
indexed
, so we assume to be ok on search performance even with whole blockchain data (testnet for sure). See: - Partial search indexed as
edge_ngram
, so we assume to be ok on search performance even with whole blockchain data (testnet for sure). See:
- Switch contracts cache to Redis or DB calls
- Track other contract interactions from logs
- Get ABI and add tx ABI parsing
- Try to add contract code decompilation if there is no ABI available