{"id":44541418,"url":"https://github.com/jsign/zisk-eth-distributed","last_synced_at":"2026-02-13T19:00:01.462Z","repository":{"id":319773656,"uuid":"1075021857","full_name":"jsign/zisk-eth-distributed","owner":"jsign","description":"Ethereum ZisK distributed block proving ","archived":false,"fork":false,"pushed_at":"2025-10-17T00:00:20.000Z","size":2717,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-20T06:49:23.520Z","etag":null,"topics":["distributed-prover","ethereum","zisk"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/jsign.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-10-12T22:57:40.000Z","updated_at":"2025-10-17T01:49:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"97a5c812-5f33-420e-872b-bce991ccd523","html_url":"https://github.com/jsign/zisk-eth-distributed","commit_stats":null,"previous_names":["jsign/zisk-eth-distributed"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jsign/zisk-eth-distributed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fzisk-eth-distributed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fzisk-eth-distributed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fzisk-eth-distributed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fzisk-eth-distributed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsign","download_url":"https://codeload.github.com/jsign/zisk-eth-distributed/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsign%2Fzisk-eth-distributed/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29414340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"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":["distributed-prover","ethereum","zisk"],"created_at":"2026-02-13T19:00:01.160Z","updated_at":"2026-02-13T19:00:01.441Z","avatar_url":"https://github.com/jsign.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zisk-eth-distributed\n\nAn Ethereum proving cluster built on top of Zisk distributed proving.\n\nThis system simplifies raw Zisk distributed proving by:\n- Automating all setup for Zisk required components via Docker. Both for CPU and GPU provers.\n- Automatic compiling of Ethereum stateless block validator ELF.\n- Send guest inputs via network instead of assuming they're available in workers filesystem.\n- Minimal-ish web dashboard for monitoring.\n\nRemember that Zisk distributed proving assumes workers are trusted. This means this setup\nmight be interesting for private clusters (e.g., groups of friends, companies, cloud based\nworkers, etc).\n\nThis is a **proof of concept** and not production ready. Use at your own risk.\n\n![Image](https://private-user-images.githubusercontent.com/6136245/502325777-24faa48d-e007-4069-9c6c-8a71c3c4090c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjA2NTkxMTgsIm5iZiI6MTc2MDY1ODgxOCwicGF0aCI6Ii82MTM2MjQ1LzUwMjMyNTc3Ny0yNGZhYTQ4ZC1lMDA3LTQwNjktOWM2Yy04YTcxYzNjNDA5MGMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MTAxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTEwMTZUMjM1MzM4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjE1YmNhYzM5YjdmMzNjMTIyMDBkZDE3NTNlYWVkMzM3M2Y1ZDUxNzQ1MDkyYjM4NjgxN2M0YWM2OGI1YzkwYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.jEJUFyOLv8-dXL37BH4dgAZt30men4uqZ_GlEJc1zmM)\n\n### Communication Flow\n\n1. Workers connect to the coordinator via gRPC bidirectional streaming\n2. Coordinator registers workers and tracks their status\n3. When proof generation is requested, the coordinator broadcasts guest inputs to all workers\n4. Workers write inputs to local storage and begin proof generation\n5. The coordinator triggers the upstream Zisk coordinator to orchestrate the distributed proof only after all workers confirm they have the inputs.\n6. Real-time worker status updates are pushed to the web dashboard via WebSocket\n\nThe proofs are saved in the `proofs` folder:\n```\n$ tree proofs\nproofs\n├── proof_01f3b4a1-0787-47bd-9d09-328fa418eb8c.fri\n└── proof_01f3b4a1-0787-47bd-9d09-328fa418eb8c.fri.compressed\n```\n\n## Quick Start\n\n### Running the Coordinator\n\n```bash\ncargo run --release -p eth-coordinator -- server\n```\n\nThe coordinator will start:\n- gRPC server on `[::1]:50052`\n- HTTP/WebSocket server on `127.0.0.1:3000`\n- Web dashboard available at `http://localhost:3000`\n\n### Running a Worker\n\n```bash\n./scripts/run-worker.sh\n```\n\nThis script automates:\n- Worker configuration setup\n- Proving key download (~large files, ~GB in size)\n- Worker startup and connection to coordinator\n\n**GPU Support**: To enable GPU acceleration for proof generation, add the `--gpu` flag:\n\n```bash\n./scripts/run-worker.sh --gpu\n```\n\nOn first run, the worker will:\n1. Prompt for your worker name (used for identification in the dashboard)\n2. Download and extract proving keys to `~/.zisk-eth-distributed/provingKey/`\n3. Connect to the coordinator and start processing proofs\n\n### Submitting Proofs\n\nTo submit a proof request to the coordinator:\n\n```bash\ncargo run -p eth-coordinator -- prove-block \u003cguest_input_file\u003e --grpc-addr http://[::1]:50052\n```\n\n\n## Requirements\n\n- Rust 1.88.0 or later (enforced via `rust-toolchain.toml`)\n- Docker\n- For GPU workers: CUDA-compatible GPU and drivers\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Fzisk-eth-distributed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsign%2Fzisk-eth-distributed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsign%2Fzisk-eth-distributed/lists"}