В настоящее время я разрабатываю тестовый альткойн в образовательных целях и по какой-то причине не могу сгенерировать первые блоки пау после генерации блока генезиса.Пару лет назад я успешно сделал работоспособный форк из dash (или что-то похожее на ужасно устаревшую кодовую базу), но я совершенно не могу воспроизвести его с современной кодовой базой.
Итак, к делу.Я использовал репозиторий PIVX, изменил chainparams.cpp соответственно:
- убрал старые контрольные точки;
- сгенерировал новые ключи;
- обновил порты по всемукодовая база;
- изменено pchMessageStart числа;
- обновлено unixtime;
- изменено имя монеты по всей кодовой базе;
- созданный генезис(и это было правильно, я проверял это много раз);
- скомпилировал его;
- запустил coind;
запустил cpuminer, и он потерпел неудачу со следующим вlog:
2019-02-28 16:55:09 ОШИБКА: CheckProofOfWork (): хэш не соответствует nBits
2019-02-28 16:55:09 ОШИБКА: CheckBlockHeader (): пробная версияработы не удалось
2019-02-28 16:55:09 ОШИБКА: CheckBlock (): ошибка CheckBlockHeader
2019-02-28 16:55:09 CreateNewBlock (): ошибка TestBlockValidity
Я заново сгенерировал генезис с кодом в chainparams.cpp - он был таким же, как и с генератором генезиса.Я попытался gen = 1 и setgenerate true , и снова получил ту же ошибку, и hashespersec = 0 в getmininginfo .
Я начал искать в Интернете и нашел много одинаковых вопросов без ответа.Например, этот выглядит абсолютно одинаково - https://bitcoin.stackexchange.com/questions/79767/cannot-mine-genesis-first-block-pivx-fork-clone
Я попробовал решение из этой темы - https://bitcointalk.org/index.php?topic=2152157.0;prev_next=next - но безуспешно.
Я предположил, чтоможет быть, я что-то упустил, и попытался сделать то же самое с некоторыми другими вилками PIVX.Первый был такой - https://github.com/IchibaCoin/ICHIBA - с той же ошибкой.Второй был такой - https://github.com/cruxcoinsource/CruxCoin - с той же ошибкой.Затем я почесал голову, глубоко задумался и запустил diff для всех файлов в / src / папке обеих монет с моей тесткойной.Файлы были абсолютно одинаковыми и отличались только в том случае, если они отличались между crux и ичибой.
Я попробовал все возможные комбинации bools в этой части chainparams.cpp :
fMiningRequiresPeers = true;
fAllowMinDifficultyBlocks = false;
fDefaultConsistencyChecks = false;
fRequireStandard = true;
fMineBlocksOnDemand = false;
fSkipProofOfWorkCheck = false;
fTestnetToBeDeprecatedFieldRPC = false;
fHeadersFirstSyncingActive = false;
И когда fMineBlocksOnDemand был установлен на true , команда setgenerate true вернула, что пул ключей кошелька пуст, и команда keypoolrefill не имела эффекта.
Что я делаю не так? ..)))