Repository navigation
c2pool v0.2.12.3
c2pool v0.2.12.3
LTC fixes on top of v0.2.12.2, plus DASH changes from master. Recommended for every LTC node. The share version 3601 rules are unchanged (active since 2026-11-13 00:00:00 UTC).
LTC: a node serves every share it has
When a peer disconnected within 10 seconds of the node sending it shares, the node marked those shares as rejected for good. It then refused to send them to anyone who asked for them. This hit other miners' shares too, because the node re-sends the newest shares to every peer each time the best share changes. Peers missing those shares could not fill the gap from this node.
- The node now answers every share request with every share it has, as p2pool does.
- Only the node's own new shares can be marked, and only when a peer resets the connection right after receiving one (a peer that rejects a share does this). A marked share is not broadcast again for 10 minutes; it is still served on request.
- Timeouts, normal disconnects and connections the node closes itself never mark a share.
Node fee and other random draws
The draw that decides whether a share pays the node fee (-f, money.node_owner_fee_pct) now honours a fractional percentage exactly. Before, the draw used whole numbers only, so the fee was taken ceil(fee)/101 of the time: 0.5% was taken about 0.99% of the time, 1% about 0.99%, 1.5% about 1.98%, and 100% about 99%. Operators who set a node fee will see it taken at the configured rate from this release on.
Peer address gossip now relays at the intended 80% (it was 50%), as in p2pool. Share and block validation do not use these draws.
Web pages
The old p2pool "Classic" and "Graphs" pages are removed; their addresses redirect to the dashboard.
DASH
DASH nodes get the changes merged since v0.2.12.2:
- A template never carries a transaction whose parent is not in the same block (collateral spends, masternode hard-fork signals with outputs).
- Superblock payments: governance objects and votes are synced from peers and trigger signatures are checked; with default flags a mainnet node pays a funded superblock exactly or refuses the template.
- Compact blocks (BIP 152), receive only: new blocks are rebuilt from the mempool when possible, with a fall back to the full block.
--embedded-compact-blocks=falseturns this off. - A block body is checked against its header before it is used, including the asset-unlock root of a version 4 coinbase (Dash Core 24
CheckMerkleRoot). A body that does not match is never used, and the node asks another peer for the block at once. If two peers send the same non-matching body, the node logs an error and stops blaming peers for it, so a decoding difference on our side cannot drive honest peers away. A peer whose body is shown wrong by the real one is penalised as Dash Core does.
macOS: Apple Silicon only in this release
This release ships macOS packages for Apple Silicon (arm64) only: c2pool-<coin>-0.2.12.3-macos-arm64.zip and .dmg. There are no Intel Mac packages for 0.2.12.3. From the next release, macOS packages are universal again (Apple Silicon and Intel in one binary), built on one Apple Silicon build host. Intel Mac users can stay on v0.2.12.2 until then.
Known issue
--soloand--custodialremain disabled.
Verify the download
SHA256SUMS is signed with key 99556F8DE6AD66057A1A10EC50AB1379285EFE76:
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS