{"id":19107360,"url":"https://github.com/smartcontractkit/blockchain-rpc-exporter","last_synced_at":"2026-03-12T01:37:17.108Z","repository":{"id":37941659,"uuid":"486069628","full_name":"smartcontractkit/Blockchain-RPC-Exporter","owner":"smartcontractkit","description":"Prometheus exporter for EVM compatible RPC endpoints.","archived":false,"fork":false,"pushed_at":"2025-08-29T06:51:54.000Z","size":207,"stargazers_count":23,"open_issues_count":2,"forks_count":8,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-10-21T00:37:54.063Z","etag":null,"topics":["blockchain","prometheus","python","rpc"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smartcontractkit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-27T06:16:41.000Z","updated_at":"2025-08-29T06:45:14.000Z","dependencies_parsed_at":"2024-05-06T19:39:41.575Z","dependency_job_id":"87a77fdc-6b0b-441f-8ed0-2c49e2a2f1e7","html_url":"https://github.com/smartcontractkit/Blockchain-RPC-Exporter","commit_stats":null,"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/smartcontractkit/Blockchain-RPC-Exporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2FBlockchain-RPC-Exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2FBlockchain-RPC-Exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2FBlockchain-RPC-Exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2FBlockchain-RPC-Exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smartcontractkit","download_url":"https://codeload.github.com/smartcontractkit/Blockchain-RPC-Exporter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartcontractkit%2FBlockchain-RPC-Exporter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30412088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"ssl_error","status_checked_at":"2026-03-12T00:40:08.439Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","prometheus","python","rpc"],"created_at":"2024-11-09T04:12:18.056Z","updated_at":"2026-03-12T01:37:17.085Z","avatar_url":"https://github.com/smartcontractkit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blockchain RPC Exporter\n\nThe exporter is used to scrape metrics from blockchain RPC endpoints. The purpose of this exporter is to perform black-box testing on RPC endpoints.\n\n## Metrics\n\nExporter currently supports all EVM-compatible chains. In addition, there is limited support for the following chains:\n\n- Cardano (wss)\n- Conflux (wss)\n- Solana (https \u0026 wss)\n- Bitcoin (https)\n- Dogecoin (https)\n- Filecoin (https)\n- Starknet (https)\n- Aptos (https)\n- XRPL (https)\n\n## Available Metrics\n\n# Disclaimer\n\nPlease note that this tool is in the early development stage and should not be used to influence critical business decisions.\nThe project in its current form suits our short-term needs and will receive limited support. We encourage you to fork the project and extend it with additional functionality you might need.\n\n## Development\n\nYou should install [pre-commit](https://pre-commit.com/) so that automated linting and formatting checks are performed before each commit.\n\nRun:\n\n```bash\npip install pre-commit\npre-commit install\n```\n\n### Running locally\n\n1. Make sure you have python3 installed (\u003e3.11)\n2. Set up your python environment\n\n```bash\npip3 install virtualenv\nvirtualenv venv\nsource venv/bin/activate\npip install -r requirements.txt\npip install -r requirements-dev.txt\n```\n\n1. Generate valid exporter config and validation file. For example see [config example](config/exporter_example/config.yml) and [validation example](config/exporter_example/validation.yml).\n2. Export paths of generated configuration files relative to `src/exporter.py`:\n\n```bash\nexport VALIDATION_FILE_PATH=\"validation.yml\" # For example if we saved validation config file in src/validation.yml\nexport CONFIG_FILE_PATH=\"config.yml\"  # For example if we saved config file in src/config.yml\n```\n\n3. Finally you can run the exporter\n\n```bash\npython exporter.py\n```\n\n### Run with docker-compose\n\n1. Generate valid exporter config and validation file. For example see [config example](config/exporter_example/config.yml) and [validation example](config/exporter_example/validation.yml).\n2. Export paths of generated configuration files relative to `docker-compose.yml`:\n\n```bash\nexport VALIDATION_FILE_PATH=\"src/validation.yml\" # For example if we saved validation config file in src/validation.yml\nexport CONFIG_FILE_PATH=\"src/config.yml\"  # For example if we saved config file in src/config.yml\n```\n\n3. Execute\n\n```bash\ndocker-compose build\ndocker-compose up\ncurl localhost:8000/metrics # Exporter\ncurl localhost:3000         # Grafana\ncurl localhost:9090         # Prometheus\n```\n\n### Testing\n\nTesting is performed using [pytest](https://docs.pytest.org/) run by [coverage.py](https://coverage.readthedocs.io/) to generate test coverage reporting.\n[pylint](https://pylint.readthedocs.io/) is used to lint the pyhton code.\nThese dependencies can be found in the [requirements-dev.txt](requirements-dev.txt) file. Unit testing and linting is performed on every commit push to the repository. 90% test coverage and no linter errors/warnings are a requirement for the tests to pass.\n\n#### Testing Locally (venv)\n\nTests can be run locally in the virtual environment.\n\n1. Run the unit tests with coverage.py from within the `src` directory.\n\n```bash\ncoverage run --branch -m pytest\n```\n\n2. Generate the coverage report. To view the report open the generated `index.html` file in a browser.\n\n```bash\ncoverage html\n```\n\n3. Run the linter to find any errors/warnings.\n\n```bash\npylint src/*py\n```\n\n#### Testing Locally (docker)\n\nThe tests and linter can be run using docker by building the `test` docker stage.\n\n1. Build the `test` stage in the `Dockerfile`.\n\n```bash\ndocker build --target test .\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartcontractkit%2Fblockchain-rpc-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmartcontractkit%2Fblockchain-rpc-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartcontractkit%2Fblockchain-rpc-exporter/lists"}