Author

Topic: Проблема с майнингом форка биткоина bad-cb-height rejected by the (Read 216 times)

copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Вообщем разобрались даже без кодера сами, похоже тут мало кто вообще что-то понимает в этом, инфы как пофиксить практически невозможно найти в интернете но для тех то разбирается решение простое. Ниодин из ответов тут не оказался полезным, спасибо. Ждите скорого запуска биткоина 5000.
ПЯТЬ ТЫЩЬ.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Там почти по русски написано, что длина подписи коинбейс транзакции меньше ожидаемой длины.

Code:
  if (block.vtx[0]->vin[0].scriptSig.size() < expect.size() ||
        !std::equal(expect.begin(), expect.end(),
                    block.vtx[0]->vin[0].scriptSig.begin())) {
      return state.DoS(100, false, REJECT_INVALID, "bad-cb-height", false,
                       "block height mismatch in coinbase");
    }

Можешь записать в лог ту и другую длину и посмотреть какая приходит и какая ожидается.
Можешь по коду вверх посмотреть, как формируется вектор expect ибо я подозреваю, что в это условие он по какой-то причине приходит с нулевой длиной.

как запускаешь майнер который я советовал? я же говорил, разберись с его настройками. Он в консоль должен логи писать.
copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Может кто поможет?
БАМП
copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Ну смотри что происходит:

1. Пул дает майнеру заголовок блока и говорит: нука давай ищи красивый хэш этой фигни.
2. Майнер находит хэш и посылает обратно пулу хэш вместе с заголовком который сам же пул ранее прислал (см. пункт 1)
3. Пул говорит: чувак, твой заголовок блока неправильный.
4. Переходим к пункту 1.

Как такое возможно? Пул ругается на данные, которые сам же ранее посылал.

Я не знаю, че там у вас за алгоритмы. Но если это просто форк биткоина без наворотов, то у меня только одна идея: пока майнер ищет хэш, кто-то находит хэш раньше и в пуле цепочка блоков становится выше, чем у майнера. Соответственно когда тормоз-майнер посылает решение, пул говорит, что твое решение уже устарело.

Еще могу посоветовать найти в исходниках строку "bad-cb-height" и заценить конкретно - когда ваш форк выплевывает эту ошибку.
Спасибо, а может быть проблема в том что мы сделали развилку на 2013 годе? И из-за разницы во времени блокчейна это и происходит или это неважно? И если из-за этого это можно исправить как-то?  Но тогда почему сам кошель майнит нормально? Тут как бы смысл биткоины раздать бесплатно тем кого обманули в 2013 риптилойды сатанисты.
И вот еще может быть проблема из-за низкой сложности она сейчас всего чуть больше  1.315277164532573.

Если кошель майнит, значит проблема не в исходнике, а в пуле (его настройках). Может в настройках пула сложность слишком большая и майнер не успевает найти блок с такой сложностью? Может время на серваке с пулом корявое?

Попробуйте вот этим майнером локально на компе помайнить.
https://github.com/pooler/cpuminer/releases

только разберитесь с настройками.

Попробывал этот майнер тоже самое в пустую работает но этот ошибок просто не выводит а результат тотже самый.
Поискал в исходниках по ошибке вот что нашел. Что делать?

validation.cpp

