Как найти восемь зарезервированных байтов в шаблоне блока пула Monero

Пул может зарезервировать в кандидате блока место для данных воркера. Постоянное смещение для разных шаблонов способно повредить соседние поля.

Запросите шаблон с явным резервом

Замените адрес на адрес вознаграждения нужной сети. Декодируйте blocktemplate_blob из hex в байты и возьмите reserved_offset из того же ответа. Сохраните хеш родителя вместе с идентификатором шаблона. Передайте пример в monerod запросом POST на /json_rpc.

{
  "jsonrpc": "2.0",
  "id": "guide",
  "method": "get_block_template",
  "params": {
    "wallet_address": "<mining reward address>",
    "reserve_size": 8
  }
}

Пересчитайте смещение для hex

При смещении 130 байт резерв из восьми байт занимает позиции hex-строки с 260 по 275 включительно. Меняйте только этот участок и после изменения транзакции заново сформируйте правильные данные для хеширования. blockhashing_blob и полный шаблон выполняют разные задачи. После смены родителя проверьте актуальность шаблона.

docs.getmonero.org get_block_template