constraint broken in case 1 of consensus weight calculation
dir-spec specifies the constraint Wmg == Wmd
in case 1, but also that
Wmg = (weight_scale*(2*G-E-M))/(3*G)
Wmd = weight_scale/3
This constraint is impossible to satisfy unless it just happens that (2G-E-M)/G == 1
.
Indeed, in my testing of networkstatus_compute_bw_weights_v10
, I found that Wmg
and Wmd
were calculated as above, but the constraint was ignored.
The easy solution is to change the spec, but that would ignore the logic that went into having that constraint in the first place. I do not know the logic that went into designing the consensus weight calculations, so I do not know if this solution is appropriate.