// Enforce rule that the coinbase starts with serialized block height
Enforce rule that the coinbase starts with serialized block height
  if (nHeight >= consensusParams.BIP34Height) {

    CScript expect = CScript();
    if (nHeight > FORK_BLOCK) {
      expect << std::vector(FORK_HASH_UINT256.begin(),
                                           FORK_HASH_UINT256.end());
    }
    expect << nHeight;

    if (block.vtx[0]->vin[0].scriptSig.size() < expect.size() ||
        !std::equal(expect.begin(), expect.end(),
                    block.vtx[0]->vin[0].scriptSig.begin())) {
      return state.DoS(100, false, REJECT_INVALID, "bad-cb-height", false,
                       "block height mismatch in coinbase");
    }

net_processing.cpp
} else if (status == READ_STATUS_FAILED) {
        // Might have collided, fall back to getdata now Sad
        std::vector invs;
        invs.push_back(CInv(MSG_BLOCK | GetFetchFlags(pfrom), resp.blockhash));
        connman->PushMessage(pfrom, msgMaker.Make(NetMsgType::GETDATA, invs));
      } else {
        // Block is either okay, or possibly we received
        // READ_STATUS_CHECKBLOCK_FAILED.
        // Note that CheckBlock can only fail for one of a few reasons:
        // 1. bad-proof-of-work (impossible here, because we've already
        //    accepted the header)
        // 2. merkleroot doesn't match the transactions given (already
        //    caught in FillBlock with READ_STATUS_FAILED, so
        //    impossible here)
        // 3. the block is otherwise invalid (eg invalid coinbase,
        //    block is too big, too many legacy sigops, etc).
        // So if CheckBlock failed, #3 is the only possibility.
        // Under BIP 152, we don't DoS-ban unless proof of work is
        // invalid (we don't require all the stateless checks to have
        // been run).  This is handled below, so just treat this as
        // though the block was successfully read, and rely on the
        // handling in ProcessNewBlock to ensure the block index is
        // updated, reject messages go out, etc.
        MarkBlockAsReceived(resp.blockhash); // it is now an empty pointer
        fBlockRead = true;
        // mapBlockSource is only used for sending reject messages and DoS
        // scores,
        // so the race between here and cs_main in ProcessNewBlock is fine.
        // BIP 152 permits peers to relay compact blocks after validating
        // the header only; we should not punish peers if the block turns
        // out to be invalid.
        mapBlockSource.emplace(resp.blockhash,
                               std::make_pair(pfrom->GetId(), false));
      }
    } // Don't hold cs_main when we call into ProcessNewBlock

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Ну смотри что происходит:

1. Пул дает майнеру заголовок блока и говорит: нука давай ищи красивый хэш этой фигни.
2. Майнер находит хэш и посылает обратно пулу хэш вместе с заголовком который сам же пул ранее прислал (см. пункт 1)
3. Пул говорит: чувак, твой заголовок блока неправильный.
4. Переходим к пункту 1.

Как такое возможно? Пул ругается на данные, которые сам же ранее посылал.

Я не знаю, че там у вас за алгоритмы. Но если это просто форк биткоина без наворотов, то у меня только одна идея: пока майнер ищет хэш, кто-то находит хэш раньше и в пуле цепочка блоков становится выше, чем у майнера. Соответственно когда тормоз-майнер посылает решение, пул говорит, что твое решение уже устарело.

Еще могу посоветовать найти в исходниках строку "bad-cb-height" и заценить конкретно - когда ваш форк выплевывает эту ошибку.
Спасибо, а может быть проблема в том что мы сделали развилку на 2013 годе? И из-за разницы во времени блокчейна это и происходит или это неважно? И если из-за этого это можно исправить как-то?  Но тогда почему сам кошель майнит нормально? Тут как бы смысл биткоины раздать бесплатно тем кого обманули в 2013 риптилойды сатанисты.
И вот еще может быть проблема из-за низкой сложности она сейчас всего чуть больше  1.315277164532573.

Если кошель майнит, значит проблема не в исходнике, а в пуле (его настройках). Может в настройках пула сложность слишком большая и майнер не успевает найти блок с такой сложностью? Может время на серваке с пулом корявое?

Попробуйте вот этим майнером локально на компе помайнить.
https://github.com/pooler/cpuminer/releases

только разберитесь с настройками.
copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Ну смотри что происходит:

1. Пул дает майнеру заголовок блока и говорит: нука давай ищи красивый хэш этой фигни.
2. Майнер находит хэш и посылает обратно пулу хэш вместе с заголовком который сам же пул ранее прислал (см. пункт 1)
3. Пул говорит: чувак, твой заголовок блока неправильный.
4. Переходим к пункту 1.

Как такое возможно? Пул ругается на данные, которые сам же ранее посылал.

Я не знаю, че там у вас за алгоритмы. Но если это просто форк биткоина без наворотов, то у меня только одна идея: пока майнер ищет хэш, кто-то находит хэш раньше и в пуле цепочка блоков становится выше, чем у майнера. Соответственно когда тормоз-майнер посылает решение, пул говорит, что твое решение уже устарело.

