Turns out locally mined blocks needed the same atomic metadata storage as received shares. Who knew time-accelerated simulations would catch that? (We did. That's why we run them.)
p2poolv2
npub1v6ep...9syu
P2Poolv2 Developer Updates
Just merged: share blocks now broadcast directly instead of inv→getheaders→getdata round trips. Cuts propagation latency, lowers uncle rate. Peer-to-peer mining infrastructure getting faster.
Fixed a subtle bug where shares with missing bodies could be selected as uncles. Downstream nodes couldn't validate them. Now we filter uncle candidates by local body availability before propagation.
PPLNS implementation now switches based on pool mode. Sharechain for decentralized P2Pool, simple DB-backed for Hydrapool standalone. Same mission either way: miners keeping sovereignty over their own hashrate.
Weekly State of p2poolv2
5 pull requests merged this week, all focused on making the share chain more reliable and stratum server more robust. The most significant: sync improvements (PR #548) that make share propagation across the peer network faster and more reliable. We also shipped graceful handling of malformed stratum submissions (PR #546), fixed worker metrics and prometheus counters (PRs #543, #542), and eliminated redundant txid parsing on every share submit (PR #541).
None of this is sexy. But decentralized mining only works when the infrastructure is as solid as centralized pools — without the middleman taking 2% and deciding which transactions get mined. Every sync improvement means less time reorging, more time earning. Every stratum fix means your miners stay connected to a pool you control.
If you're running p2poolv2: pull the latest and monitor your sync performance. If you're still on a centralized pool: you're paying someone else to control your hashrate. Why?
Fixed: worker stats now persist through reconnects and inactive miners get a 3-day grace period before cleanup. Your hashrate contributions survive network hiccups.
Performance work continues: optimized share validation path and added remote load testing tools. Running JMeter against production nodes to identify bottlenecks before they matter.
p2poolv2 now respects miner-provided difficulty hints in the password field. Faster ramp-up, fewer stale shares during connection. Sovereignty extends to protocol parameters.
Fixed a RocksDB merge operator bug that was silently corrupting the share chain DAG under load. Compactions were dropping block hashes, making nodes unsyncable. Now properly handles both single and batched blockhash merges.
p2poolv2 now exposes raw DAG data via API and CLI. Query any share header by height range, render graphviz output, verify chain state independently. Transparency over trust.
New DoS protection merged: disconnected peers can no longer spam the network with fake block requests. Malicious nodes get dropped, healthy peers stay clean. Share chain stays resilient.
New handshake protocol merged: nodes now exchange chain state on connection and sync headers only when needed. Eliminates redundant GetHeaders spam and speeds up network convergence.
p2poolv2 confirmed chain now waits for full block data before advancing tip. Centralized pools can skip blocks or rewrite history. In p2pool every node independently verifies every share's PoW and block data before confirming payout.
Added ACK responses to libp2p request-response flows. Prevents timeout backpressure when handshake and inventory requests complete without returning data. Small protocol fix, better p2p reliability.
Permissionless infrastructure means permissionless tooling. Added configurable CORS headers to the API server. Defaults to secure, and enables flexible monitoring setups when you need them. Decentralization down to the API layer.
Switched from shared service to per-peer task model. Your node now rate-limits peers independently. When one peer floods requests, others stay responsive. Decentralized pools need decentralized request handling.
Admins can now customize dashboard branding and serve their own static files. p2poolv2 nodes remain sovereign infrastructure — no central UI, no phone-home analytics, no tracking.
Your hashrate, your rules. p2poolv2 now validates transaction sigops and value constraints at the share level. Miners verify what they mine, no pool operator middleman needed.
Weekly p2poolv2 update: 11 PRs merged, most of them hardening share chain consensus rules. This week we shipped validation of share timestamps, coinbase maturity enforcement, transaction prevout spend checks, and proper parent share block dependencies during normal operation. These aren't features—they're the rules that make decentralized mining pools possible without trusted operators.
On the tooling side: fixed atomic writes during sync (no more state corruption), added cargo-dist for single-binary installs, cleaned up Docker as a secondary setup path, and brought back stratum load testing with justfile integration. Setup is now straightforward: download prebuilt binary, run it, point your miners.
The mission remains the same: replace pool operators with miners. Every merged PR is a step toward mining pools that can't rug you, can't censor you, and can't be shut down. If you run mining infrastructure and want to help stress test the stratum implementation before mainnet, check github.com/p2poolv2/p2poolv2 or reach out to pool2win.
Load testing results: p2poolv2 stratum matches CKPool performance while simultaneously managing share chain + p2p gossip. Tokio's async runtime handles submit spikes without degradation. Decentralization doesn't mean slow.
Load testing stratum connections isn't glamorous, but it's how you build mining infrastructure that doesn't need a trusted operator. p2poolv2 scales when miners need it to.
p2poolv2 node setup getting streamlined. Docker works but has NAT traversal issues. Next up: install script that makes running a node trivial. Decentralized mining shouldn't require devops expertise.