(биткойн) Вычислить хеш-код из функции getwork - как это сделать?

когда я вызываю getwork на моем сервере bitcoind, я получаю следующее:

./bitcoind getwork
{
    "midstate" : "695d56ae173bbd0fd5f51d8f7753438b940b7cdd61eb62039036acd1af5e51e3",
    "data" : "000000013d9dcbbc2d120137c5b1cb1da96bd45b249fd1014ae2c2b400001511000000009726fba001940ebb5c04adc4450bdc0c20b50db44951d9ca22fc5e75d51d501f4deec2711a1d932f00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
    "hash1" : "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
    "target" : "00000000000000000000000000000000000000000000002f931d000000000000"
}

Я не задокументирован. хэш из этих данных. Я думаю, что эти данные имеют прямой порядок байтов. Итак, первый шаг - преобразовать все в прямой порядок байтов? Как только это будет сделано, я вычисляю sha256 данных. Данные можно разделить на два блока 64 байта каждый. Хеш-код первого патрона задается средним состоянием и поэтому его не нужно вычислять.

Поэтому я должен хэшировать блок №2 с помощью sha256, используя промежуточное состояние в качестве начальных значений хеш-функции. Как только это будет сделано , Я получаю хэш фрагмента 2, который составляет 32 байта. Я вычисляю хэш этого фрагмента еще раз, чтобы получить окончательный хеш.

Затем я конвертирую все в прямой порядок байтов и отправляю работу?

Для чего используется hash1?

25
задан Alexandre H. Tremblay 8 June 2011 в 01:07
поделиться