{"id":49560559,"url":"https://github.com/p2poolv2/p2poolv2","last_synced_at":"2026-05-09T09:25:23.261Z","repository":{"id":274771916,"uuid":"900374790","full_name":"p2poolv2/p2poolv2","owner":"p2poolv2","description":"P2Poolv2 - Rebooting P2Pool for Bitcoin","archived":false,"fork":false,"pushed_at":"2026-05-02T14:11:12.000Z","size":9512,"stargazers_count":75,"open_issues_count":76,"forks_count":38,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-05-02T16:18:04.607Z","etag":null,"topics":["bitcoin","mining-pool","p2p","stratum"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/p2poolv2.png","metadata":{"files":{"readme":"README.adoc","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-08T16:07:24.000Z","updated_at":"2026-04-30T11:30:34.000Z","dependencies_parsed_at":"2025-01-29T10:25:35.331Z","dependency_job_id":"8ab50e3e-5b8e-45f0-87aa-eb807f930223","html_url":"https://github.com/p2poolv2/p2poolv2","commit_stats":null,"previous_names":["pool2win/p2pool-v2","p2poolv2/p2poolv2"],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/p2poolv2/p2poolv2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2poolv2%2Fp2poolv2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2poolv2%2Fp2poolv2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2poolv2%2Fp2poolv2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2poolv2%2Fp2poolv2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p2poolv2","download_url":"https://codeload.github.com/p2poolv2/p2poolv2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p2poolv2%2Fp2poolv2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32562118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: 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":["bitcoin","mining-pool","p2p","stratum"],"created_at":"2026-05-03T08:04:53.293Z","updated_at":"2026-05-03T08:04:54.061Z","avatar_url":"https://github.com/p2poolv2.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"image:https://github.com/p2poolv2/p2poolv2/actions/workflows/rust.yml/badge.svg[Rust CI, link=https://github.com/p2poolv2/p2poolv2/actions/workflows/rust.yml]\nimage:https://codecov.io/gh/p2poolv2/p2poolv2/graph/badge.svg?token=Xeu4GFdASS[Codecov, link=https://codecov.io/gh/p2poolv2/p2poolv2]\n\n== P2Poolv2\n\n****\n**Mission:** ##Replace pool operators with miners##\n****\n\nP2Poolv2 is a peer-to-peer Bitcoin mining pool where miners coordinate\ndirectly and verify their rewards without centralized operators.\n\n1. Share chain with uncles - all your work is accounted for.\n2. Pay large miners in coinbase - non custodial solution for top N miners.\n3. Support transactions - pay all miners with atomic swaps by market makers.\n4. Market makers buy shares from smaller miners - earning virgin coins.\n\n--\nWe chat on https://matrix.to/#/#p2poolv2:matrix.org[Matrix].\n\nWe use https://github.com/p2poolv2/p2poolv2/wiki[github wiki] for most design documents and tools for developers.\n\nWe are tracking progress using our https://github.com/orgs/p2poolv2/projects/1[Github project: Reboot P2Pool].\n\nSee detailed https://github.com/p2poolv2/p2poolv2/wiki/Developer-Setup-Notes[Developer Setup Notes] on the wiki.\n--\n\n== Running P2Poolv2\n\n=== Setup Bitcoin Node\n\nTo run your local p2pool node you need to run a bitcoin node and then\na p2poolv2 node configured to talk to your bitcoind node to fetch\nblocktemplates and submit blocks.\n\nFor signet we provide a `docker/bitcoin-signet.conf` that you can use\nas your bitcoin.conf. We also provide a docker compose service that\nwill start signet bitcoind with enough blocks to start mining. If you\njust want to run a signet network run bitcoin as\n\n[,shell]\n----\ncd docker\ndocker compose up -d bitcoind\n----\n\nThe important details you want from your bitcoin.conf are:\n\n. rpcuser\n. rpcpassword\n\nAnother important detail is to set your bitcoin config file to allow\nfor 500 coinbase outputs. This is required before we ship our atomic\nswap based payout mechanism. With space to accomodate 500 miners, we\ncan start running P2Poolv2 with direct payments from coinbase.\n\nFor 500 P2WPKH outputs use `blockmaxweight` to 3930000.\n\n[,config]\n----\nblockmaxweight=3930000\n----\n\nFinally, you need to mine 32 blocks before you can run p2poolv2 node\nto talk to bitcoind. This is because BIP34 requires coinbase to\ninclude height using varint format, which conflicts with how these\nfirst 32 heights are encoded. The bitcoind docker service takes care\nof this by bootstrapping the signet with first 32 blocks.\n\n=== Install P2Poolv2\n\n[,shell]\n----\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/p2poolv2/p2poolv2/releases/latest/download/p2poolv2_node-installer.sh | sh\ncurl --proto '=https' --tlsv1.2 -LsSf -o config.toml https://github.com/p2poolv2/p2poolv2/releases/latest/download/config.sample.toml\n----\n\nThe above will install `p2poolv2` and `p2poolv2_cli` in your PATH and download a `config.toml` for you to edit as required.\n\nThe location where the binaries are installed will be echoed by the installer.\n\n[,shell]\n----\np2poolv2 --help\np2poolv2_cli --help\n----\n\n=== Run P2Poolv2\n\n. Edit the `config.toml` as required.\n.. At the very least you need to provide the bitcoind rpc details under the `[bitcoinrpc]` section.\n. Run P2Poolv2 `p2poolv2 config.toml`\n. Point your miners to `\u003cyourhost\u003e:\u003cyour stratum port in config.toml\u003e`\n\n=== Enable Dashboard\n\nP2Poolv2 includes a web dashboard for monitoring your node. The static\nassets are distributed as a separate `dashboard.tar.gz` archive.\n\n. Download and extract the dashboard assets:\n+\n[,shell]\n----\ncurl --proto '=https' --tlsv1.2 -LsSf -o dashboard.tar.gz https://github.com/p2poolv2/p2poolv2/releases/latest/download/dashboard.tar.gz\ntar xzf dashboard.tar.gz\n----\n\n. Set the `P2POOL_STATIC_DIR` environment variable to point to the extracted directory:\n+\n[,shell]\n----\nexport P2POOL_STATIC_DIR=/path/to/static\n----\n\n. Access the dashboard at `http://\u003cyour api hostname\u003e:\u003cyour api port\u003e/dashboard`\n\nIf `P2POOL_STATIC_DIR` is not set, the dashboard is not available when\nrunning from a release binary.\n\n=== Setup Systemd Service\n\nTo setup as a systemd service, use the systemd service file provided\nlink:./p2poolv2@.service[p2poolv2@.service]. You can edit that service\nfile to require your bitcoind service, if you use one.\n\n. Update the service file to point to where you installed your binaries. Use `which p2poolv2` to find where it is installed.\n. Setup `p2poolv2` user/group.\n. `/var/lib/p2poolv2`, `/var/log/p2poolv2`, `/etc/p2poolv2/` directories with permissions for p2poolv2 user.\n\nThe above service file can be used for different networks, like so:\n\n[,shell]\n----\nsudo systemctl daemon-reload\nsudo systemctl enable --now p2poolv2@testnet4\nsudo systemctl enable --now p2poolv2@mainnet\n----\n\n=== Build From Source\n\n==== MSRV and Edition\n\nMSRV 1.88 with 2024 edition is required to build p2poolv2.\n\n==== Build\n\n. Install rust from link:https://rustup.rs/[rustup]\n. Install link:https://github.com/casey/just?tab=readme-ov-file#installation[just]\n. Build P2Poolv2\n.. Get latest source `git clone git@github.com:p2poolv2/p2poolv2.git`\n.. Build `just build-release`\n\n==== Tests\n\nTo run CI tests locally run `just test`.\n\n=== Docker Support\n\nWe also provide dockerfiles and a docker compose to run the node as a\ndocker service.\n\nOur recommended way to run a node is using the provided installer and\nusing the systemd service.\n\nIf you still want to run a node using docker services, see\nlink:docker/README.adoc[docker/README.adoc] for details.\n\n== API and CLI READMEs\n\nBoth the API and CLI crates provide detailed documentation on how to\nuse them in their individual crates.\n\nlink:p2poolv2_api/README.md[API Documentation]\n\nlink:p2poolv2_cli/README.md[CLI Documentation]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp2poolv2%2Fp2poolv2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp2poolv2%2Fp2poolv2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp2poolv2%2Fp2poolv2/lists"}