Opentorch is a full-stack application to provide you with monitoring and observability for any blockchain.
Make sure you have docker-compose installed and Docker is running
docker-compose up
This will spin up the whole infrastructure.
To start monitoring a chain, you need to add it to the application
curl --location 'http://0.0.0.0:8000/api/internal/chains' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data '{
"network": "mainnet",
"chain": "<HUMAN_READABLE_CHAIN_IDENTIFIER>",
"name": "<CHAIN_NAME>",
"rpcUrl": "<CHAIN_RPC_ENDPOINT>",
"chainType": "EVM",
"externalId": <EXTERNAL_CHAIN_ID_NUMERIC>,
"externalIdHex": "<EXTERNAL_CHAIN_ID_HEX>",
"explorerUrl": "<EXPLORER_URL>",
"explorerApiUrl": "<EXPLORER_API_URL>",
"collectionName": "blocks.custom_rpc",
"blocksPerDay": 7000,
"supportedInUi": true,
"mainnet": true
}'
After adding a chain, the pipeline will start ingesting blocks from it.
To start seeing data in the UI, add a contract from any added chain.
Calculates query results on chain metric data for periodically running monitors
Extracts metrics from block data and sinks them to a metrics database (TimescaleDB)
Decodes transactions, logs and errors
Fetches block data via graphql
Ingests block data from chain RPC
Handles metric queries
CRUD for creating periodic queries (monitors)
Triggers block ingestion for custom chains
Handles CRUD for chains and contracts. Also responsible for debugging and simulations.
Main gateway infront of service subgraphs