Спасибо, Джоэл!
Итак, я понимаю, что если мы изменим любой из них
1, то мы должны перефразировать все предыдущие части сообщения (т.е. блока), тем самым изменяя первые три слова в доле, на которой работает шахтер, и
Правильно. Изменение метки или coinbase дает целую вселенную новых одноразовых номеров, чтобы попробовать.
2 это то, что бассейн делает, когда все допустимые значения одноразового номера были опробованы.
Большинство бассейнов, к моему знанию, использовать логику bitcoind клиента для создания рабочих единиц. С исправлениями от Луки Даш Jr., логика выглядит следующим образом:
аннулированию IncrementExtraNonce (CBlock * pblock, CBlockIndex * pindexPrev, неподписанных Int& nExtraNonce, int64& nPrevTime)
{// Фикс от Луки Даш Jr
Статическая uint256 hashPrevBlock;
если (hashPrevBlock! = pblock->hashPrevBlock)
{
nExtraNonce = 0;
hashPrevBlock = pblock->hashPrevBlock;
}
++nExtraNonce;
pblock->VTX [0] .vin [0] = .scriptSig CScript () << pblock->Nbits << CBigNum (nExtraNonce);
pblock->hashMerkleRoot = pblock->BuildMerkleTree ();
}
Таким образом, дополнительные одноразовый (coinbase) стремится к нулю, с каждым новым блоком обнаруженного в сети. Тогда приращение в каждой рабочей единицы данного клиента.
Верный? Есть что-нибудь, кроме ж [3] (что все ядра в настоящее время меняется), что мы можем изменить на стороне клиента, без изменения ш [0] через ш [2]?
Я не 100% уверен, что я понимаю, что вы просите. Вы пытаетесь быть в состоянии иметь шахтеры генерировать свои собственные новые рабочие блоки без необходимости идти обратно в бассейн? Если да, то это немного сложно, потому что если им удастся в добыче блока, вы должны быть в состоянии собрать правильный блок или вы не можете получить деньги.
Если вы пытаетесь что-то другое, чем bitcoind программы генерировать единицы работы (возможно, вы пытаетесь свести к минимуму взаимодействие между менеджером пула и bitcoind) вы лучше с патчами, чтобы ускорить его. Но в этом случае, вы лучше от тиражирования этой же логике приращение coinbase для каждой единицы работы, ИМО.
Вы никогда не можете запустить из вещей, чтобы попробовать, потому что к тому времени вы запускали через каждую комбинацию нонса и coinbase, время изменилось бы. Если вы действительно хотите, вы можете также изменить выплаты адрес (а) в сделке coinbase или падение / добавить транзакцию.
(Joel - Я пришлю вам целый 1 BTC, когда вы ответить на этот вопрос, даже если ответ является не большое спасибо!)
Благодарю. Я ценю это. Если я неправильно понял ваш вопрос, дайте мне знать.