WIP: Enforce enonce1 uniqueness for small enonces #534

Draft
paratoxic wants to merge 8 commits from implement-max-clients into master
Owner

Closes #518

Closes #518
Enforce enonce1 uniqueness
Some checks failed
CI / ckpool (pull_request) Successful in 15s
CI / lint (pull_request) Failing after 2m15s
CI / test-linux (pull_request) Has been cancelled
0a2fe63c78
Modify
Some checks failed
CI / ckpool (pull_request) Successful in 19s
CI / lint (pull_request) Successful in 2m14s
CI / test-linux (pull_request) Has been cancelled
094917e3c2
Change
Some checks failed
CI / ckpool (pull_request) Successful in 23s
CI / lint (pull_request) Successful in 2m24s
CI / test-linux (pull_request) Failing after 7m5s
ab9c2bf41c
Tweak
All checks were successful
CI / ckpool (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 2m6s
CI / test-linux (pull_request) Successful in 7m5s
f8bfe837eb
paratoxic changed title from Enforce enonce1 uniqueness to Enforce enonce1 uniqueness for small enonces 2026-04-22 22:26:58 +00:00
parabit approved these changes 2026-04-22 23:19:00 +00:00
parabit left a comment
Owner

LGTM

Took me a minute to understand why the test showed 256 max clients, could maybe use a comment there?

LGTM Took me a minute to understand why the test showed 256 max clients, could maybe use a comment there?
@ -1,9 +1,12 @@
use super::*;
const MAX_TRACKED_CLIENTS: usize = 1 << 16;
Owner

That's a big number! Also, isn't this just u16::max?

That's a big number! Also, isn't this just u16::max?
@ -76,2 +125,4 @@
}
fn proxy_allocator(extension_size: usize) -> EnonceAllocator {
let upstream_enonce1 = Extranonce::from_bytes(&[0xde, 0xad, 0xbe, 0xef]);
Owner

Unrelated to PR, it may be nice to have a helper function on Extranonce that lets you pass these as a hex string "deadbeef" and it just handles the parse with radix 16.

Unrelated to PR, it may be nice to have a helper function on Extranonce that lets you pass these as a hex string "deadbeef" and it just handles the parse with radix 16.
Tweak
Some checks failed
CI / ckpool (pull_request) Successful in 33s
CI / lint (pull_request) Successful in 3m30s
CI / test-linux (pull_request) Failing after 8m6s
75071981b8
Improve
All checks were successful
CI / ckpool (pull_request) Successful in 20s
CI / lint (pull_request) Successful in 2m12s
CI / test-linux (pull_request) Successful in 6m30s
ea8afdcdef
Modify
Some checks failed
CI / ckpool (pull_request) Successful in 9s
CI / lint (pull_request) Successful in 1m14s
CI / test-linux (pull_request) Failing after 4m31s
4d50974283
Solidify
Some checks failed
CI / ckpool (pull_request) Successful in 8s
CI / lint (pull_request) Successful in 1m18s
CI / test-linux (pull_request) Failing after 4m42s
7b817d2916
paratoxic changed title from Enforce enonce1 uniqueness for small enonces to WIP: Enforce enonce1 uniqueness for small enonces 2026-04-24 20:32:04 +00:00
Some checks failed
CI / ckpool (pull_request) Successful in 8s
Required
Details
CI / lint (pull_request) Successful in 1m18s
Required
Details
CI / test-linux (pull_request) Failing after 4m42s
Required
Details
This pull request has changes conflicting with the target branch.
  • src/enonce_allocator.rs
  • src/metatron.rs
  • src/router.rs
  • src/stratifier.rs
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin implement-max-clients:implement-max-clients
git switch implement-max-clients
Sign in to join this conversation.
No description provided.