sim/difficulty results, 3 October 2026
Raw simulator output behind docs/analysis/difficulty-2026-10-03.md. Final parameters: short window 120,
hold 8, prior 16, long lane from 600, trigger 25%, harden 3%, ease 10%, cap 20 T.
Synthetic set, honest timestamps
python3 sim.py
up50: hash rate x50 at 3 h
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
1542.1 |
1542.1 |
4967 |
0.009 |
0.012 |
0.126 |
9.5 |
3760 |
0 |
21511 |
none |
| monero |
94.0 |
94.0 |
713 |
0.089 |
0.037 |
0.144 |
10.3 |
657 |
0 |
18490 |
none |
| lwma60 |
105.0 |
105.0 |
182 |
0.208 |
0.131 |
0.088 |
11.3 |
78 |
0 |
17977 |
none |
| lwma120 |
231.2 |
231.2 |
388 |
0.189 |
0.092 |
0.096 |
10.5 |
164 |
0 |
18078 |
none |
| igneum |
61.7 |
61.7 |
181 |
0.140 |
0.038 |
0.135 |
11.3 |
125 |
0 |
17927 |
377 |
| igneum-literal |
63.7 |
63.7 |
186 |
0.217 |
0.034 |
0.130 |
11.3 |
127 |
0 |
17956 |
230 |
down50: hash rate /50 at 3 h
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
12295.7 |
12295.7 |
1569 |
5.102 |
0.012 |
0.126 |
178.5 |
1648 |
1256 |
16185 |
none |
| monero |
6432.8 |
6432.8 |
701 |
0.039 |
0.037 |
0.144 |
187.3 |
0 |
567 |
19356 |
none |
| lwma60 |
577.9 |
577.9 |
111 |
0.154 |
0.131 |
0.088 |
118.7 |
0 |
55 |
24588 |
none |
| lwma120 |
1073.6 |
1073.6 |
177 |
0.129 |
0.092 |
0.096 |
64.9 |
0 |
97 |
24205 |
none |
| igneum |
657.4 |
657.4 |
147 |
0.062 |
0.038 |
0.135 |
35.3 |
0 |
90 |
24548 |
474 |
| igneum-literal |
967.0 |
967.0 |
146 |
0.062 |
0.034 |
0.130 |
121.1 |
0 |
86 |
24276 |
267 |
epoch30: x1.3 or /1.3 at each epoch boundary from epoch 2
| controller |
first within 10% s |
settled s |
worst recovery s |
not recovered |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
1583.0 |
1583.0 |
1974.6 |
0 |
0.043 |
0.010 |
0.130 |
12.3 |
0 |
0 |
29403 |
none |
| monero |
456.2 |
456.2 |
603.3 |
0 |
0.116 |
0.038 |
0.141 |
16.0 |
0 |
0 |
28857 |
none |
| lwma60 |
91.1 |
156.9 |
310.6 |
0 |
0.291 |
0.132 |
0.090 |
11.6 |
0 |
0 |
28658 |
none |
| lwma120 |
136.9 |
153.1 |
240.8 |
0 |
0.229 |
0.094 |
0.097 |
11.5 |
0 |
0 |
28719 |
none |
| igneum |
86.5 |
143.7 |
260.8 |
0 |
0.126 |
0.030 |
0.133 |
11.3 |
0 |
0 |
28735 |
351 |
| igneum-literal |
86.4 |
143.8 |
260.8 |
0 |
0.050 |
0.018 |
0.130 |
11.3 |
0 |
0 |
28775 |
149 |
walk10: 10% per hour log random walk
| controller |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
0.049 |
0.144 |
11.1 |
0 |
0 |
21728 |
none |
| monero |
0.049 |
0.143 |
10.6 |
0 |
0 |
21541 |
none |
| lwma60 |
0.132 |
0.088 |
11.1 |
0 |
0 |
21486 |
none |
| lwma120 |
0.093 |
0.105 |
10.5 |
0 |
0 |
21518 |
none |
| igneum |
0.062 |
0.130 |
11.2 |
0 |
0 |
21521 |
519 |
| igneum-literal |
0.055 |
0.136 |
11.1 |
0 |
0 |
21523 |
184 |
hop3: 3x pool hops in and out every 15 min from 3 h
| controller |
first within 10% s |
settled s |
worst recovery s |
not recovered |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
none |
none |
none |
12 |
0 |
0.012 |
0.126 |
21.0 |
1208 |
1036 |
22128 |
none |
| monero |
336.7 |
336.7 |
362.4 |
6 |
0.062 |
0.037 |
0.144 |
18.6 |
2438 |
1437 |
20382 |
none |
| lwma60 |
109.5 |
166.9 |
373.4 |
0 |
0.270 |
0.131 |
0.088 |
14.7 |
111 |
42 |
21408 |
none |
| lwma120 |
161.8 |
184.3 |
292.1 |
0 |
0.201 |
0.092 |
0.096 |
15.0 |
215 |
129 |
21364 |
none |
| igneum |
124.0 |
189.5 |
410.3 |
0 |
0.229 |
0.038 |
0.135 |
11.8 |
213 |
182 |
21228 |
8054 |
| igneum-literal |
429.3 |
372.9 |
493.1 |
8 |
0.202 |
0.034 |
0.130 |
16.1 |
86 |
529 |
20913 |
4294 |
hop10: 10x pool hops in and out every 15 min from 3 h
| controller |
first within 10% s |
settled s |
worst recovery s |
not recovered |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
none |
none |
none |
12 |
0 |
0.012 |
0.126 |
52.1 |
5700 |
1035 |
22951 |
none |
| monero |
283.5 |
283.5 |
312.9 |
6 |
0.085 |
0.037 |
0.144 |
83.2 |
3551 |
569 |
19203 |
none |
| lwma60 |
165.5 |
263.9 |
542.0 |
0 |
0.242 |
0.131 |
0.088 |
34.3 |
315 |
198 |
21008 |
none |
| lwma120 |
282.8 |
325.5 |
789.0 |
0 |
0.199 |
0.092 |
0.096 |
30.2 |
576 |
417 |
20676 |
none |
| igneum |
208.1 |
211.9 |
382.9 |
0 |
0.230 |
0.038 |
0.135 |
25.0 |
422 |
321 |
20631 |
8445 |
| igneum-literal |
466.6 |
505.8 |
698.0 |
6 |
0.237 |
0.034 |
0.130 |
35.7 |
816 |
666 |
20683 |
5432 |
polluted: window polluted by a pre-step slow period (21 min at 0.11 blocks/s, 13 min idle, then 0.6 blocks/s at genesis difficulty)
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
peak rate |
trough rate after 10 min |
| kaspa |
650.7 |
2748.3 |
5163 |
6.942 |
0.010 |
0.134 |
11.2 |
2320 |
0 |
18592 |
none |
7.9 |
0.6 |
| monero |
124.0 |
124.0 |
735 |
0.092 |
0.032 |
0.142 |
10.4 |
675 |
0 |
17641 |
none |
15.0 |
0.9 |
| lwma60 |
66.1 |
66.1 |
113 |
0.183 |
0.132 |
0.089 |
11.3 |
36 |
0 |
17138 |
none |
5.7 |
0.6 |
| lwma120 |
110.3 |
110.3 |
201 |
0.147 |
0.091 |
0.108 |
10.5 |
74 |
0 |
17190 |
none |
6.0 |
0.7 |
| igneum |
70.0 |
70.0 |
136 |
0.180 |
0.049 |
0.122 |
11.3 |
72 |
0 |
17005 |
2585 |
8.5 |
0.6 |
| igneum-literal |
817.0 |
1876.4 |
2546 |
0.197 |
0.040 |
0.141 |
11.3 |
571 |
0 |
17618 |
1986 |
8.4 |
0.6 |
warmup-hard: genesis difficulty 10x too hard
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
5790.7 |
none |
none |
92.876 |
32.727 |
3.002 |
67.2 |
4860 |
599 |
6444 |
none |
| monero |
286.6 |
286.6 |
159 |
0.047 |
0.038 |
0.135 |
17.5 |
0 |
33 |
7011 |
none |
| lwma60 |
155.2 |
155.2 |
118 |
0.147 |
0.132 |
0.078 |
10.5 |
0 |
18 |
7128 |
none |
| lwma120 |
187.9 |
187.9 |
152 |
0.111 |
0.095 |
0.102 |
10.5 |
0 |
18 |
7128 |
none |
| igneum |
321.9 |
321.9 |
199 |
0.024 |
0.031 |
0.126 |
10.5 |
0 |
23 |
6953 |
138 |
| igneum-literal |
351.4 |
702.7 |
568 |
0.024 |
0.019 |
0.134 |
10.5 |
0 |
23 |
6979 |
179 |
warmup-easy: genesis difficulty 10x too easy
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
1554.8 |
1554.8 |
3168 |
0.011 |
0.008 |
0.137 |
9.8 |
599 |
0 |
8869 |
none |
| monero |
95.4 |
95.4 |
76 |
0.091 |
0.038 |
0.154 |
16.1 |
16 |
16 |
7145 |
none |
| lwma60 |
57.9 |
57.9 |
87 |
0.183 |
0.133 |
0.073 |
9.2 |
8 |
0 |
7192 |
none |
| lwma120 |
88.3 |
88.3 |
136 |
0.147 |
0.096 |
0.099 |
9.4 |
8 |
0 |
7225 |
none |
| igneum |
58.7 |
58.7 |
114 |
0.082 |
0.029 |
0.133 |
10.3 |
61 |
0 |
7192 |
120 |
| igneum-literal |
58.4 |
58.4 |
114 |
0.086 |
0.015 |
0.129 |
10.3 |
61 |
0 |
7209 |
191 |
Synthetic set, +-500 ms timestamp jitter
python3 sim.py --ts-noise 500 --profiles up50,down50,epoch30,hop10,polluted
up50: hash rate x50 at 3 h
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
1535.1 |
1535.1 |
4997 |
0.050 |
0.010 |
0.125 |
8.0 |
3876 |
0 |
21640 |
none |
| monero |
113.1 |
186.1 |
807 |
0.039 |
0.034 |
0.127 |
8.8 |
656 |
0 |
18496 |
none |
| lwma60 |
158.7 |
158.7 |
238 |
0.142 |
0.125 |
0.087 |
9.6 |
83 |
0 |
17939 |
none |
| lwma120 |
139.8 |
139.8 |
305 |
0.115 |
0.085 |
0.104 |
9.3 |
171 |
0 |
18047 |
none |
| igneum |
168.5 |
168.5 |
288 |
0.024 |
0.046 |
0.133 |
8.6 |
131 |
0 |
18082 |
435 |
| igneum-literal |
115.8 |
115.8 |
253 |
0.026 |
0.039 |
0.114 |
8.6 |
143 |
0 |
18145 |
338 |
down50: hash rate /50 at 3 h
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
12523.3 |
12523.3 |
1531 |
5.826 |
0.010 |
0.125 |
138.0 |
1736 |
1224 |
16001 |
none |
| monero |
6425.5 |
6425.5 |
686 |
0.061 |
0.034 |
0.127 |
191.9 |
0 |
555 |
19343 |
none |
| lwma60 |
712.2 |
846.7 |
232 |
0.168 |
0.125 |
0.087 |
77.8 |
0 |
51 |
24398 |
none |
| lwma120 |
965.9 |
965.9 |
156 |
0.140 |
0.085 |
0.104 |
80.7 |
0 |
93 |
24224 |
none |
| igneum |
895.5 |
1046.6 |
289 |
0.135 |
0.046 |
0.133 |
49.4 |
0 |
90 |
24438 |
593 |
| igneum-literal |
805.8 |
933.2 |
254 |
0.142 |
0.039 |
0.114 |
114.6 |
0 |
91 |
24579 |
307 |
epoch30: x1.3 or /1.3 at each epoch boundary from epoch 2
| controller |
first within 10% s |
settled s |
worst recovery s |
not recovered |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
1534.5 |
1534.5 |
1859.4 |
0 |
0.042 |
0.010 |
0.120 |
10.4 |
0 |
0 |
29420 |
none |
| monero |
440.2 |
440.2 |
559.7 |
0 |
0.089 |
0.038 |
0.124 |
10.0 |
0 |
0 |
28818 |
none |
| lwma60 |
63.2 |
63.2 |
131.8 |
0 |
0.256 |
0.119 |
0.087 |
11.9 |
0 |
0 |
28592 |
none |
| lwma120 |
84.3 |
123.6 |
259.8 |
0 |
0.223 |
0.079 |
0.097 |
10.4 |
0 |
0 |
28657 |
none |
| igneum |
55.2 |
55.2 |
172.1 |
0 |
0.200 |
0.036 |
0.130 |
9.9 |
0 |
0 |
28888 |
619 |
| igneum-literal |
51.4 |
51.4 |
172.1 |
0 |
0.108 |
0.036 |
0.106 |
10.1 |
0 |
0 |
28953 |
276 |
hop10: 10x pool hops in and out every 15 min from 3 h
| controller |
first within 10% s |
settled s |
worst recovery s |
not recovered |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
| kaspa |
none |
none |
none |
12 |
0 |
0.010 |
0.125 |
34.3 |
5786 |
1007 |
23012 |
none |
| monero |
276.9 |
276.9 |
305.1 |
6 |
0.083 |
0.034 |
0.127 |
76.5 |
3569 |
557 |
19172 |
none |
| lwma60 |
178.1 |
209.9 |
352.7 |
0 |
0.201 |
0.125 |
0.087 |
42.2 |
281 |
192 |
20902 |
none |
| lwma120 |
307.9 |
317.6 |
729.2 |
0 |
0.115 |
0.085 |
0.104 |
38.8 |
600 |
412 |
20529 |
none |
| igneum |
205.1 |
228.0 |
491.7 |
0 |
0.130 |
0.046 |
0.133 |
31.9 |
430 |
320 |
20770 |
8333 |
| igneum-literal |
473.2 |
382.0 |
647.2 |
9 |
0.086 |
0.039 |
0.114 |
28.1 |
714 |
759 |
20753 |
5370 |
polluted: window polluted by a pre-step slow period (21 min at 0.11 blocks/s, 13 min idle, then 0.6 blocks/s at genesis difficulty)
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
peak rate |
trough rate after 10 min |
| kaspa |
721.0 |
2722.4 |
5176 |
7.512 |
0.017 |
0.117 |
10.0 |
2384 |
0 |
18668 |
none |
8.5 |
0.6 |
| monero |
126.9 |
211.0 |
826 |
0.077 |
0.032 |
0.133 |
9.7 |
675 |
0 |
17706 |
none |
14.9 |
0.9 |
| lwma60 |
89.4 |
89.4 |
131 |
0.168 |
0.128 |
0.088 |
11.9 |
35 |
0 |
17088 |
none |
5.7 |
0.6 |
| lwma120 |
173.7 |
173.7 |
259 |
0.138 |
0.086 |
0.092 |
10.4 |
77 |
0 |
17152 |
none |
5.9 |
0.7 |
| igneum |
71.3 |
71.3 |
142 |
0.152 |
0.042 |
0.120 |
10.6 |
81 |
0 |
17139 |
2823 |
8.5 |
0.7 |
| igneum-literal |
715.3 |
2041.7 |
2720 |
0.110 |
0.036 |
0.120 |
11.1 |
633 |
0 |
17775 |
2018 |
8.5 |
0.7 |
The devnet record
python3 sim.py --profiles none --record devnet-2026-10-03.csv --events 2026-10-03T19:28:05+00:00,2026-10-03T19:42:40+00:00
Exact replay of Kaspa's rule on the record
Blocks 3682, chain blocks 1656, retargets checked 1056, exact before the first mismatch 0, mismatches 1056, first at daa 845: have 0x1e00a097 want 0x1e009b9a
(A chain-only replay cannot see the merged blocks that Kaspa's sampled window includes once the DAG widens.)
Real profile segments (hash rate estimated as expected hashes over wall time):
| from s |
to s |
blocks/s at genesis difficulty |
MH/s |
| 0 |
1215 |
0.114 |
30.7 |
| 1215 |
2090 |
0.006 |
1.5 |
| 2090 |
4064 |
0.433 |
116.2 |
real: the devnet record replayed as a hash-rate profile
| controller |
first within 10% s |
settled s |
recovery blocks |
overshoot |
steady std of rate |
steady blocks/min CV |
worst gap s |
blocks above 2x |
blocks below 0.5x |
blocks |
fast-lane blocks |
blocks within 10% |
step factor |
| kaspa |
261.9 |
none |
none |
6.244 |
1.599 |
0.567 |
7.8 |
2340 |
0 |
4776 |
none |
0 |
75.7 |
| monero |
135.9 |
135.9 |
729 |
0.092 |
0.027 |
0.119 |
6.8 |
672 |
0 |
3729 |
none |
2822 |
75.7 |
| lwma60 |
74.6 |
74.6 |
157 |
0.183 |
0.109 |
0.067 |
7.4 |
87 |
0 |
3890 |
none |
2175 |
75.7 |
| lwma120 |
156.5 |
156.5 |
330 |
0.147 |
0.084 |
0.086 |
7.1 |
174 |
0 |
3691 |
none |
2390 |
75.7 |
| igneum |
78.7 |
78.7 |
192 |
0.180 |
0.087 |
0.105 |
7.3 |
132 |
0 |
3740 |
2484 |
2608 |
75.7 |
| igneum-literal |
482.4 |
1516.2 |
2112 |
0.008 |
0.456 |
0.186 |
7.4 |
515 |
0 |
4119 |
1959 |
2170 |
75.7 |
Tuning sweeps
First sweep (symmetric 3% clamp, cap 6 T baseline):
Tune ns
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| ns=60 |
72.8 |
72.8 |
0.069 |
1843.1 |
1843.1 |
0.069 |
114.2 |
127.0 |
80.2 |
0.067 |
none |
none |
0.089 |
0/0 |
301.6 |
251.0 |
0.069 |
56.4 |
56.4 |
0.083 |
4.4 |
| ns=120 |
63.0 |
63.0 |
0.040 |
1786.2 |
1786.2 |
0.040 |
211.2 |
155.9 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
275.6 |
275.6 |
0.040 |
69.3 |
69.3 |
0.048 |
5.8 |
| ns=180 |
63.3 |
63.3 |
0.035 |
2131.4 |
2131.4 |
0.035 |
125.1 |
156.3 |
99.0 |
0.017 |
none |
none |
0.056 |
0/0 |
356.1 |
356.1 |
0.035 |
76.5 |
76.5 |
0.042 |
5.6 |
Tune trig
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| trig=0.15 |
66.7 |
66.7 |
0.077 |
1591.5 |
1591.5 |
0.077 |
98.7 |
137.3 |
107.3 |
0.070 |
none |
none |
0.082 |
0/0 |
312.9 |
261.8 |
0.077 |
58.1 |
58.1 |
0.075 |
5.8 |
| trig=0.25 |
63.0 |
63.0 |
0.040 |
1786.2 |
1786.2 |
0.040 |
211.2 |
155.9 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
275.6 |
275.6 |
0.040 |
69.3 |
69.3 |
0.048 |
5.8 |
| trig=0.35 |
62.9 |
62.9 |
0.034 |
1835.4 |
1835.4 |
0.034 |
126.4 |
156.3 |
99.0 |
0.016 |
none |
none |
0.054 |
0/0 |
328.5 |
279.2 |
0.034 |
78.4 |
78.4 |
0.042 |
5.5 |
Tune clamp_pct
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| clamp_pct=0.02 |
84.0 |
84.0 |
0.039 |
2588.2 |
2588.2 |
0.039 |
216.8 |
156.3 |
99.4 |
0.031 |
none |
none |
0.060 |
0/0 |
373.6 |
336.9 |
0.039 |
80.1 |
80.1 |
0.046 |
5.4 |
| clamp_pct=0.03 |
63.0 |
63.0 |
0.040 |
1786.2 |
1786.2 |
0.040 |
211.2 |
155.9 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
275.6 |
275.6 |
0.040 |
69.3 |
69.3 |
0.048 |
5.8 |
| clamp_pct=0.05 |
62.2 |
62.2 |
0.040 |
1312.5 |
1312.5 |
0.040 |
173.8 |
155.8 |
98.9 |
0.034 |
none |
none |
0.062 |
0/0 |
284.6 |
258.8 |
0.040 |
59.9 |
59.9 |
0.049 |
5.4 |
Tune ease_pct
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| ease_pct=0.03 |
63.0 |
63.0 |
0.040 |
1786.2 |
1786.2 |
0.040 |
211.2 |
155.9 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
275.6 |
275.6 |
0.040 |
69.3 |
69.3 |
0.048 |
5.8 |
| ease_pct=0.06 |
62.7 |
62.7 |
0.039 |
1282.5 |
1282.5 |
0.039 |
176.0 |
155.6 |
98.8 |
0.031 |
none |
none |
0.061 |
0/0 |
299.5 |
265.0 |
0.039 |
58.5 |
58.5 |
0.048 |
5.8 |
| ease_pct=0.1 |
62.2 |
62.2 |
0.039 |
1164.4 |
1164.4 |
0.039 |
65.3 |
155.5 |
98.8 |
0.030 |
none |
none |
0.062 |
0/0 |
253.4 |
253.4 |
0.039 |
71.7 |
71.7 |
0.048 |
6.2 |
Tune k0
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| k0=8 |
63.0 |
63.0 |
0.040 |
1786.6 |
1786.6 |
0.040 |
211.1 |
156.0 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
311.5 |
280.9 |
0.040 |
67.1 |
67.1 |
0.048 |
5.5 |
| k0=16 |
63.0 |
63.0 |
0.040 |
1786.2 |
1786.2 |
0.040 |
211.2 |
155.9 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
275.6 |
275.6 |
0.040 |
69.3 |
69.3 |
0.048 |
5.8 |
| k0=32 |
63.0 |
63.0 |
0.040 |
1786.9 |
1786.9 |
0.040 |
211.9 |
156.0 |
99.1 |
0.033 |
none |
none |
0.061 |
0/0 |
290.0 |
263.0 |
0.040 |
71.4 |
71.4 |
0.047 |
5.7 |
Tune cap
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| cap=6 |
63.0 |
63.0 |
0.040 |
1786.2 |
1786.2 |
0.040 |
211.2 |
155.9 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
275.6 |
275.6 |
0.040 |
69.3 |
69.3 |
0.048 |
5.8 |
| cap=20 |
63.8 |
63.8 |
0.039 |
1703.7 |
1703.7 |
0.039 |
165.8 |
143.7 |
86.8 |
0.033 |
none |
none |
0.061 |
0/0 |
274.9 |
257.2 |
0.039 |
62.9 |
62.9 |
0.048 |
5.8 |
| cap=132 |
63.8 |
63.8 |
0.039 |
1649.6 |
1649.6 |
0.039 |
161.0 |
143.7 |
86.8 |
0.033 |
none |
none |
0.061 |
0/0 |
263.5 |
238.2 |
0.039 |
75.8 |
75.8 |
0.048 |
13.1 |
Second sweep (harden 3%, ease 10%, cap 6 T baseline; the cap row fixed the final value at 20 T):
Tune ns
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| ns=60 |
57.5 |
57.5 |
0.080 |
595.9 |
595.9 |
0.080 |
87.5 |
120.2 |
92.6 |
0.076 |
none |
none |
0.093 |
0/0 |
201.2 |
152.1 |
0.080 |
60.8 |
60.8 |
0.090 |
5.2 |
| ns=120 |
62.2 |
62.2 |
0.039 |
1164.4 |
1164.4 |
0.039 |
65.3 |
155.5 |
98.8 |
0.030 |
none |
none |
0.062 |
0/0 |
253.4 |
253.4 |
0.039 |
71.7 |
71.7 |
0.048 |
6.2 |
| ns=180 |
63.5 |
63.5 |
0.034 |
1742.3 |
1742.3 |
0.034 |
93.4 |
155.8 |
98.8 |
0.017 |
none |
none |
0.056 |
0/0 |
354.2 |
344.3 |
0.034 |
77.3 |
77.3 |
0.042 |
5.7 |
Tune trig
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| trig=0.15 |
63.2 |
63.2 |
0.078 |
1098.2 |
1098.2 |
0.078 |
75.1 |
136.1 |
106.1 |
0.072 |
none |
none |
0.083 |
0/0 |
244.8 |
234.9 |
0.078 |
62.1 |
62.1 |
0.075 |
5.2 |
| trig=0.25 |
62.2 |
62.2 |
0.039 |
1164.4 |
1164.4 |
0.039 |
65.3 |
155.5 |
98.8 |
0.030 |
none |
none |
0.062 |
0/0 |
253.4 |
253.4 |
0.039 |
71.7 |
71.7 |
0.048 |
6.2 |
| trig=0.35 |
63.5 |
63.5 |
0.034 |
1238.4 |
1238.4 |
0.034 |
75.5 |
155.8 |
98.8 |
0.016 |
none |
none |
0.054 |
0/0 |
276.3 |
263.9 |
0.034 |
63.1 |
63.1 |
0.042 |
5.8 |
Tune clamp_pct
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| clamp_pct=0.02 |
97.1 |
97.1 |
0.037 |
1091.3 |
1091.3 |
0.037 |
71.6 |
155.3 |
98.7 |
0.027 |
none |
none |
0.061 |
0/0 |
269.7 |
258.5 |
0.037 |
71.9 |
71.9 |
0.048 |
6.2 |
| clamp_pct=0.03 |
62.2 |
62.2 |
0.039 |
1164.4 |
1164.4 |
0.039 |
65.3 |
155.5 |
98.8 |
0.030 |
none |
none |
0.062 |
0/0 |
253.4 |
253.4 |
0.039 |
71.7 |
71.7 |
0.048 |
6.2 |
| clamp_pct=0.05 |
60.1 |
60.1 |
0.040 |
1371.6 |
1371.6 |
0.040 |
175.9 |
155.5 |
98.6 |
0.033 |
none |
none |
0.063 |
0/0 |
295.1 |
262.7 |
0.040 |
71.6 |
71.6 |
0.049 |
6.1 |
Tune ease_pct
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| ease_pct=0.03 |
63.0 |
63.0 |
0.040 |
1786.2 |
1786.2 |
0.040 |
211.2 |
155.9 |
99.0 |
0.033 |
none |
none |
0.061 |
0/0 |
275.6 |
275.6 |
0.040 |
69.3 |
69.3 |
0.048 |
5.8 |
| ease_pct=0.06 |
62.7 |
62.7 |
0.039 |
1282.5 |
1282.5 |
0.039 |
176.0 |
155.6 |
98.8 |
0.031 |
none |
none |
0.061 |
0/0 |
299.5 |
265.0 |
0.039 |
58.5 |
58.5 |
0.048 |
5.8 |
| ease_pct=0.1 |
62.2 |
62.2 |
0.039 |
1164.4 |
1164.4 |
0.039 |
65.3 |
155.5 |
98.8 |
0.030 |
none |
none |
0.062 |
0/0 |
253.4 |
253.4 |
0.039 |
71.7 |
71.7 |
0.048 |
6.2 |
| ease_pct=0.15 |
61.6 |
61.6 |
0.038 |
1111.4 |
1111.4 |
0.038 |
65.4 |
155.2 |
98.4 |
0.030 |
none |
none |
0.062 |
0/0 |
261.6 |
250.5 |
0.038 |
67.1 |
67.1 |
0.048 |
6.4 |
Tune k0
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| k0=8 |
62.2 |
62.2 |
0.038 |
1144.7 |
1144.7 |
0.038 |
65.3 |
155.5 |
98.7 |
0.030 |
none |
none |
0.062 |
0/0 |
247.7 |
247.7 |
0.038 |
70.2 |
70.2 |
0.048 |
6.2 |
| k0=16 |
62.2 |
62.2 |
0.039 |
1164.4 |
1164.4 |
0.039 |
65.3 |
155.5 |
98.8 |
0.030 |
none |
none |
0.062 |
0/0 |
253.4 |
253.4 |
0.039 |
71.7 |
71.7 |
0.048 |
6.2 |
| k0=32 |
62.2 |
62.2 |
0.038 |
1169.9 |
1169.9 |
0.038 |
65.3 |
155.7 |
98.9 |
0.030 |
none |
none |
0.061 |
0/0 |
287.5 |
266.4 |
0.038 |
71.4 |
71.4 |
0.048 |
6.3 |
Tune cap
| ctrl |
up50 rec |
up50 first |
up50 std |
down50 rec |
down50 first |
down50 std |
down50 gap |
epoch30 rec |
epoch30 first |
epoch30 std |
walk10 rec |
walk10 first |
walk10 std |
walk10 >2x/<0.5x |
hop10 rec |
hop10 first |
hop10 std |
polluted rec |
polluted first |
polluted std |
polluted peak |
| cap=6 |
62.2 |
62.2 |
0.039 |
1164.4 |
1164.4 |
0.039 |
65.3 |
155.5 |
98.8 |
0.030 |
none |
none |
0.062 |
0/0 |
253.4 |
253.4 |
0.039 |
71.7 |
71.7 |
0.048 |
6.2 |
| cap=20 |
61.7 |
61.7 |
0.038 |
657.4 |
657.4 |
0.038 |
35.3 |
143.7 |
86.5 |
0.030 |
none |
none |
0.062 |
0/0 |
211.9 |
208.1 |
0.038 |
70.0 |
70.0 |
0.049 |
8.5 |
| cap=132 |
61.7 |
61.7 |
0.038 |
629.5 |
629.5 |
0.038 |
32.4 |
143.7 |
86.5 |
0.030 |
none |
none |
0.062 |
0/0 |
212.9 |
209.1 |
0.038 |
63.8 |
63.8 |
0.049 |
16.4 |
Test network
Igneum rule, 3 nodes, 3 CPU miners, 20 minutes (testnet-igneum-2026-10-03.csv), analysed with the same 61-block mean as the simulator:
block 1 at 2026-10-03T21:38:32.221000 schedule start 21:38:31 = 1 s before block 1
miner starts (s from block 1): [('A', -1.221), ('B', 358.779), ('C', 358.779), ('B+C stop', 778.8)]
| from s | blocks | blocks/s | mean difficulty | MH/s (work over 30 s) |
|---|---|---|---|---|
| 0 | 5 | 0.17 | 262,143 | 0.087 |
| 30 | 3 | 0.10 | 262,143 | 0.052 |
| 60 | 6 | 0.20 | 190,283 | 0.076 |
| 90 | 22 | 0.73 | 62,248 | 0.091 |
| 120 | 16 | 0.53 | 33,904 | 0.036 |
| 150 | 25 | 0.83 | 31,146 | 0.052 |
| 180 | 37 | 1.23 | 31,340 | 0.077 |
| 210 | 38 | 1.27 | 32,492 | 0.082 |
| 240 | 27 | 0.90 | 32,722 | 0.059 |
| 270 | 30 | 1.00 | 32,591 | 0.065 |
| 300 | 29 | 0.97 | 32,698 | 0.063 |
| 330 | 28 | 0.93 | 32,395 | 0.060 |
| 360 | 57 | 1.90 | 35,345 | 0.134 |
| 390 | 25 | 0.83 | 44,446 | 0.074 |
| 420 | 26 | 0.87 | 35,183 | 0.061 |
| 450 | 23 | 0.77 | 34,670 | 0.053 |
| 480 | 39 | 1.30 | 34,488 | 0.090 |
| 510 | 34 | 1.13 | 34,902 | 0.079 |
| 540 | 48 | 1.60 | 38,841 | 0.124 |
| 570 | 27 | 0.90 | 49,788 | 0.090 |
| 600 | 31 | 1.03 | 49,682 | 0.103 |
| 630 | 39 | 1.30 | 56,451 | 0.147 |
| 660 | 23 | 0.77 | 57,562 | 0.088 |
| 690 | 36 | 1.20 | 57,271 | 0.137 |
| 720 | 20 | 0.67 | 58,646 | 0.078 |
| 750 | 35 | 1.17 | 51,839 | 0.121 |
| 780 | 16 | 0.53 | 43,030 | 0.046 |
| 810 | 19 | 0.63 | 40,907 | 0.052 |
| 840 | 26 | 0.87 | 40,517 | 0.070 |
| 870 | 15 | 0.50 | 39,733 | 0.040 |
| 900 | 30 | 1.00 | 28,790 | 0.058 |
| 930 | 17 | 0.57 | 26,404 | 0.030 |
| 960 | 43 | 1.43 | 24,354 | 0.070 |
| 990 | 27 | 0.90 | 26,346 | 0.047 |
| 1020 | 40 | 1.33 | 29,237 | 0.078 |
| 1050 | 42 | 1.40 | 38,348 | 0.107 |
| 1080 | 39 | 1.30 | 42,203 | 0.110 |
| 1110 | 21 | 0.70 | 41,639 | 0.058 |
| 1140 | 39 | 1.30 | 38,832 | 0.101 |
| 1170 | 30 | 1.00 | 39,650 | 0.079 |
segments (hash rate = expected hashes over wall time):
0 to 359 s: 0.0653 MH/s
359 to 779 s: 0.0988 MH/s
779 to 1192 s: 0.0686 MH/s
recovery after each event (61-block centred mean of expected rate within 10% of 1 block/s):
start at 0 s: first within 10% 132 s, settled (60 blocks) 132 s, worst gap 15.4 s, blocks after 1133
A at -1 s: first within 10% 134 s, settled (60 blocks) 134 s, worst gap 15.4 s, blocks after 1133
B at 359 s: first within 10% 214 s, settled (60 blocks) 214 s, worst gap 7.3 s, blocks after 869
C at 359 s: first within 10% 214 s, settled (60 blocks) 214 s, worst gap 7.3 s, blocks after 869
B+C stop at 779 s: first within 10% 85 s, settled (60 blocks) none s, worst gap 7.3 s, blocks after 404
Kaspa rule, same network and genesis, 10 minutes (testnet-kaspa-2026-10-03.csv): 70 blocks, bits 0x1e200000 on every header, 0.08 blocks/s, worst gap 63 s, delivered 0.042 MH/s; no retarget (block 600 was about 2 hours away).