Commit adc3491
committed
dash(G1): deterministic equal-feerate tx selection for byte-parity
Block-template tx ordering was the next non-deterministic seam after the
curtime seam (#622): get_sorted_txs_with_fees streamed a
std::multimap<double,uint256>, so equal-feerate txs kept mempool
INSERTION order — node-dependent, breaking G1 byte-parity of the
embedded-GBT template projection against the p2pool-dash/dashcore oracle.
Replace the index with a FeeKey set sorting feerate-desc then txid-asc,
matching dashcore CompareTxMemPoolEntryByAncestorFee (GetHash tiebreak).
Selection is now byte-reproducible regardless of arrival order.
Fenced to src/impl/dash/coin/mempool.hpp + test. No shared/other-coin
tree, no consensus-value change (same txs, deterministic order). KAT
pins equal-feerate ties resolve txid-ascending, insertion-independent.1 parent 083071d commit adc3491
2 files changed
Lines changed: 84 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| |||
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
75 | 91 | | |
76 | 92 | | |
77 | 93 | | |
| |||
139 | 155 | | |
140 | 156 | | |
141 | 157 | | |
142 | | - | |
| 158 | + | |
143 | 159 | | |
144 | 160 | | |
145 | 161 | | |
| |||
243 | 259 | | |
244 | 260 | | |
245 | 261 | | |
246 | | - | |
| 262 | + | |
247 | 263 | | |
248 | 264 | | |
249 | 265 | | |
| |||
346 | 362 | | |
347 | 363 | | |
348 | 364 | | |
349 | | - | |
350 | | - | |
| 365 | + | |
| 366 | + | |
351 | 367 | | |
352 | 368 | | |
353 | 369 | | |
| |||
388 | 404 | | |
389 | 405 | | |
390 | 406 | | |
391 | | - | |
| 407 | + | |
392 | 408 | | |
393 | 409 | | |
394 | 410 | | |
| |||
415 | 431 | | |
416 | 432 | | |
417 | 433 | | |
418 | | - | |
419 | | - | |
420 | | - | |
421 | | - | |
422 | | - | |
423 | | - | |
424 | | - | |
| 434 | + | |
425 | 435 | | |
426 | 436 | | |
427 | 437 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
| 30 | + | |
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
| |||
254 | 256 | | |
255 | 257 | | |
256 | 258 | | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
0 commit comments