Это мой первый пост, поэтому, пожалуйста, идти просто на меня.
Во-первых, я сделал мой должной осмотрительности. Я искал этот форум и изучил документацию как на Bitcoin и SHA256. Тем не менее, с SHA256, я еще немного запутался.
Я хотел бы узнать, как Bitcoin и Arduino, так что я начал строить шахтера. Теперь, прежде чем кто-то говорит, что это глупая идея, я знаю, что это. Я просто делаю это для развлечения и обучения. И по большей части, это было весело, пока я ударил контрольно-пропускной пункт.
Я могу получить Midstate, выполнив 256 хэша первой половины данных, которые я получить от "getwork" вызов. Он отлично сочетается "Midstate" который пришел с "getwork" вызов. Из-за того, что я достаточно уверен, что я получаю обратный порядок байт в правильном порядке, и что моя 256 библиотеки функциональна. 256 библиотека, я использую: https:? //code.google.com/p/cryptosuite/source/browse/Sha/sha256.h г = ba70bfce07af76ff141c53833b8c1d15e3d7d368
чтобы получить Midstate я делаю это:
Код:
Sha256.init ();
для (INT I = 0; я < 64; ++ я)
{
Sha256.write (midstateByte [I]);
}
и он работает как чавканье, без каких-либо проблем. Моя проблема в том, что я отчаянно нужна помощь в том, как сделать второй и окончательный хэш. Я знаю, что одноразовое значение во второй половине блока данных. Вы увеличиваете временное значения, а затем сделать хэш на втором блоке. Что я могу по той же методике, что я сделал с первой половиной, чтобы получить Midstate. Как объединить Midstate и первый хэш вместе? в этой должности по адресу: пользователь говорит
котировка
Это также выход 8 32bit числа. Каждое число от второго "ломоть" добавляют к первому, с соответствующим номером из первого куска. Это добавление осуществляется по модулю 2 ^ 32 для каждого номера, так что нет переполнения или переноски.
Я не понимаю, что он говорит здесь. Так или иначе, я должен добавить массив 32 байт (Midstate) в результат первого хэша на второй половине данных, другой массив 32 байт, и получить 64 байт массивов положить через SHA256 для окончательного хэша.
Если кто-нибудь может объяснить, как это сделать, что я был бы очень благодарен. Кроме того, я знаю, что вы можете просто хэш всех данных, не нарушая его, но, к сожалению, я удар Arduino пределы стека. Я также знаю, что большинство надежных библиотек SHA256 имеет возможность сделать это, но не мой, и я не могу использовать другой.
Пожалуйста, включите адрес для кончиков, потому что я в отчаянии! Еще раз спасибо!