Author

Topic: Переменные и константы клиента (Read 1269 times)

Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
все сошлось:

b 120959 time 1304131540 bits 1b00b5ac
b 120960 time 1304131980 bits 1b0098fa target = 245823858161213192073337185391658632187400443916100519594033152
b 122975 time 1304974694 bits 1b0098fa
b 122976 time 1304975844 bits 1a6a93b3

ошибка была в том что расчете принимается время от блока до блока одинаковой сложности, время между блоками разной сложности отбрасывается.
(1304974694 - 1304131980) * 245823858161213192073337185391658632187400443916100519594033152 / 1209600
171262571764606989041741296999128813297927395580615685573053946
0x0000000000006a93b3a79412dac7460dfa79412dac7460dfa79412dac7460dfa

настоящее значение
0x0000000000006a93b30000000000000000000000000000000000000000000000

Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
опять ломаем копья...

Начиная с блока 88703 по 90719 (итого 2016 блоков) Bits = 1b153263
после 90719 блока идет перерасчет сложности:
new_target = (time_90719 сек - time_88703 сек) * target(1b153263) / 1209600 сек

конкретные цифры
time_90719 сек - time_88703 сек = 1289303926 - 1288478771 = 825155
target(1b153263) =
0x0000000000153263000000000000000000000000000000000000000000000000
или
8719867261221084516486306056196045840260667577454435863762042880

итого получаем:
new_target =
0x00000000000e75ba5b2e0d8b8362e0d8b8362e0d8b8362e0d8b8362e0d8b8362
илиK
5948447478449804889385960543816508106250240703434536231119848290

но в блоке 90720 видим bits = 1b0e7256
target(1b0e7256) =
0x00000000000e7256000000000000000000000000000000000000000000000000
или
5942996718418989293499865695368015163438891473576991811912597504
разница в 1.0009171736565026%

проделаем то же самое с другими блоками

b 120959 time 1304131540 bits 1b00b5ac
b 120960 time 1304131980 bits 1b0098fa target = 245823858161213192073337185391658632187400443916100519594033152
b 122975 time 1304974694 bits 1b0098fa
b 122976 time 1304975844 bits 1a6a93b3
t_120959 - t_122975 = 1304974694 - 1304131540 = 843154 сек (стд 1209600)
new_target:
171351991818832298073249455366830805525244240980188341185340135
0x0000000000006aa1f27c8161afb494e2e7c8161afb494e2e7c8161afb494e2e7
должно быть
171262555713783851185422181139260521316022447660158187451973632
0x0000000000006a93b30000000000000000000000000000000000000000000000
расхождение
1.0005222163401433%

ЧЯ(бл)ДНТHuh
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
как происходит перерасчет current target через каждые 2016 блоков, подозреваю он связан со средним временем генерации за 2016 блоков?

Пересчёт происходит каждые 2016 блоков. Предыдущая сложность умножается на коффицент равный (время потраценное на вычисление 2016 / 20160 минут).
не вышло =(

Для примера возьмем блоки 32256-34271 в 34272-м блоке меняется сложность
их время генерации заняло 1097103 сек (при стандартном 1209600 сек)
известен bits 1d00d86a от него находим сложность 1.1828995343128408

в 34272-м блоке bits 1d00c428 сложность 1.3050621315915245

предполагая что если время генерации эталонно 1209600 сек сложность меняться не должна
сложность * 1209600 * k = сложность
коэффициент получаем k = 0.0000008267195767195768

следовательно:
1.1828995343128408 (старая сложность) * 1096653 (сек) * k = 1.3050621315915245 (новая сложность)
коэффициент получаем k = 0.0000010060373308038437

Значит со сложностью происходит какие то другие преобразования?
hero member
Activity: 713
Merit: 508
как происходит перерасчет current target через каждые 2016 блоков, подозреваю он связан со средним временем генерации за 2016 блоков?

Пересчёт происходит каждые 2016 блоков. Предыдущая сложность умножается на коффицент равный (время потраценное на вычисление 2016 / 20160 минут).
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
interval = http://blockexplorer.com/q/interval/144 (средняя количество секунд для создания блока расчет на 144 блока)
winning = http://blockexplorer.com/q/hashestowin (необходимое колличество попыток для создания блока)
общая скорость сети за 144 блока (около суток) = winning / interval

текущая сложность = 0xffff0000000000000000000000000000000000000000000000000000 (min target) / http://blockexplorer.com/q/hextarget (current target)

как происходит перерасчет current target через каждые 2016 блоков, подозреваю он связан со средним временем генерации за 2016 блоков?
Jump to: