v0.9.26Current · stable
- Share grading: a share is now always graded against the exact block contents it was mined on. A rebuild that kept the same job identity could leave a share scored against contents no rig ever saw.
- Share grading: asking for a different difficulty mid-session no longer rebuilds the job underneath the shares already in flight. The new difficulty is sent on its own and applies to the next job.
- Duplicate detection: the per-job record of shares already seen no longer stops learning once it fills. Past that point a share could be sent again and counted again for the rest of that job.
- Difficulty tuning: a rig whose recent history has gone stale now returns to a difficulty matched to what it is actually doing. It could previously stay pinned near a floor set from history that no longer applied.
- Difficulty tuning: a rig that goes quiet no longer has its difficulty dragged down by the silence. A brief outage used to cost several shares at the wrong difficulty on the way back.
- Difficulty tuning: the difficulty a rig is served no longer depends on how large that rig is. Small rigs were consistently served a harder target than their real rate justified.
- Block detection: a winning share whose job rotated is no longer discarded before it is tested. The job now carries the template it was built from instead of naming it.
- Late shares: a share that arrives late is now recorded by its actual cause instead of one word covering three unrelated situations. Nothing about how shares are credited changes.
- Declined blocks: the two reasons a block can be declined now have separate counters instead of sharing one. An operator can tell them apart without reading process output.
- Connection limits: the per-address connection cap is now sized from the real fleet, and every refusal is counted. Refusals used to be invisible, so a wrongly-capped rig looked like a quiet one.
- Share handling: the per-share cost of the main mining path was cut, and the work sent on a new block is now prepared once instead of per connection. No change to what miners receive.
- Duplicate detection: duplicate shares are now recognised by region rather than by header contents, so two regions serving the same work no longer accuse each other.
- Stability: an unauthorised connection could make the pool emit a malformed status record. It is now rejected cleanly. No effect on mining, share accounting, or payouts.
- A miner can now choose the transactions in its own block, and the pool mines exactly that set. Previously the pool substituted its own template, so the miner's choice was silently discarded.
- A declared job is not accepted until a full node has judged it. The pool no longer answers "accepted" for a block no node has seen.
- A job token is now usable only by the client it was issued to. Tokens also no longer run out under normal use.
- A solution pushed over the declaration connection is now treated as a block and submitted, instead of being counted and discarded.
- A declaring miner whose coinbase cannot be read is now told so, with the node's own words, instead of being asked to try again forever.
- A rejection from the node no longer arrives as silence when its reason is long. The reason travels with the refusal so the miner can act on it.
- A declaration whose coinbase is too large is now refused with that reason, before any of the expensive checking runs. It used to be dropped without a word, which read to the miner as the pool ignoring it.
- Declarations are now paced per client, and a solved block is never held back by that pacing. A single client can no longer spend the whole pool's declaration capacity.
- The pacing now follows the client rather than the connection, so reconnecting no longer hands out a fresh allowance.
- A large declaration sent the way the protocol specifies is now read correctly. Clients that split one across several parts previously lost the session instead of having it accepted.
- The landing page was rebuilt around verification: every claim now carries its own check, and the navigation collapses behind a single control on small screens.
- A guided path now takes a new miner from the landing page to a correctly pointed rig, replacing a set of instructions that assumed prior knowledge.
- Browser translation no longer takes the site down. A translated page used to blank out entirely; live figures are now marked so translation leaves them alone.
- A failure in one part of a page no longer replaces the whole site with a black screen. The rest of the page keeps working.
- The custody page was rebuilt so each published claim sits beside the evidence for it, instead of pointing elsewhere.
- Support now has its own desk on the site, reachable from the four places people actually look for help.
- A security contact is now published at the address researchers check first.
- Search engines and AI crawlers now receive real per-page dates and a machine-readable index. Pages were previously dated by build time, which made every page look edited on the same day.
- Signed-out readers are no longer bounced away from the receipt verifier, and the navigation search now signs you in instead of leading nowhere.
- The connection details shown by the guided setup now match the address the landing page publishes. They could differ by region.
- Scrolling no longer sticks on the technology page, and the footer artwork no longer competes with the page for the first seconds of a mobile load.
- The verification key for receipts is now published where a script can fetch it, so a receipt can be checked without downloading anything from us first.
- Pool status in the footer — height, hashrate, uptime and price — is now readable by a screen reader. It was hidden from one entirely, and it is the only copy of those figures on the page.
- Closed answers in the frequently-asked list are now genuinely closed. A screen reader used to read every one of them aloud while the page reported them as shut.
- The availability chart no longer places hundreds of unlabelled stops in the keyboard path. The detail behind each bar is now readable instead of silent.
- The labels describing the connection key format now meet the contrast standard. Reading them is the step a miner takes to point a rig here, and they were too faint to pass.
- The record of signed receipts and found blocks is now append-only at the operating-system level: it can be added to and read, never rewritten or deleted in place.
- A copy of everything that cannot be regenerated is now captured on a schedule and sealed so that only the holder of the recovery key can open it.
- The published head of that record is now sent to a machine outside the pool, so a change made to local history can be told apart from history itself.
- Receipt durability: a receipt file created for the first time is now made durable together with the directory entry naming it. A power cut between the two could leave a receipt the system could not find.
- Block quality: the pool now counts blocks it was handed with no transactions when the chain plainly had some. That situation was previously invisible.
- Internal counters that only mean something to an operator are no longer published on the public status endpoint. They are shown in the operator view instead.
- A miner opening its own statistics page no longer sees zero hashrate or an error. The page now answers with the figures it already had.
- Block templates now carry a per-block fullness reading, so it is possible to see how complete the work being mined actually was.