Это альтернатива:
В среднем должно быть взвешено так последние времена блока затрагивает больше, чем старые времена блока.
В простейшем theorethical реализации:
Граф из блока 0: TimeAverage = (TimeAverage + LastBlockTime) / 2
Не могу сделать это на практике; был бы Weigth последнего времени блока слишком много (50%), а также мы не можем ходить Повсеместно в blockchain каждый раз мы начинаем снова, так
Код:
FilterAttenuation = 8
Walkingblock = (блок @ heightof (currentblock- (FilterAttenuation * 2))
TimeAverage = Walkingblock.time
в то время как Walkingblock.heigth < currentblock.height
{
Walkingblock = Walkingblock.next;
TimeAverage = (TimeAverage * (FilterAttenuation-1) + WalkingblockTime) / FilterAttenuation;
}
На самом деле это очень хорошо имитирует RC цепи, обычно используемые на electorics для фильтрации сигналов.Walkingblock = (блок @ heightof (currentblock- (FilterAttenuation * 2))
TimeAverage = Walkingblock.time
в то время как Walkingblock.heigth < currentblock.height
{
Walkingblock = Walkingblock.next;
TimeAverage = (TimeAverage * (FilterAttenuation-1) + WalkingblockTime) / FilterAttenuation;
}
Как вы думаете? Я думаю, что это намного проще и эффективнее, что KGW.