Skip to content

c2pool v0.2.12.7

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Nov 03:47
· 13 commits to master since this release
v0.2.12.7
c0d2cd2

c2pool v0.2.12.7

This release fixes LTC payouts and the LTC dashboard, and fixes how the Linux packages load their libraries. It builds on v0.2.12.6.

  • LTC nodes: recommended for every LTC node. Upgrade first if your node runs --fee, or if it has miners of different sizes. Restart one node at a time.
  • DASH nodes with several miners: upgrade as well (see "DASH" below).
  • Nodes on other coins: only the Linux packaging change below applies to them.

LTC: the node fee and small miners are paid in full

  • Node fee. From v0.2.12 to v0.2.12.6, an LTC node running --fee paid its owner about 1/12 of the configured fee. On one node with --fee 1, the owner held 0.08% of the payout weight instead of about 1%.
    • Two bugs caused this:
      • The work that pays the fee got the easiest share target, because it was sized by the owner's address, which has no hashrate of its own.
      • The node then judged each submission against the share target of the last job it had built for any miner, not the job the submission belongs to. Most fee shares were dropped, and the ones that were kept counted at about 1/30 of their weight.
    • Now the work that pays the fee has the same share target as the miner's own work, and every submission is judged by its own job's target.
    • The owner gets the configured fee. Miners pay no more than the configured --fee. p2pool sized fee work by the owner's own hashrate, so in practice it paid the owner somewhat less than the nominal fee.
  • Small miners next to big ones. Since v0.1.0-alpha, on a node with miners of different sizes, a smaller miner's shares were judged against the larger miner's harder target. They were dropped, or counted at a lower weight. Every miner's shares now count at their own job's target.
  • New connections. Until the node has measured a new connection's hashrate, which takes the first few seconds, its work uses the dust rule's share target, as in p2pool. On LTC mainnet that is the hardest allowed target. Expected payouts do not change.
  • Logins without an address (redistributed work) share one hashrate figure. Their work is sized as one miner. Expected payouts do not change.
  • BTC and BCH.
    • A submission is judged by its own job's share target. This removes false "P2P share" log lines and reject counts.
    • BCH no longer creates a late share whose target differs from the one its job committed to.

None of this changes share validation or the network protocol. Nodes on older versions stay on the same share chain.

DASH: smaller miners keep their shares

On a DASH node with more than one miner, a smaller miner's shares could be dropped when a larger miner's job had been built last. At the edge of the share-target range, the smaller miner kept as little as 1/30 of the shares it was due. Each submission is now judged by its own job's share target, as on LTC above. No DASH share was ever created with the wrong weight. Nodes with a single payout address were practically unaffected.

LTC dashboard: one block, one row on every node

A block found together with a merged DOGE block used to show differently on the node that found it and on its peers.

  • What was wrong:
    • The finder listed the DOGE block in Recent Blocks, linked to a Litecoin explorer, and lost it from Merged Mining Blocks after a restart.
    • Peers showed the share-chain height instead of the block height, and the miner as a hex string.
  • Now:
    • Every node shows the same row: the block height, the miner's address, the share, and who found it.
    • Merged blocks appear only under Merged Mining Blocks, with their own explorer link.
    • Merged blocks are no longer counted in the Recent Blocks total, luck, the Round timer, miner payouts or the best-share reset.
    • Rows saved by older versions are corrected when this version starts.

Linux packages

  • The binary now finds the libraries in the package's lib/ folder by itself. You no longer need start.sh or LD_LIBRARY_PATH to run it, for example from a systemd unit. start.sh works as before.
  • Every Linux package is now tested this way before release.
  • Releases v0.2.12.4 to v0.2.12.6 need the workaround described in their notes.

Upgrade order

Restart one node at a time. Before you restart the next node, wait until the restarted one is back on the live share chain, with the same best share as its peers.

Known issue

  • --solo and --custodial remain disabled.

Verify the download

SHA256SUMS is signed with key 99556F8DE6AD66057A1A10EC50AB1379285EFE76:

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