Counter ASIC 3.0 gates (node): the replay gate passes on the bonus across a span past two weight windows (697 blocks synced from genesis in 5 s, 0 rule errors, the payout unchanged); the devnet-window case (four hours) named as owed before a switch is set there
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
add9708f5a
commit
bbff44dcbc
2 changed files with 778 additions and 1 deletions
|
|
@ -0,0 +1,776 @@
|
|||
{
|
||||
"pass": true,
|
||||
"expect": "bonus",
|
||||
"rule": "bonus",
|
||||
"case": "rule-bonus-expect-bonus-replay-long",
|
||||
"replay": {
|
||||
"synced": true,
|
||||
"at_s": 666.8,
|
||||
"seconds_to_sync": 5,
|
||||
"c_blocks": 697,
|
||||
"a_blocks": 697,
|
||||
"c_sink": "fc4d942db2e17834",
|
||||
"a_sink": "fc4d942db2e17834",
|
||||
"rule_error_lines": 0,
|
||||
"rule_error_example": null,
|
||||
"digest_refusal_lines": 2,
|
||||
"late_bps": null
|
||||
},
|
||||
"secs": 660,
|
||||
"tail": 120,
|
||||
"keys": {
|
||||
"a": "46a9674d2fa6e63167d9023f556cae70835c1101ec2591836eebd293529ad995",
|
||||
"b": "06a98f41634991a1be682abbed01d4f5ec9e7d3b1124aa2bf79aec4e8e4b9057"
|
||||
},
|
||||
"pairs_a": 58,
|
||||
"pairs_b": 61,
|
||||
"skipped_wide_mergesets": 1,
|
||||
"daa_range": [
|
||||
566,
|
||||
686
|
||||
],
|
||||
"median_producer": {
|
||||
"a": 254057484,
|
||||
"b": 228646982
|
||||
},
|
||||
"median_pool": {
|
||||
"a": 63514370,
|
||||
"b": 88918270
|
||||
},
|
||||
"producer_ratio_b_over_a": 0.8999812892738873,
|
||||
"pool_reading_b": 0.34999272054508734,
|
||||
"wanted": {
|
||||
"producer": 0.9,
|
||||
"pool_over_full_producer": 0.35
|
||||
},
|
||||
"checks": {
|
||||
"enough_pairs": true,
|
||||
"producer_ratio_matches": true,
|
||||
"pool_reading_matches": true,
|
||||
"a_pool_is_a_quarter": true,
|
||||
"replay_late_node_holds_every_block": true,
|
||||
"replay_no_coinbase_rule_error": true
|
||||
},
|
||||
"rows": {
|
||||
"a": [
|
||||
{
|
||||
"daa": 685,
|
||||
"producer": 254106776,
|
||||
"pool": 63526694,
|
||||
"parent_daa": 684
|
||||
},
|
||||
{
|
||||
"daa": 683,
|
||||
"producer": 254105016,
|
||||
"pool": 63526253,
|
||||
"parent_daa": 682
|
||||
},
|
||||
{
|
||||
"daa": 682,
|
||||
"producer": 254104136,
|
||||
"pool": 63526033,
|
||||
"parent_daa": 681
|
||||
},
|
||||
{
|
||||
"daa": 680,
|
||||
"producer": 254102375,
|
||||
"pool": 63525593,
|
||||
"parent_daa": 679
|
||||
},
|
||||
{
|
||||
"daa": 676,
|
||||
"producer": 254098854,
|
||||
"pool": 63524713,
|
||||
"parent_daa": 675
|
||||
},
|
||||
{
|
||||
"daa": 672,
|
||||
"producer": 254095333,
|
||||
"pool": 63523833,
|
||||
"parent_daa": 671
|
||||
},
|
||||
{
|
||||
"daa": 671,
|
||||
"producer": 254094453,
|
||||
"pool": 63523613,
|
||||
"parent_daa": 670
|
||||
},
|
||||
{
|
||||
"daa": 667,
|
||||
"producer": 254090932,
|
||||
"pool": 63522733,
|
||||
"parent_daa": 666
|
||||
},
|
||||
{
|
||||
"daa": 666,
|
||||
"producer": 254090052,
|
||||
"pool": 63522512,
|
||||
"parent_daa": 665
|
||||
},
|
||||
{
|
||||
"daa": 665,
|
||||
"producer": 254089172,
|
||||
"pool": 63522292,
|
||||
"parent_daa": 664
|
||||
},
|
||||
{
|
||||
"daa": 663,
|
||||
"producer": 254087412,
|
||||
"pool": 63521852,
|
||||
"parent_daa": 662
|
||||
},
|
||||
{
|
||||
"daa": 661,
|
||||
"producer": 254085651,
|
||||
"pool": 63521412,
|
||||
"parent_daa": 660
|
||||
},
|
||||
{
|
||||
"daa": 659,
|
||||
"producer": 254083890,
|
||||
"pool": 63520972,
|
||||
"parent_daa": 658
|
||||
},
|
||||
{
|
||||
"daa": 655,
|
||||
"producer": 254080369,
|
||||
"pool": 63520092,
|
||||
"parent_daa": 654
|
||||
},
|
||||
{
|
||||
"daa": 652,
|
||||
"producer": 254077728,
|
||||
"pool": 63519432,
|
||||
"parent_daa": 651
|
||||
},
|
||||
{
|
||||
"daa": 650,
|
||||
"producer": 254075968,
|
||||
"pool": 63518992,
|
||||
"parent_daa": 649
|
||||
},
|
||||
{
|
||||
"daa": 648,
|
||||
"producer": 254074208,
|
||||
"pool": 63518551,
|
||||
"parent_daa": 647
|
||||
},
|
||||
{
|
||||
"daa": 646,
|
||||
"producer": 254072448,
|
||||
"pool": 63518111,
|
||||
"parent_daa": 645
|
||||
},
|
||||
{
|
||||
"daa": 645,
|
||||
"producer": 254071567,
|
||||
"pool": 63517891,
|
||||
"parent_daa": 644
|
||||
},
|
||||
{
|
||||
"daa": 644,
|
||||
"producer": 254070687,
|
||||
"pool": 63517671,
|
||||
"parent_daa": 643
|
||||
},
|
||||
{
|
||||
"daa": 643,
|
||||
"producer": 254069807,
|
||||
"pool": 63517451,
|
||||
"parent_daa": 642
|
||||
},
|
||||
{
|
||||
"daa": 641,
|
||||
"producer": 254068046,
|
||||
"pool": 63517011,
|
||||
"parent_daa": 640
|
||||
},
|
||||
{
|
||||
"daa": 639,
|
||||
"producer": 254066286,
|
||||
"pool": 63516571,
|
||||
"parent_daa": 638
|
||||
},
|
||||
{
|
||||
"daa": 636,
|
||||
"producer": 254063645,
|
||||
"pool": 63515911,
|
||||
"parent_daa": 635
|
||||
},
|
||||
{
|
||||
"daa": 635,
|
||||
"producer": 254062765,
|
||||
"pool": 63515691,
|
||||
"parent_daa": 634
|
||||
},
|
||||
{
|
||||
"daa": 633,
|
||||
"producer": 254061004,
|
||||
"pool": 63515251,
|
||||
"parent_daa": 632
|
||||
},
|
||||
{
|
||||
"daa": 631,
|
||||
"producer": 254059244,
|
||||
"pool": 63514811,
|
||||
"parent_daa": 630
|
||||
},
|
||||
{
|
||||
"daa": 630,
|
||||
"producer": 254058364,
|
||||
"pool": 63514590,
|
||||
"parent_daa": 629
|
||||
},
|
||||
{
|
||||
"daa": 629,
|
||||
"producer": 254057484,
|
||||
"pool": 63514370,
|
||||
"parent_daa": 628
|
||||
},
|
||||
{
|
||||
"daa": 627,
|
||||
"producer": 254055723,
|
||||
"pool": 63513930,
|
||||
"parent_daa": 626
|
||||
},
|
||||
{
|
||||
"daa": 624,
|
||||
"producer": 254053083,
|
||||
"pool": 63513270,
|
||||
"parent_daa": 623
|
||||
},
|
||||
{
|
||||
"daa": 622,
|
||||
"producer": 254051322,
|
||||
"pool": 63512830,
|
||||
"parent_daa": 621
|
||||
},
|
||||
{
|
||||
"daa": 621,
|
||||
"producer": 254050442,
|
||||
"pool": 63512610,
|
||||
"parent_daa": 620
|
||||
},
|
||||
{
|
||||
"daa": 620,
|
||||
"producer": 254049561,
|
||||
"pool": 63512390,
|
||||
"parent_daa": 619
|
||||
},
|
||||
{
|
||||
"daa": 618,
|
||||
"producer": 254047801,
|
||||
"pool": 63511950,
|
||||
"parent_daa": 617
|
||||
},
|
||||
{
|
||||
"daa": 615,
|
||||
"producer": 254045160,
|
||||
"pool": 63511290,
|
||||
"parent_daa": 614
|
||||
},
|
||||
{
|
||||
"daa": 613,
|
||||
"producer": 254043400,
|
||||
"pool": 63510849,
|
||||
"parent_daa": 612
|
||||
},
|
||||
{
|
||||
"daa": 608,
|
||||
"producer": 254038999,
|
||||
"pool": 63509749,
|
||||
"parent_daa": 607
|
||||
},
|
||||
{
|
||||
"daa": 605,
|
||||
"producer": 254036358,
|
||||
"pool": 63509089,
|
||||
"parent_daa": 604
|
||||
},
|
||||
{
|
||||
"daa": 604,
|
||||
"producer": 254035478,
|
||||
"pool": 63508869,
|
||||
"parent_daa": 603
|
||||
},
|
||||
{
|
||||
"daa": 602,
|
||||
"producer": 254033717,
|
||||
"pool": 63508429,
|
||||
"parent_daa": 601
|
||||
},
|
||||
{
|
||||
"daa": 601,
|
||||
"producer": 254032837,
|
||||
"pool": 63508209,
|
||||
"parent_daa": 600
|
||||
},
|
||||
{
|
||||
"daa": 600,
|
||||
"producer": 254031957,
|
||||
"pool": 63507989,
|
||||
"parent_daa": 599
|
||||
},
|
||||
{
|
||||
"daa": 599,
|
||||
"producer": 254031077,
|
||||
"pool": 63507769,
|
||||
"parent_daa": 598
|
||||
},
|
||||
{
|
||||
"daa": 597,
|
||||
"producer": 254029316,
|
||||
"pool": 63507329,
|
||||
"parent_daa": 596
|
||||
},
|
||||
{
|
||||
"daa": 596,
|
||||
"producer": 254028436,
|
||||
"pool": 63507109,
|
||||
"parent_daa": 595
|
||||
},
|
||||
{
|
||||
"daa": 593,
|
||||
"producer": 254025796,
|
||||
"pool": 63506448,
|
||||
"parent_daa": 592
|
||||
},
|
||||
{
|
||||
"daa": 592,
|
||||
"producer": 254024916,
|
||||
"pool": 63506228,
|
||||
"parent_daa": 591
|
||||
},
|
||||
{
|
||||
"daa": 591,
|
||||
"producer": 254024035,
|
||||
"pool": 63506008,
|
||||
"parent_daa": 590
|
||||
},
|
||||
{
|
||||
"daa": 590,
|
||||
"producer": 254023155,
|
||||
"pool": 63505788,
|
||||
"parent_daa": 589
|
||||
},
|
||||
{
|
||||
"daa": 589,
|
||||
"producer": 254022275,
|
||||
"pool": 63505568,
|
||||
"parent_daa": 588
|
||||
},
|
||||
{
|
||||
"daa": 588,
|
||||
"producer": 254021394,
|
||||
"pool": 63505348,
|
||||
"parent_daa": 587
|
||||
},
|
||||
{
|
||||
"daa": 587,
|
||||
"producer": 254020514,
|
||||
"pool": 63505128,
|
||||
"parent_daa": 586
|
||||
},
|
||||
{
|
||||
"daa": 586,
|
||||
"producer": 254019634,
|
||||
"pool": 63504908,
|
||||
"parent_daa": 585
|
||||
},
|
||||
{
|
||||
"daa": 573,
|
||||
"producer": 254008191,
|
||||
"pool": 63502047,
|
||||
"parent_daa": 572
|
||||
},
|
||||
{
|
||||
"daa": 572,
|
||||
"producer": 254007311,
|
||||
"pool": 63501827,
|
||||
"parent_daa": 571
|
||||
},
|
||||
{
|
||||
"daa": 569,
|
||||
"producer": 254004670,
|
||||
"pool": 63501167,
|
||||
"parent_daa": 568
|
||||
},
|
||||
{
|
||||
"daa": 567,
|
||||
"producer": 254002910,
|
||||
"pool": 63500727,
|
||||
"parent_daa": 566
|
||||
}
|
||||
],
|
||||
"b": [
|
||||
{
|
||||
"daa": 686,
|
||||
"producer": 228696891,
|
||||
"pool": 88937679,
|
||||
"parent_daa": 685
|
||||
},
|
||||
{
|
||||
"daa": 684,
|
||||
"producer": 228695307,
|
||||
"pool": 88937062,
|
||||
"parent_daa": 683
|
||||
},
|
||||
{
|
||||
"daa": 681,
|
||||
"producer": 228692931,
|
||||
"pool": 88936138,
|
||||
"parent_daa": 680
|
||||
},
|
||||
{
|
||||
"daa": 679,
|
||||
"producer": 228691346,
|
||||
"pool": 88935522,
|
||||
"parent_daa": 678
|
||||
},
|
||||
{
|
||||
"daa": 678,
|
||||
"producer": 228690554,
|
||||
"pool": 88935214,
|
||||
"parent_daa": 677
|
||||
},
|
||||
{
|
||||
"daa": 677,
|
||||
"producer": 228689761,
|
||||
"pool": 88934906,
|
||||
"parent_daa": 676
|
||||
},
|
||||
{
|
||||
"daa": 675,
|
||||
"producer": 228688177,
|
||||
"pool": 88934290,
|
||||
"parent_daa": 674
|
||||
},
|
||||
{
|
||||
"daa": 674,
|
||||
"producer": 228687385,
|
||||
"pool": 88933982,
|
||||
"parent_daa": 673
|
||||
},
|
||||
{
|
||||
"daa": 673,
|
||||
"producer": 228686592,
|
||||
"pool": 88933674,
|
||||
"parent_daa": 672
|
||||
},
|
||||
{
|
||||
"daa": 670,
|
||||
"producer": 228684215,
|
||||
"pool": 88932750,
|
||||
"parent_daa": 669
|
||||
},
|
||||
{
|
||||
"daa": 669,
|
||||
"producer": 228683423,
|
||||
"pool": 88932442,
|
||||
"parent_daa": 668
|
||||
},
|
||||
{
|
||||
"daa": 668,
|
||||
"producer": 228682631,
|
||||
"pool": 88932134,
|
||||
"parent_daa": 667
|
||||
},
|
||||
{
|
||||
"daa": 664,
|
||||
"producer": 228679463,
|
||||
"pool": 88930901,
|
||||
"parent_daa": 663
|
||||
},
|
||||
{
|
||||
"daa": 662,
|
||||
"producer": 228677878,
|
||||
"pool": 88930285,
|
||||
"parent_daa": 661
|
||||
},
|
||||
{
|
||||
"daa": 660,
|
||||
"producer": 228676294,
|
||||
"pool": 88929669,
|
||||
"parent_daa": 659
|
||||
},
|
||||
{
|
||||
"daa": 658,
|
||||
"producer": 228674709,
|
||||
"pool": 88929053,
|
||||
"parent_daa": 657
|
||||
},
|
||||
{
|
||||
"daa": 657,
|
||||
"producer": 228673917,
|
||||
"pool": 88928745,
|
||||
"parent_daa": 656
|
||||
},
|
||||
{
|
||||
"daa": 656,
|
||||
"producer": 228673125,
|
||||
"pool": 88928437,
|
||||
"parent_daa": 655
|
||||
},
|
||||
{
|
||||
"daa": 651,
|
||||
"producer": 228669164,
|
||||
"pool": 88926896,
|
||||
"parent_daa": 650
|
||||
},
|
||||
{
|
||||
"daa": 649,
|
||||
"producer": 228667580,
|
||||
"pool": 88926280,
|
||||
"parent_daa": 648
|
||||
},
|
||||
{
|
||||
"daa": 647,
|
||||
"producer": 228665996,
|
||||
"pool": 88925663,
|
||||
"parent_daa": 646
|
||||
},
|
||||
{
|
||||
"daa": 642,
|
||||
"producer": 228662035,
|
||||
"pool": 88924123,
|
||||
"parent_daa": 641
|
||||
},
|
||||
{
|
||||
"daa": 640,
|
||||
"producer": 228660450,
|
||||
"pool": 88923507,
|
||||
"parent_daa": 639
|
||||
},
|
||||
{
|
||||
"daa": 638,
|
||||
"producer": 228658865,
|
||||
"pool": 88922891,
|
||||
"parent_daa": 637
|
||||
},
|
||||
{
|
||||
"daa": 637,
|
||||
"producer": 228658073,
|
||||
"pool": 88922583,
|
||||
"parent_daa": 636
|
||||
},
|
||||
{
|
||||
"daa": 634,
|
||||
"producer": 228655696,
|
||||
"pool": 88921659,
|
||||
"parent_daa": 633
|
||||
},
|
||||
{
|
||||
"daa": 632,
|
||||
"producer": 228654112,
|
||||
"pool": 88921043,
|
||||
"parent_daa": 631
|
||||
},
|
||||
{
|
||||
"daa": 628,
|
||||
"producer": 228650944,
|
||||
"pool": 88919810,
|
||||
"parent_daa": 627
|
||||
},
|
||||
{
|
||||
"daa": 626,
|
||||
"producer": 228649359,
|
||||
"pool": 88919194,
|
||||
"parent_daa": 625
|
||||
},
|
||||
{
|
||||
"daa": 625,
|
||||
"producer": 228648567,
|
||||
"pool": 88918886,
|
||||
"parent_daa": 624
|
||||
},
|
||||
{
|
||||
"daa": 623,
|
||||
"producer": 228646982,
|
||||
"pool": 88918270,
|
||||
"parent_daa": 622
|
||||
},
|
||||
{
|
||||
"daa": 619,
|
||||
"producer": 228643813,
|
||||
"pool": 88917038,
|
||||
"parent_daa": 618
|
||||
},
|
||||
{
|
||||
"daa": 617,
|
||||
"producer": 228642229,
|
||||
"pool": 88916422,
|
||||
"parent_daa": 616
|
||||
},
|
||||
{
|
||||
"daa": 616,
|
||||
"producer": 228641436,
|
||||
"pool": 88916114,
|
||||
"parent_daa": 615
|
||||
},
|
||||
{
|
||||
"daa": 614,
|
||||
"producer": 228639852,
|
||||
"pool": 88915498,
|
||||
"parent_daa": 613
|
||||
},
|
||||
{
|
||||
"daa": 612,
|
||||
"producer": 228638268,
|
||||
"pool": 88914881,
|
||||
"parent_daa": 611
|
||||
},
|
||||
{
|
||||
"daa": 611,
|
||||
"producer": 228637476,
|
||||
"pool": 88914573,
|
||||
"parent_daa": 610
|
||||
},
|
||||
{
|
||||
"daa": 610,
|
||||
"producer": 228636684,
|
||||
"pool": 88914265,
|
||||
"parent_daa": 609
|
||||
},
|
||||
{
|
||||
"daa": 609,
|
||||
"producer": 228635892,
|
||||
"pool": 88913956,
|
||||
"parent_daa": 608
|
||||
},
|
||||
{
|
||||
"daa": 607,
|
||||
"producer": 228634308,
|
||||
"pool": 88913340,
|
||||
"parent_daa": 606
|
||||
},
|
||||
{
|
||||
"daa": 606,
|
||||
"producer": 228633516,
|
||||
"pool": 88913032,
|
||||
"parent_daa": 605
|
||||
},
|
||||
{
|
||||
"daa": 603,
|
||||
"producer": 228631139,
|
||||
"pool": 88912108,
|
||||
"parent_daa": 602
|
||||
},
|
||||
{
|
||||
"daa": 598,
|
||||
"producer": 228627177,
|
||||
"pool": 88910568,
|
||||
"parent_daa": 597
|
||||
},
|
||||
{
|
||||
"daa": 595,
|
||||
"producer": 228624801,
|
||||
"pool": 88909643,
|
||||
"parent_daa": 594
|
||||
},
|
||||
{
|
||||
"daa": 594,
|
||||
"producer": 228624009,
|
||||
"pool": 88909335,
|
||||
"parent_daa": 593
|
||||
},
|
||||
{
|
||||
"daa": 585,
|
||||
"producer": 228616879,
|
||||
"pool": 88906563,
|
||||
"parent_daa": 584
|
||||
},
|
||||
{
|
||||
"daa": 584,
|
||||
"producer": 228616086,
|
||||
"pool": 88906255,
|
||||
"parent_daa": 583
|
||||
},
|
||||
{
|
||||
"daa": 583,
|
||||
"producer": 228615294,
|
||||
"pool": 88905947,
|
||||
"parent_daa": 582
|
||||
},
|
||||
{
|
||||
"daa": 582,
|
||||
"producer": 228614502,
|
||||
"pool": 88905639,
|
||||
"parent_daa": 581
|
||||
},
|
||||
{
|
||||
"daa": 581,
|
||||
"producer": 228613709,
|
||||
"pool": 88905331,
|
||||
"parent_daa": 580
|
||||
},
|
||||
{
|
||||
"daa": 580,
|
||||
"producer": 228612917,
|
||||
"pool": 88905023,
|
||||
"parent_daa": 579
|
||||
},
|
||||
{
|
||||
"daa": 579,
|
||||
"producer": 228612125,
|
||||
"pool": 88904715,
|
||||
"parent_daa": 578
|
||||
},
|
||||
{
|
||||
"daa": 578,
|
||||
"producer": 228611333,
|
||||
"pool": 88904407,
|
||||
"parent_daa": 577
|
||||
},
|
||||
{
|
||||
"daa": 577,
|
||||
"producer": 228610541,
|
||||
"pool": 88904098,
|
||||
"parent_daa": 576
|
||||
},
|
||||
{
|
||||
"daa": 576,
|
||||
"producer": 228609749,
|
||||
"pool": 88903790,
|
||||
"parent_daa": 575
|
||||
},
|
||||
{
|
||||
"daa": 575,
|
||||
"producer": 228608957,
|
||||
"pool": 88903482,
|
||||
"parent_daa": 574
|
||||
},
|
||||
{
|
||||
"daa": 574,
|
||||
"producer": 228608165,
|
||||
"pool": 88903174,
|
||||
"parent_daa": 573
|
||||
},
|
||||
{
|
||||
"daa": 571,
|
||||
"producer": 228605788,
|
||||
"pool": 88902250,
|
||||
"parent_daa": 570
|
||||
},
|
||||
{
|
||||
"daa": 570,
|
||||
"producer": 228604995,
|
||||
"pool": 88901942,
|
||||
"parent_daa": 569
|
||||
},
|
||||
{
|
||||
"daa": 568,
|
||||
"producer": 228603411,
|
||||
"pool": 88901326,
|
||||
"parent_daa": 567
|
||||
},
|
||||
{
|
||||
"daa": 566,
|
||||
"producer": 228601827,
|
||||
"pool": 88900709,
|
||||
"parent_daa": 565
|
||||
}
|
||||
]
|
||||
},
|
||||
"node": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-0316/target-0316/release/igneumd",
|
||||
"miner": "/Users/joshm/Projects/igneum-wt-ca3-v4-node/vendor/igneum-node-0316/target-0316/release/igneum-miner"
|
||||
}
|
||||
|
|
@ -237,7 +237,7 @@ the project lead, 6 October 2026: "weigh it up, implement only if 95%+ of the mi
|
|||
|
||||
The model figures (51-percent.md section 5, "silence then costs 7,757 IGN an hour at 34 percent"): a full block pays 3,168,808,781 sompi, the producer 2,535,047,025; the burn is 507,009,405 per block, so at 34 percent of an hour's 3,600 blocks (1,224) silence costs 620,579,511,720 sompi = 6,205.8 IGN an hour. The document's 7,757 is 20 percent of the WHOLE subsidy (633,761,756 x 1,224); the rule as asked ("20 percent of its producer share") gives 6,206. Named, not resolved here: which base the weigh-up wants. Also named: the silence reading depends on the carried-vote records a node holds; a node validating a block more than two weight windows after the block's time (an archival sync from genesis) reads them after their pruning horizon, so either switch stays never until a replay test (sync a fresh node across a switched-on span and compare its coinbase verdicts) exists.
|
||||
|
||||
**The replay gate: FAILED on both switches at 22:13 to 22:31Z, then PASSED on both at 00:16 to 00:30Z once the silence reading became a function of the block's own past (fork 812c3ac2).** The first reading took "the latest checkpoint this node has determined in the block's past" from the node's finality state; a node syncing in IBD determines on another schedule than one that saw the chain live, so the two expected different coinbases. Now the index is the one the block's own blue score (or DAA score) determines, the checkpoint block is walked on the block's own chain, the table is `weights_at` on it, and participation counts the carried votes whose carriers lie in the block's past. The one node-local input left is the vote records' carrier lists; the gate below says they agree over a 300-s span synced from genesis. Not yet shown: a fresh node syncing a span longer than two weight windows (the records behind the pruning horizon), which is the gate before either switch is set on a chain older than that. The original failure, kept for the record: A third node C started from nothing after a 300-s span with the burn on and synced from genesis: it held 81 blocks against A's 340 after 240 s and its log read `Consensus detected UTXO-invalid blocks which are disqualified from the virtual selected chain (possibly due to inheritance): 240 disqualified vs. 81 valid chain blocks`. A node that was not present reads `silent_builder` differently from one that was (its finality state at validation time is not the same: which checkpoint it has determined for a block's past, which vote records it holds, which carriers), so it expects a different coinbase and marks the chain UTXO-invalid from the first disagreement. That is the hazard section 7.6 named ("the silence reading depends on the carried-vote records a node holds") made concrete, and it is a consensus split, not a payout error. Both switches stay never. The fix class before either is ever set: a silence reading that is a pure function of the block's past as every node sees it (the carried votes in the blocks below the block, counted against a checkpoint definition that needs no node-local determination timing), with this replay gate passing on burn and bonus. The bonus case's replay is expected to fail the same way (same reading); its line follows below.
|
||||
**The replay gate: FAILED on both switches at 22:13 to 22:31Z, then PASSED on both at 00:16 to 00:30Z once the silence reading became a function of the block's own past (fork 812c3ac2).** The first reading took "the latest checkpoint this node has determined in the block's past" from the node's finality state; a node syncing in IBD determines on another schedule than one that saw the chain live, so the two expected different coinbases. Now the index is the one the block's own blue score (or DAA score) determines, the checkpoint block is walked on the block's own chain, the table is `weights_at` on it, and participation counts the carried votes whose carriers lie in the block's past. The one node-local input left is the vote records' carrier lists; the gate below says they agree over a 300-s span synced from genesis. The long-span case (a 660-s span past two 120-DAA weight windows, the records behind the pruning horizon) passed at 00:42Z on the fast-time profile; on the devnet's 7,200-DAA window the same case is a four-hour run and is owed before a switch is set there. The original failure, kept for the record: A third node C started from nothing after a 300-s span with the burn on and synced from genesis: it held 81 blocks against A's 340 after 240 s and its log read `Consensus detected UTXO-invalid blocks which are disqualified from the virtual selected chain (possibly due to inheritance): 240 disqualified vs. 81 valid chain blocks`. A node that was not present reads `silent_builder` differently from one that was (its finality state at validation time is not the same: which checkpoint it has determined for a block's past, which vote records it holds, which carriers), so it expects a different coinbase and marks the chain UTXO-invalid from the first disagreement. That is the hazard section 7.6 named ("the silence reading depends on the carried-vote records a node holds") made concrete, and it is a consensus split, not a payout error. Both switches stay never. The fix class before either is ever set: a silence reading that is a pure function of the block's past as every node sees it (the carried votes in the blocks below the block, counted against a checkpoint definition that needs no node-local determination timing), with this replay gate passing on burn and bonus. The bonus case's replay is expected to fail the same way (same reading); its line follows below.
|
||||
|
||||
Harness `infra/fast-time/vote-or-burn.mjs`: node A's miner votes, node B's runs `--no-vote`, one thread each, 300 s; the last 120 chain blocks of A whose mergeset is their selected parent alone give (producer, pool) pairs sorted by the parent's key; the medians' ratio B / A is the producer reading, B's pool over A's producer the pool reading. `--rule none`: 1.00 and 0.25; `--rule burn`: 0.80 and 0.25; `--rule bonus`: 0.90 and 0.35; `--rule none --expect burn` must FAIL.
|
||||
|
||||
|
|
@ -250,6 +250,7 @@ Harness `infra/fast-time/vote-or-burn.mjs`: node A's miner votes, node B's runs
|
|||
| `--rule burn --replay --replay-bps 2500` (the replay gate's own failed shape: the late node on another digest) | 22:31 to 22:40Z | FAIL as it must: C held 0 blocks (its handshake refused, 6 digest refusal lines, 0 rule errors); the payout side unchanged (ratio 0.8000) | `vote-or-burn-rule-burn-expect-burn-replay-bps2500.json` |
|
||||
| `--rule burn --expect burn --replay`, binaries at 812c3ac2 (igneumd 19670ddd..., igneum-miner ef51249c...) | 00:16 to 00:24Z | PASS: the late node C synced every block in 5 s (313 against 313, one sink fb054883), 0 rule error lines; the payout unchanged (ratio 0.8000, B's pool 0.2500 of A's producer, 65 and 54 pairs) | `vote-or-burn-rule-burn-expect-burn-replay.json` |
|
||||
| `--rule bonus --expect bonus --replay`, 812c3ac2 | 00:24 to 00:30Z | PASS: C synced in 5 s (331 against 331, one sink 20e976eb), 0 rule error lines; the payout unchanged (ratio 0.9000, B's pool 0.3500 of A's producer, 48 and 71 pairs) | `vote-or-burn-rule-bonus-expect-bonus-replay.json` |
|
||||
| `--rule bonus --expect bonus --replay --secs 660` (a span past two 120-DAA weight windows), 812c3ac2 | 00:31 to 00:42Z | PASS: C synced the 697-block span from genesis in 5 s (697 against 697, one sink fc4d942d), 0 rule error lines; the payout unchanged (ratio 0.9000, the pool 0.3500, 58 and 61 pairs over DAA 566 to 686) | `vote-or-burn-rule-bonus-expect-bonus-replay-long.json` |
|
||||
|
||||
### 7.7 The miner's stall guard and the node's idle-peer drop (ledger N4)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue