In a previous forum post https://forum.grin.mw/t/on-dual-pow-graph-rates-gps-and-difficulty I presented several equations relating graph weights, graph rates, solution rates, and difficulty.
The constant 1/42 features in several equations as the expected number of solutions per graph.
With cuckarood29 that constant has changed. Let’s denote
ES = expected number of solutions per graph
Cuckaroo (as well as Cuckoo and Cuckatoo) has ES_oo = 1/42,
while Cuckarood has ES_ood = 1/21 (we can imagine ‘d’ standing for doubled).
For completeness, let’s also denote by FY the fidelity of the miners, i.e. the fraction of solutions that they actually find (some miners overlook a small fraction of cycles, which puts fidelity slightly below 1).
To recap, we define
PR31 = Primary Rate = global rate of Cuckatoo31 graphs per second
W31 = weight of a Cuckatoo31 graph = 31 * 2^8 = 7936
SR29 = Secondary Rate = global rate of Cukatoo29 graphs per second
S29 = ar_scale = secondary scale = variable scale of a Cukatoo29 graph
BR31 = rate of primary blocks
BR29 = rate of secondary blocks
ND = Network Difficulty
ES_oo = expected number of solutions per Cuckatoo graph
ES_ood = expected number of solutions per Cuckarood graph
FY = miner fidelity, usually assumed equal to 1
PF31 = Primary Fraction of rewards, currently 32%
SF29 = Secondary Fraction of rewards, currently 68%
We have BR31 = (PR31 * ES_oo * FY) * (W31 / ND), BR29 = (SR29 * ES_ood * FY) * (S29 / ND),
for a combined block rate of BR31 + BR29 = FY * (PR31 * ES_oo * W31 + SR29 * ES_ood * S29) / ND.
In block rate equilibrium, we have
BR31 + BR29 = 1/60
and in block reward equilibrium, we have
BR29 / (BR31 + BR29) = SF29
BR31 / (BR31 + BR29) = PF31
This allows us to compute graph rates from network difficulty, secondary scale, and the current reward balance:
SR29 = (ND / FY) * (ES_ood / 60) * SF29 / S29
PR31 = (ND / FY) * (ES_oo / 60) * PF31 / W31
Estimating graph rates directly from observed solution (block) rates is even simpler. We have
graph_rate * fidelity = solution_rate / expected_solutions_per_graph
For pools and block explorers estimating Cuckarood29 graph rate assuming fidelity=1, the former formula
graph_rate = solution_rate * 42
should thus be updated to
graph_rate = solution_rate * 21