{"id":29840490,"url":"https://github.com/0xeigenlabs/eigen-prover","last_synced_at":"2025-07-29T14:16:30.413Z","repository":{"id":173809420,"uuid":"643113179","full_name":"0xEigenLabs/eigen-prover","owner":"0xEigenLabs","description":"Eigen zkVM's Proving Service","archived":false,"fork":false,"pushed_at":"2025-07-20T04:53:23.000Z","size":1299,"stargazers_count":29,"open_issues_count":7,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-20T06:40:23.923Z","etag":null,"topics":["eigen-zkvm","proof-market","stark","zkvm"],"latest_commit_sha":null,"homepage":"","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/0xEigenLabs.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}},"created_at":"2023-05-20T06:22:11.000Z","updated_at":"2025-05-27T18:59:08.000Z","dependencies_parsed_at":"2023-11-19T03:27:14.564Z","dependency_job_id":"e6ba6ae7-fca2-4a78-8164-aa9fdd502c9e","html_url":"https://github.com/0xEigenLabs/eigen-prover","commit_stats":null,"previous_names":["0xeigenlabs/eigen-prover"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0xEigenLabs/eigen-prover","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2Feigen-prover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2Feigen-prover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2Feigen-prover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2Feigen-prover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xEigenLabs","download_url":"https://codeload.github.com/0xEigenLabs/eigen-prover/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2Feigen-prover/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267701619,"owners_count":24130457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["eigen-zkvm","proof-market","stark","zkvm"],"created_at":"2025-07-29T14:16:28.488Z","updated_at":"2025-07-29T14:16:30.408Z","avatar_url":"https://github.com/0xEigenLabs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eigen-prover\n\nThis repo aims to build components:\n\n* executor\n* prover\n\n\n## Server\n\n### Use [grpc server](https://github.com/hyperium/tonic/blob/master/examples/helloworld-tutorial.md)\n\n\u003e 💡 We provide two modes for using the Eigen-Prover.\n\n#### 1. Single Node Mode\n\nIn this mode, all services run within a single process.\nIt's convenient for testing or quickly getting started with the Eigen-Prover.\n```\ncd service\nRUST_LOG=info cargo run --release --bin service\n```\n\n#### 2. Distributed Node Mode\n\nThis mode allows the expansion of any number of remote services to provide batch-proof distributed parallel computing.\nIf you're aiming for production deployment or want to experience the peak performance of Eigen-Prover, this mode is recommended.\n\nFirst, start the Server:\n\u003e ⚠️ Remember to note the IP and Port of your server, as they will be needed later.\n```shell\ncd service\nPROVER_BASE=\u003cyour_prover_base_directory_path\u003e PROVER_MODEL=grpc CACHE_DIR=${PROVER_BASE}/eigen-prover/prover/cache WORK_BASE=${PROVER_BASE}/eigen-zkvm/starkjs FORCE_BIT=18 RUSTFLAGS=\"-C target-cpu=native\" RUST_MIN_STACK=2073741821 RUST_LOG=info CIRCOMLIB=${WORK_BASE}/node_modules/circomlib/circuits STARK_VERIFIER_GL=${WORK_BASE}/node_modules/pil-stark/circuits.gl STARK_VERIFIER_BN128=${WORK_BASE}/node_modules/pil-stark/circuits.bn128 URL=\u003chttp://zeth_ip:zeth_port\u003e TASK_NAME=evm BASEDIR=${PROVER_BASE}/eigen-prover/prover/data/proof TASK=evm RUST_BACKTRACE=full nohup cargo run --release --bin service \u003e\u003e nohup.out 2\u003e\u00261 \u0026\n```\n\nNext, initiate any number of batch-proof computing nodes:\n\u003e 🚀 The speed of the Eigen-Prover depends on the number of computing nodes you initiate.\n```shell\ncd service\nBATCH_BASE=\u003cyour_batch_prover_base_directory_path\u003e SCHEDULER_ADDR=\u003chttp://server_ip:server_port\u003e RUST_LOG=debug CACHE_DIR=${BATCH_BASE}/eigen-prover/prover/cache BASEDIR=${BATCH_BASE}/eigen-prover/prover/data/proof WORK_BASE=\"${BATCH_BASE}/eigen-zkvm/starkjs\" FORCE_BIT=18 RUSTFLAGS=\"-C target-cpu=native\" RUST_MIN_STACK=2073741821 CIRCOMLIB=${WORK_BASE}/node_modules/circomlib/circuits STARK_VERIFIER_GL=${WORK_BASE}/node_modules/pil-stark/circuits.gl STARK_VERIFIER_BN128=${WORK_BASE}/node_modules/pil-stark/circuits.bn128 nohup cargo run --bin batch-prover --release \u003e\u003e nohup-batch-prover.out 2\u003e\u00261 \u0026\n```\n\n### Executor Test\n\nIf you want to test the executor, you need to run a hardhat node locally, and the number of blocks is greater than or equal to the block_number in /service/examples/exec.rs\n\nopen another terminal\n```\ncd service\nRUST_LOG=info cargo run --example exec -- --nocapture\n```\n\nYou can also use `CONF_PATH` environment variable to setup config path, and make sure the config file in that is named `base_config.toml`.\n\n\n## Generate the solidity verifier\n\nTake zkEVM for instance, run the commands below. \n\n```bash\nSUITE_JSON=\"/tmp/reth2.block.json\" CHAINID=12345 URL=http://localhost:8546 NO=1 TASK=evm BASEDIR=\"prover/data/proof\" RUST_LOG=debug cargo run --example batch_process -- --nocapture\n\nexport STARKJS=/zkp/eigen-zkvm/starkjs\nTASK_NAME=evm SUITE_JSON=\"/tmp/reth2.block.json\" FORCE_BIT=18 RUST_MIN_STACK=2073741821 RUST_LOG=debug \\\n    CIRCOMLIB=$STARKJS/node_modules/circomlib/circuits \\\n    STARK_VERIFIER_GL=$STARKJS/node_modules/pil-stark/circuits.gl \\\n    STARK_VERIFIER_BN128=$STARKJS/node_modules/pil-stark/circuits.bn128 \\\n    cargo test --release integration_test -- --nocapture\n\neigen-zkit generate_verifier -v $vk -p groth16 -s /tmp/verifier.sol\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xeigenlabs%2Feigen-prover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xeigenlabs%2Feigen-prover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xeigenlabs%2Feigen-prover/lists"}