{"id":40818976,"url":"https://github.com/eth-act/zkboost","last_synced_at":"2026-04-08T11:01:04.946Z","repository":{"id":293882916,"uuid":"983707234","full_name":"eth-act/zkboost","owner":"eth-act","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-02T15:02:55.000Z","size":6926,"stargazers_count":17,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-04-03T03:17:16.940Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eth-act.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"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":"2025-05-14T19:41:21.000Z","updated_at":"2026-04-02T14:54:38.000Z","dependencies_parsed_at":"2026-01-01T14:09:45.286Z","dependency_job_id":null,"html_url":"https://github.com/eth-act/zkboost","commit_stats":null,"previous_names":["eth-applied-research-group/poost","eth-act/zkboost"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/eth-act/zkboost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-act%2Fzkboost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-act%2Fzkboost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-act%2Fzkboost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-act%2Fzkboost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eth-act","download_url":"https://codeload.github.com/eth-act/zkboost/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-act%2Fzkboost/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31551891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2026-01-21T21:44:45.053Z","updated_at":"2026-04-08T11:01:04.940Z","avatar_url":"https://github.com/eth-act.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" width=\"270\" alt=\"zkboost logo\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cb\u003eEIP 8025 Proof Node Implementation\u003c/b\u003e\u003c/p\u003e\n\nzkboost is an EIP 8025 Proof Node implementation for CL to request execution proof generation and verification.\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Quick Start](#quick-start)\n- [Manual Build](#manual-build)\n  - [Prerequisites](#prerequisites)\n- [Configuration](#configuration)\n- [API](#api)\n- [Observability](#observability)\n  - [Docker Compose with Grafana](#docker-compose-with-grafana)\n  - [Available Metrics](#available-metrics)\n- [Supported Backends](#supported-backends)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Quick Start\n\nSee [docker/example/testnet](docker/example/testnet) for a Docker Compose setup that runs zkboost with real Ere backends on a local testnet.\n\n## Manual Build\n\n### Prerequisites\n\n* **Rust** ≥ 1.91\n\n```bash\n# 1. Clone\ngit clone https://github.com/eth-act/zkboost.git \u0026\u0026 cd zkboost\n\n# 2. Build\ncargo build --release\n\n# 3. Run\n./target/release/zkboost --config \u003cconfig-path\u003e\n```\n\n## Configuration\n\nzkboost is configured via a TOML file passed with `--config \u003cpath\u003e`. Below is an annotated example showing all options:\n\n```toml\n# HTTP server port (default: 3000)\nport = 3000\n\n# Ethereum execution layer JSON-RPC endpoint (required)\nel_endpoint = \"http://localhost:8545\"\n\n# Optional local chain config JSON file\n# chain_config_path = \"path/to/chain_config.json\"\n\n# Timeout for witness fetching in seconds (default: 12)\n# witness_timeout_secs = 12\n\n# Timeout for proof generation in seconds (default: 12)\n# proof_timeout_secs = 12\n\n# LRU cache size for completed proofs (default: 128)\n# proof_cache_size = 128\n\n# LRU cache size for execution witnesses (default: 128)\n# witness_cache_size = 128\n\n# External Ere server (calls a remote ere-server via HTTP)\n[[zkvm]]\nkind = \"ere\"\nproof_type = \"ethrex-zisk\"\nendpoint = \"http://ere-server:3000\"\n\n# Mock zkVMs (in-process, for testing without Docker/GPU)\n\n# Fixed proving time\n[[zkvm]]\nkind = \"mock\"\nproof_type = \"reth-sp1\"\nmock_proving_time = { kind = \"constant\", ms = 3000 }\nmock_proof_size = 1024\n\n# Random proving time uniformly sampled from [min_ms, max_ms]\n[[zkvm]]\nkind = \"mock\"\nproof_type = \"reth-zisk\"\nmock_proving_time = { kind = \"random\", min_ms = 2000, max_ms = 8000 }\n\n# Proving time proportional to block gas (ms_per_mgas * gas_used / 1000_000)\n[[zkvm]]\nkind = \"mock\"\nproof_type = \"ethrex-zisk\"\nmock_proving_time = { kind = \"linear\", ms_per_mgas = 300 }\n\n# Simulated failure (always returns a proving error)\n[[zkvm]]\nkind = \"mock\"\nproof_type = \"reth-risc0\"\nmock_failure = true\n```\n\nAvailable proof types:\n\n| Index | Name           | EL       | zkVM      |\n| ----- | -------------- | -------- | --------- |\n| `0`   | `ethrex-risc0` | `ethrex` | RISC Zero |\n| `1`   | `ethrex-sp1`   | `ethrex` | SP1       |\n| `2`   | `ethrex-zisk`  | `ethrex` | ZisK      |\n| `3`   | `reth-openvm`  | `reth`   | OpenVM    |\n| `4`   | `reth-risc0`   | `reth`   | RISC Zero |\n| `5`   | `reth-sp1`     | `reth`   | SP1       |\n| `6`   | `reth-zisk`    | `reth`   | ZisK      |\n\n## API\n\nThe following endpoints are available:\n\n| Method | Endpoint                                                       | Purpose                                                       |\n| ------ | -------------------------------------------------------------- | ------------------------------------------------------------- |\n| `POST` | `/v1/execution_proof_requests?proof_types=`                    | Submit SSZ-encoded `NewPayloadRequest` to request for a proof |\n| `GET`  | `/v1/execution_proof_requests?new_payload_request_root=`       | SSE stream of proof result                                    |\n| `GET`  | `/v1/execution_proofs/{new_payload_request_root}/{proof_type}` | Fetch a completed proof                                       |\n| `POST` | `/v1/execution_proof_verifications`                            | Verify a proof                                                |\n| `GET`  | `/health`                                                      | Health check                                                  |\n| `GET`  | `/metrics`                                                     | Prometheus metrics                                            |\n\nSee [openapi.json](openapi.json) for the full API specification ([rendered](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/eth-act/zkboost/master/openapi.json)).\n\n## Observability\n\nzkboost exposes Prometheus-compatible metrics at `/metrics` for monitoring with Prometheus and Grafana.\n\n### Docker Compose with Grafana\n\nThe Docker Compose setup includes pre-configured Prometheus and Grafana with a zkboost dashboard:\n\n```bash\ncd docker/example/observability \u0026\u0026 docker-compose up -d\n```\n\n| Service    | URL                   | Credentials   |\n| ---------- | --------------------- | ------------- |\n| zkboost    | http://localhost:3000 | -             |\n| Prometheus | http://localhost:9090 | -             |\n| Grafana    | http://localhost:3002 | admin / admin |\n\nThe zkboost dashboard is auto-provisioned and available at Grafana \u003e Dashboards \u003e zkboost.\n\n### Available Metrics\n\n| Metric                                  | Type      | Description                                     |\n| --------------------------------------- | --------- | ----------------------------------------------- |\n| `zkboost_http_requests_total`           | Counter   | Total HTTP requests by endpoint, method, status |\n| `zkboost_http_request_duration_seconds` | Histogram | Request latency by endpoint                     |\n| `zkboost_http_requests_in_flight`       | Gauge     | Currently processing requests                   |\n| `zkboost_prove_total`                   | Counter   | Prove operations by program and status          |\n| `zkboost_prove_duration_seconds`        | Histogram | Proof generation time                           |\n| `zkboost_prove_proof_bytes`             | Histogram | Generated proof sizes                           |\n| `zkboost_verify_total`                  | Counter   | Verify operations by program and result         |\n| `zkboost_verify_duration_seconds`       | Histogram | Verification time                               |\n| `zkboost_programs_loaded`               | Gauge     | Number of loaded zkVMs                          |\n| `zkboost_build_info`                    | Gauge     | Build version info                              |\n\n## Supported Backends\n\nzkboost uses `Ere` for backend integration. Not all backends will be integrated, however since the API for Ere is uniform, it is easy to add backends already supported by Ere.\n\n## Contributing\n\nContributions are welcome!\n\n## License\n\nDual‑licensed under **Apache‑2.0** and **MIT**. Choose either license at your discretion.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feth-act%2Fzkboost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feth-act%2Fzkboost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feth-act%2Fzkboost/lists"}