Генерация первого блока после блока генеза в альткойне PoS - PullRequest
0 голосов
/ 28 февраля 2019

В настоящее время я разрабатываю тестовый альткойн в образовательных целях и по какой-то причине не могу сгенерировать первые блоки пау после генерации блока генезиса.Пару лет назад я успешно сделал работоспособный форк из 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 не имела эффекта.

Что я делаю не так? ..)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...