Как бы Вы это сделали? Вы все еще можете увеличить неподвижные трудности вручную.
Взгляни на
этот график. Это показывает трудности, в зависимости от времени на логарифмической шкале. (Там же линейный вариант шкалы для
Вот.) Вы можете увидеть с середины июля 2010 года Это 9 месяцев или 39 недель, что сложность увеличилась с примерно 200 до 80 000 (т.е. с коэффициентом 400). Сложность регулирует каждые две недели, так что 19 периодов перестройки. Это означает, что в среднем примерно на 37% увеличение в сложности каждые две недели в течение этого периода времени, так как 1,37
19 ~ = 400.
Вы можете работать это в ваши уравнения легко. Вы начинаете с уравнением:
фактор (скорость, numPeriods) = (1 + ставка - (1 + ставка)
-numPeriods) / ставка
В PHP, это было бы:
$ = Коэффициент (1 + $ ставка - пау (1 + $ ставка, - $ numPeriods)) / $ ставка;
Вы должны разрешить пользователю вводить в размере, что сколько они ожидают трудности увеличить в двух недель. Можно по умолчанию это 0,37, например, или к более консервативной стоимости, как 0,20, если вы считаете, что число людей, добывающих биткойны не собирается продолжать увеличиваться по историческому курсу.
Для вашего конкретного кода, вы бы изменить его на что-то вроде этого:
...
$ BlocksInFirstTwoWeeks = $ blockCoins * (14,0 * 24,0 * 3600,0) / $ hashTime;
$ = Коэффициент (1 + $ ставки - пау (1 + $ ставки, -26)) / $ ставка;
$ BlocksPerYear = $ blocksInFirstTwoWeeks * $ фактор;
...
В качестве примера, текущая страница со значениями по умолчанию показывает 2676.80 монет в год (вы говорите блоки, но означают монеты). Это 103 за две недели. Затем вычислим "фактор" как указано выше, при условии, скорость 0,20:
Коэффициент = (1 + 0,20 - (1 + 0,20) ^ (- 26)) / 0,20 = 5,96
Для окончательного ответа 613.88, а не 2676.80. Это огромная разница, но вполне реально. Если вы используете скорость 0.37, вы получаете коэффициент 3,70, для окончательного ответа 381,1 монет, что в семь раз меньше.
Я хотел бы также предположить, что вы позволяете людям, чтобы войти в число периодов, а не один год.