Еще могу посоветовать найти в исходниках строку "bad-cb-height" и заценить конкретно - когда ваш форк выплевывает эту ошибку.
Спасибо, а может быть проблема в том что мы сделали развилку на 2013 годе? И из-за разницы во времени блокчейна это и происходит или это неважно? И если из-за этого это можно исправить как-то?  Но тогда почему сам кошель майнит нормально? Тут как бы смысл биткоины раздать бесплатно тем кого обманули в 2013 риптилойды сатанисты.
И вот еще может быть проблема из-за низкой сложности она сейчас всего чуть больше  1.315277164532573.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Еще идея: сверь часы на пуле и на майнере. Если время сильно отличается то тоже не есть гуд )
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Ну смотри что происходит:

1. Пул дает майнеру заголовок блока и говорит: нука давай ищи красивый хэш этой фигни.
2. Майнер находит хэш и посылает обратно пулу хэш вместе с заголовком который сам же пул ранее прислал (см. пункт 1)
3. Пул говорит: чувак, твой заголовок блока неправильный.
4. Переходим к пункту 1.

Как такое возможно? Пул ругается на данные, которые сам же ранее посылал.

Я не знаю, че там у вас за алгоритмы. Но если это просто форк биткоина без наворотов, то у меня только одна идея: пока майнер ищет хэш, кто-то находит хэш раньше и в пуле цепочка блоков становится выше, чем у майнера. Соответственно когда тормоз-майнер посылает решение, пул говорит, что твое решение уже устарело.

Еще могу посоветовать найти в исходниках строку "bad-cb-height" и заценить конкретно - когда ваш форк выплевывает эту ошибку.
copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Вообщем такая проблема, сделали форк биткоина c увеличенным размером блока и sha256, все вроде работает, в кошельке майнится через setgenerate true -1.
Но настроить внешний майнинг через rpc или mining pool, не получается, все блоки отвергаются что только не пробовали.
Пробовали все версии майнинг пулов ucomp, и модифицированные его версии, node-merged-pool, miningcore, stratum, пробовали и на linux и на windows запускать. Все майнеры использовали c ними и всевозможные настройки в том числе напрямую без пула с nevermore miner. Ничего не выходит результат один блоки находятся но отвергаются. Что можно сделать и в чем проблема?

Примеры ошибок из разных майнеров и пулов:
Ошибки:
 - Pool bitcoin5000 Thread 1 We thought a block was found but it was rejected by the daemon, share data:

2018-08-08 11:44:15 ERROR: AcceptBlock: bad-cb-height, block height mismatch in coinbase (code 16)
2018-08-08 11:44:15 ERROR: ProcessNewBlock: AcceptBlock FAILED

 submission failed with: bad-cb-height

[2018-08-15 00:36:27] accepted: 0/19 (diff 0.000), 686.20 MH/s booooo
[2018-08-15 00:36:27] reject reason: bad-cb-height

Пулы намекают, что у вас какие-то кривые коинбейс транзакции. Может для вашего клиента они нормальные, но пулы про это не знают.
Когда выпишут программиста, пусть проверку коинбейса в пуле переделывает, либо хардфорк.
Кстати, пока пять тыщь хардфорков не сделаете - проект не взлетит!

Зы внезапно посетила мудрая мысль: а у вас демон пула синхронизирован с майнерами вообще-то?

Ззы другая мысля: возможно ваш майнер тормоз. Пока он искал решение, другие уже нашли овер 5000 блоков.

Ну а как эти пулы то подстроить? вот в чем вопрос там нету никаких настроек особых если это форк биткоина.
Эту проверку коинбейса в пуле проверять? Какой пул установить чтобы проще было мы все перепробовали. И мы же даже без пулов пробовали через rpc в винде напрямую через neverminer тоже ничего не работает. Синхронизация должна же быть 100% показывает и блоки сверяли количество, мы же даже напрямую делали, пробовали как к ноде подключаться так и напрямую на локалке, может вообще отрубить синхронизацию с нодой для проверки? Врятли дело в том что кто-то еще майнит пока тока провереные пятысячники получили кошель и они тока в кошельке майнят через CPU. Еще такое дело в кошельке не зрелые транзакции весят где майнится на CPU может в этом еще дело?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Вообщем такая проблема, сделали форк биткоина c увеличенным размером блока и sha256, все вроде работает, в кошельке майнится через setgenerate true -1.
Но настроить внешний майнинг через rpc или mining pool, не получается, все блоки отвергаются что только не пробовали.
Пробовали все версии майнинг пулов ucomp, и модифицированные его версии, node-merged-pool, miningcore, stratum, пробовали и на linux и на windows запускать. Все майнеры использовали c ними и всевозможные настройки в том числе напрямую без пула с nevermore miner. Ничего не выходит результат один блоки находятся но отвергаются. Что можно сделать и в чем проблема?

