Commit ee68f50
committed
dash(S8): get_work() consumer capstone -- fuse NodeCoinState::select_work() template source + assemble_work_job_targets()
The embedded get_work chain was fully wired but had NO production consumer:
NodeCoinState::select_work() (embedded template when the 4-leg reception wire
(#693/#694) has populated the node bundle, else the retained dashd
getblocktemplate fallback) and assemble_work_job_targets() (per-miner job-target
arithmetic) each existed and were unit-tested, but nothing fused them into a
single miner-facing entry. Only the test suites ever called select_work().
Add dash::stratum::get_work() (src/impl/dash/stratum/get_work.hpp): the first
non-test caller of the embedded arm. It sources the base block template off the
node-held NodeCoinState -- NO direct dashd poll on the hot path when the bundle
is populated -- and assembles the job targets over whichever template arm ran.
dashd_fallback stays REQUIRED and is invoked ONLY on a set-gap (unpopulated /
invalidated bundle): the always-reachable safety + [GBT-XCHECK] cross-check arm,
never removed.
test_dash_get_work (4/4) pins the fused contract, seeding mirrored exactly from
test_dash_node_embedded_wire (no fabricated oracle values):
* set-gap routes DashdFallback (invoked once) and still assembles targets;
* populated routes Embedded WITHOUT invoking the fallback, byte-equal to a
direct build_embedded_workdata() over the node's own held state;
* job targets are identical across both template sources;
* on_invalidate (reorg) demotes back to the fallback.
Registered in both build.yml --target allowlists. STRICTLY single-coin
(src/impl/dash/ + test only), SAFE-ADDITIVE.1 parent ab249df commit ee68f50
4 files changed
Lines changed: 337 additions & 2 deletions
File tree
- .github/workflows
- src/impl/dash/stratum
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
| 105 | + | |
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
| 255 | + | |
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
559 | 559 | | |
560 | 560 | | |
561 | 561 | | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
562 | 573 | | |
563 | 574 | | |
564 | 575 | | |
| |||
0 commit comments