Skip to content

c2pool v0.2.12.6

Choose a tag to compare

@github-actions github-actions released this 14 Nov 09:21
· 17 commits to master since this release
v0.2.12.6
83f54ca

c2pool v0.2.12.6

Share-chain fix for LTC and DASH on top of v0.2.12.5. Recommended for every LTC and DASH node, one node at a time. BTC, DGB, BCH and BIP-110 nodes are unchanged.

A share that finds a block wins its head race

When two shares build on the same parent at about the same time, the node picks one of them to build on. p2pool gives the share that solved a block one share of extra weight, so it wins against an equal-work sibling, and even against a branch one share longer. c2pool did not, and picked between same-second siblings arbitrarily. A block-solving share could therefore end up off the best share chain. The block itself was still on the coin chain and nothing was lost, but its finder lost one share of payout weight, and the dashboards disagreed about the block count.

Now:

  • A block-solving share gets the same extra share of weight as in p2pool. If everything else ties, the larger share hash wins, again as in p2pool.
  • The extra weight is given only if the share's block target is the network's real target for its parent block, and that parent is within 6 blocks of the node's own chain tip. A share that claims an easier target than the network's gets no extra weight.
  • LTC: only LTC block solutions count, as in p2pool; a share that solved only a DOGE block gets no extra weight. An LTC node running with --no-embedded-ltc (on litecoind) gives no extra weight and behaves as before.

This changes only which of the already-valid shares a node builds on. Share validation, payouts and the network protocol are unchanged, and nodes on older versions stay on the same share chain.

Dashboard

  • "Blocks in Window" also counts blocks whose share lost the head race, listed separately, so it matches the block chart.
  • DASH: share-version labels follow the live share version.

Everything else

Everything in v0.2.12.5 applies. See the v0.2.12.5 notes.

Known issue

  • --solo and --custodial remain disabled.

  • Linux: run the node with the package's lib/ folder. The Linux binaries load libraries shipped in the package's lib/ folder (libsecp256k1, and for DASH also libgmp and libdash_scriptcheck). start.sh sets this up. If you start the binary directly, from your own script or a systemd unit, it can stop at once with error while loading shared libraries: libsecp256k1.so.6: cannot open shared object file. Which libsecp256k1 version a package needs can change between releases: the LTC, DASH and BIP-110 packages of this release need libsecp256k1.so.6, which most systems do not have. The DASH package always needs lib/. To fix it, unpack the whole package and run the node through start.sh, or point the loader at lib/:

    cd c2pool-<coin>-<version>-linux-x86_64
    LD_LIBRARY_PATH="$PWD/lib" ./c2pool-<coin> <your options>
    

    For a systemd unit, add Environment=LD_LIBRARY_PATH=/path/to/c2pool-<coin>-<version>-linux-x86_64/lib. If you upgrade by copying only the binary, copy lib/ too. A later release finds lib/ without this step.

Verify the download

SHA256SUMS is signed with key 99556F8DE6AD66057A1A10EC50AB1379285EFE76:

gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS