Я собираюсь испортить много терминологии здесь. Я пытаюсь понять алгоритм Биткойна и хотел использовать этот JS-майнер — https://github.com/howardchung/jsminer . В частности, я пытаюсь понять, как создавать данные, которые кто-то пытается хэшировать. Они пытаются сделать это в майнере JS следующим образом.
var header = version + prevhash + merkle_root + ntime + nbits + '00000000' + '000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000';
curr_block.data = header;
Я слежу за большей частью этого, используя биткойн-вики в качестве справочного материала, но я совсем не могу понять, что это за последние две числовые константы — «00000000» и большая, начинающаяся с «0000008». Я видел, как они появлялись в других примерах, но я не могу понять, зачем они нужны или это жестко закодированные значения в майнере JS, которых не должно быть в реальной жизни. Любая помощь приветствуется.
Первый 00000000
предназначен для одноразового использования. Nonce изменяется, чтобы получить другой заголовок блока без повторного выбора транзакций. Это то, что используется в основном для поиска действительного хэша блока.
Длинная строка байтов, начинающаяся с, 0000008
является дополнением SHA-256. На самом деле это не часть заголовка блока, и все, что делает хеширование SHA-256, должно выяснить и добавить это дополнение для вас. Это часть этапа предварительной обработки SHA-256.
Дэйв
Эндрю Чоу
Дэйв
Эндрю Чоу