Примеры ошибок из разных майнеров и пулов:
Ошибки:
 - Pool bitcoin5000 Thread 1 We thought a block was found but it was rejected by the daemon, share data:

2018-08-08 11:44:15 ERROR: AcceptBlock: bad-cb-height, block height mismatch in coinbase (code 16)
2018-08-08 11:44:15 ERROR: ProcessNewBlock: AcceptBlock FAILED

 submission failed with: bad-cb-height

[2018-08-15 00:36:27] accepted: 0/19 (diff 0.000), 686.20 MH/s booooo
[2018-08-15 00:36:27] reject reason: bad-cb-height

Пулы намекают, что у вас какие-то кривые коинбейс транзакции. Может для вашего клиента они нормальные, но пулы про это не знают.
Когда выпишут программиста, пусть проверку коинбейса в пуле переделывает, либо хардфорк.
Кстати, пока пять тыщь хардфорков не сделаете - проект не взлетит!

Зы внезапно посетила мудрая мысль: а у вас демон пула синхронизирован с майнерами вообще-то?

Ззы другая мысля: возможно ваш майнер тормоз. Пока он искал решение, другие уже нашли овер 5000 блоков.
copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Неужели никто не знает в чем может быть проблема? Я не просто так спрашиваю я весь интернет прочесал на подобные вопросы и так ответа и не нашел.
copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Ахаха я не могу  Grin
Новую монету накодить стоит 5 ВТС примерно.

Хотя бы это глянь: https://habr.com/post/323586/
И кому сдался новый форк, если их как го*на уже и цена копеечная  Grin
У нас свой кодер он бесплатно делает но сейчас его посадили в психушку.
Вот почитай про наш биткоин 5000 https://www.bitcoin5000.org/
это не очередной форк это религия целая, освобождение от налогов и борьба с мафией.

Так по вопросу помощь будет? Или тут тоже никто ничего не шарит? Может размер блока как-то надо прописать в майнере или bitcoin5000.conf или дело в маленьком количестве участников сети но почему через core кошелек все работает синхронизируется и на cpu майнится?
sr. member
Activity: 1778
Merit: 305
Ахаха я не могу  Grin
Новую монету накодить стоит 5 ВТС примерно.

Хотя бы это глянь: https://habr.com/post/323586/
И кому сдался новый форк, если их как го*на уже и цена копеечная  Grin
copper member
Activity: 115
Merit: 0
bitcoin5000.org - 5k 5k 5k
Вообщем такая проблема, сделали форк биткоина c увеличенным размером блока и sha256, все вроде работает, в кошельке майнится через setgenerate true -1.
Но настроить внешний майнинг через rpc или mining pool, не получается, все блоки отвергаются что только не пробовали.
Пробовали все версии майнинг пулов ucomp, и модифицированные его версии, node-merged-pool, miningcore, stratum, пробовали и на linux и на windows запускать. Все майнеры использовали c ними и всевозможные настройки в том числе напрямую без пула с nevermore miner. Ничего не выходит результат один блоки находятся но отвергаются. Что можно сделать и в чем проблема?

Примеры ошибок из разных майнеров и пулов:
Ошибки:
 - Pool bitcoin5000 Thread 1 We thought a block was found but it was rejected by the daemon, share data:

2018-08-08 11:44:15 ERROR: AcceptBlock: bad-cb-height, block height mismatch in coinbase (code 16)
2018-08-08 11:44:15 ERROR: ProcessNewBlock: AcceptBlock FAILED

 submission failed with: bad-cb-height

[2018-08-15 00:36:27] accepted: 0/19 (diff 0.000), 686.20 MH/s booooo
[2018-08-15 00:36:27] reject reason: bad-cb-height
Jump to: