Pages:
Author

Topic: Собрал 0.13.0 из исходников - page 2. (Read 36760 times)

full member
Activity: 1246
Merit: 138
Hodl DeepOnion
Спомощью этой программы https://github.com/Gnaf/GenesisBlockZero/blob/master/genesisblock.c пытаюсь сгенерировать генезис блок, но получаю на экране такой вывод
Code:
Block found!
Hash: 00000000a0c67aa47840e7b73e06a0e4dcc10a98bd8ddee831092788194f0acc
Nonce: 3928961846
Unix time: 1544886668

Никакие фалы на диске вроде не создаются, хочу узнать как же мне сгенерировать генезис блок?
Ну так это надо в код забить. Еще кстати выдернуть и поменять Меркеля.

Вот может поможет

https://ensrationis.com/%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-genesis-block/
https://forum.bits.media/index.php?/topic/18648-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%84%D0%BE%D1%80%D0%BA%D0%B0-%D0%BD%D0%B0-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5-dash/
newbie
Activity: 31
Merit: 0
Спомощью этой программы https://github.com/Gnaf/GenesisBlockZero/blob/master/genesisblock.c пытаюсь сгенерировать генезис блок, но получаю на экране такой вывод
Code:
Block found!
Hash: 00000000a0c67aa47840e7b73e06a0e4dcc10a98bd8ddee831092788194f0acc
Nonce: 3928961846
Unix time: 1544886668

Никакие фалы на диске вроде не создаются, хочу узнать как же мне сгенерировать генезис блок?
newbie
Activity: 31
Merit: 0

-В теме и по ссылкам вполне достаточно информации для создания форка (для тренировок конечно Smiley )

Буду разбираться, но если бы кто то сделал полноценный мануал для совсем новичков то это было бы полезно и не было бы лишнего флуда.
А разве форк для тренировки отличается от реального форка?
full member
Activity: 1246
Merit: 138
Hodl DeepOnion

Не ругайтесь на новичка, я не собираюсь делать говнофорк а только хочу немного разобраться в этом.

Чтобы работал мой ABCCoin мне достаточно будет 2 компов или надо больше?

В 17 версии тоже нет майнинга, надо брать 12 версию если хочу пробовать с майнингом?

-В теме и по ссылкам вполне достаточно информации для создания форка (для тренировок конечно Smiley )
-2 достаточно. И даже 1 если на нем виртуалку установить
-майнить можно будет простым ЦПУ минером, хотя опять таки можно вернуть часть вырезанного кода (на Гитхабе вроде есть подобное). Ну или даже просто консольной командой generate.
newbie
Activity: 31
Merit: 0
Скомпилировал версию 0.13.1 и получил в итоге не сколько файлов по в той папке /bitcoin-0.13.1/depends/i686-w64-mingw32/bin что нужно делать дальше чтобы запустить саму монету и учится дальше?

Ну чтобы по 10 раз в личке всем не объяснять, тут напишу еще краткий мануал как сделать форк битка
Мануал, как создать форк очень простой:
1. Поменять генезис
2. Поменять название и иконки
3. Поменять еще что-нибудь или ничего больше не менять
4. Скомпилировать

Генезис нынче стало модным не менять, но новичку я бы советовал сначала потренироваться с простым форком, а потом свой биткэш делать со встроенным блэкджеком ))

Майнить генезис можно очень тупо примерно так https://github.com/3s3s/TKSR/blob/master/src/chainparams.cpp#L256

но я все таки рекомендую майнить его вот этой программой https://github.com/Gnaf/GenesisBlockZero

Как и куда вставлять генезис я рассказывать не буду - если сами не осилите, то лучше и не начинайте в это влезать вообще  Smiley

Не все такие продвинутые и не все знают C++. Я с C++ кое как пытаюсь разобраться.

Я хочу попробовать сделать свой ABCCoin на базе исходника Bitcoin, можете пошагово объяснить что надо делать?

Я пока только понял что можно исходники взять тут https://github.com/bitcoin/bitcoin

Потом мне надо поменять название Bitcoin на ABCCoin, поменять иконку, но где, в каком файле это надо менять?

Генезис тоже хочу попробовать поменять, но а что в нем такого особенного что его надо как то по другому майнить и куда его вставлять?

Как скомпилировать потом исходники после изменения, команды из первого поста подойдут для этого?
Quote

9. Вводим по очереди:
./autogen.sh
./configure
make
sudo make install

Не ругайтесь на новичка, я не собираюсь делать говнофорк а только хочу немного разобраться в этом.

Чтобы работал мой ABCCoin мне достаточно будет 2 компов или надо больше?

В 17 версии тоже нет майнинга, надо брать 12 версию если хочу пробовать с майнингом?
full member
Activity: 1246
Merit: 138
Hodl DeepOnion
У меня сейчас нулевой nMinimumChainWork, при вводе getblockchaininfo показывает:

"chainwork": "0000000000000000000000000000000000000000000000000000000012f012f0

Это значение нужно вставить в nMinimumChainWork или ставить ваш нулевой? Как лучше сделать?

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

Значение nMinimumChainWork увеличивать с ростом количества новых блоков и значения брать с блока (на каждом блоке другое значение)? Верно я понимаю, пример 500 блок 2000 блок и т.д
Вот что я примерно понял:
1) https://github.com/bitcoin/bitcoin/commit/ad20cddce2097c6561202777fccd257deb1a9810 ввели параметр nMinimumChainWork
2) В описании: nMinimumChainWork with information from the getblockchaininfo rpc. - т.е.  значение берется из консоли.
3) Так как согласно алгоритму ( pindexNew->nChainWork = (pindexNew->pprev ? pindexNew->pprev->nChainWork : 0) + GetBlockProof(*pindexNew)) - этот самый nChainWork  может только расти (не вникая в подробности подозреваю что это сумма проделанной работы в каждом предшестующем и этом блоке - Total amount of work (expected number of hashes) in the chain up to and including this block).

А значит в каждом выпуске программы можно (нужно?) брать из консоли getblockchaininfo  параметр chainwork и вставлять его в chainparams.cpp

Ну и вот место, из за которого мои ноды не синхронизировались:

https://github.com/bitcoin/bitcoin/blob/bccb4d29a8080bf1ecda1fc235415a11d903a680/src/net_processing.cpp#L518

Quote
if (state->pindexBestKnownBlock == nullptr || state->pindexBestKnownBlock->nChainWork < chainActive.Tip()->nChainWork || state->pindexBestKnownBlock->nChainWork < nMinimumChainWork) {
        // This peer has nothing interesting.
        return;

jr. member
Activity: 157
Merit: 4
У меня сейчас нулевой nMinimumChainWork, при вводе getblockchaininfo показывает:

"chainwork": "0000000000000000000000000000000000000000000000000000000012f012f0

Это значение нужно вставить в nMinimumChainWork или ставить ваш нулевой? Как лучше сделать?

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

Значение nMinimumChainWork увеличивать с ростом количества новых блоков и значения брать с блока (на каждом блоке другое значение)? Верно я понимаю, пример 500 блок 2000 блок и т.д
full member
Activity: 1246
Merit: 138
Hodl DeepOnion
У меня сейчас нулевой nMinimumChainWork, при вводе getblockchaininfo показывает:

"chainwork": "0000000000000000000000000000000000000000000000000000000012f012f0

Это значение нужно вставить в nMinimumChainWork или ставить ваш нулевой? Как лучше сделать?

0x0000000000000000000000000000000000000000000000000000000000001000
насколько я понимаю и нулевой будет работать, но по мере роста сети во избежание флуда от недоброжелателей ,насколько я понял перевод этого параметра, нужно будет увеличивать это значение.
jr. member
Activity: 157
Merit: 4
У меня сейчас нулевой nMinimumChainWork, при вводе getblockchaininfo показывает:

"chainwork": "0000000000000000000000000000000000000000000000000000000012f012f0

Это значение нужно вставить в nMinimumChainWork или ставить ваш нулевой? Как лучше сделать?

0x0000000000000000000000000000000000000000000000000000000000001000
full member
Activity: 1246
Merit: 138
Hodl DeepOnion

Тоже разобрался, все уже собирается. До этого как вы поняли что ошибка связана с nMinimumChainWork сначала эта строка у вас выглядела примерно так?

consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000000000000000000000000");

Если так, то nMinimumChainWork нужно сгенерировать новый или как? Можете объяснить этот момент

Ну не нулевая была, 0000000000000000000000000000000000000000000000000000000100010001 (отсюда https://medium.com/@jordan.baczuk/how-to-fork-bitcoin-c39139506443)

В консоли при запросе getblockchaininfo выдало для единственного 0 блока 0x0000000000000000000000000000000000000000000000000000000000001000 - вот его и поставил.



consensus.nMinimumChainWork - The best chain should have at least this much work.

Кстати, напоролся на засаду, при генерации блоков ЦПУ минером монеты уходили неизвестно куда. Вначале думал что с префиксами напортачил. Ан нет. Вот кусок кода

Quote
size_t address_to_script(unsigned char *out, size_t outsz, const char *addr)
{
   unsigned char addrbin[25];
   int addrver;
   size_t rv;

   if (!b58dec(addrbin, sizeof(addrbin), addr))
      return 0;
   addrver = b58check(addrbin, sizeof(addrbin), addr);
   if (addrver < 0)
      return 0;
   switch (addrver) {
      case 5:    /* Bitcoin script hash */
      case 196:  /* Testnet script hash */
         if (outsz < (rv = 23))
            return rv;
         out[ 0] = 0xa9;  /* OP_HASH160 */
         out[ 1] = 0x14;  /* push 20 bytes */
         memcpy(&out[2], &addrbin[1], 20);
         out[22] = 0x87;  /* OP_EQUAL */
         return rv;
      default:
         if (outsz < (rv = 25))
            return rv;
         out[ 0] = 0x76;  /* OP_DUP */
         out[ 1] = 0xa9;  /* OP_HASH160 */
         out[ 2] = 0x14;  /* push 20 bytes */
         memcpy(&out[3], &addrbin[1], 20);
         out[23] = 0x88;  /* OP_EQUALVERIFY */
         out[24] = 0xac;  /* OP_CHECKSIG */
         return rv;
   }
}

Ну а мой префикс 21, и кошелек отправял не на скрипт, а в default. Уж не знаю на сколько это критично, сам особо не майню, но видно что ЦПУ минер может подставить в некоторых случаях.
jr. member
Activity: 157
Merit: 4

Удачно собрали под линукс и виндовс? Или только под линкус? (с линуксом и у меня проблем не возникла)
И под линукс и под виндос удачно собралось.

Но что-то пошло не так... ноды не синхронизируются. По отдельности работают, но данными не обмениваются. Причем в логах ничего плохого нет, друг друга видят, но блоки не синхронизируют.
Или я что то напортачил (скорее всего). А может из-за последней версии битка 0.17.99 (но это вряд ли конечно). Так что рано я обрадовался.


З.Ы. Разобрался, оказывается нужно еще было меньше установить nMinimumChainWork, а я как в какой-то инструкции задал. Плохо что в логах ничего не ругается, пока допер.

Тоже разобрался, все уже собирается. До этого как вы поняли что ошибка связана с nMinimumChainWork сначала эта строка у вас выглядела примерно так?

consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000000000000000000000000");

Если так, то nMinimumChainWork нужно сгенерировать новый или как? Можете объяснить этот момент
full member
Activity: 1246
Merit: 138
Hodl DeepOnion

Удачно собрали под линукс и виндовс? Или только под линкус? (с линуксом и у меня проблем не возникла)
И под линукс и под виндос удачно собралось.

Но что-то пошло не так... ноды не синхронизируются. По отдельности работают, но данными не обмениваются. Причем в логах ничего плохого нет, друг друга видят, но блоки не синхронизируют.
Или я что то напортачил (скорее всего). А может из-за последней версии битка 0.17.99 (но это вряд ли конечно). Так что рано я обрадовался.


З.Ы. Разобрался, оказывается нужно еще было меньше установить nMinimumChainWork, а я как в какой-то инструкции задал. Плохо что в логах ничего не ругается, пока допер.
jr. member
Activity: 157
Merit: 4
На 16 убунту без проблем собрались бинарки для linux, а для win64 та же ошибка, может стоит попробовать собрать на 18 убунту?

Не попробуешь - не узнаешь )

Запустил сборку на 18 убунту и та же ошибка, на какой версии убунту вы собираете свою монету для обновления?
Озадачился вопросом создания форка битка Smiley Собрал на 18.04 Убунте из под Виртуалбокса, не с первого раза конечно, но удачно. Особенно не курочил, только порты да генезис. И иксовый (QT Creator) и виндовые клиенты (ох уж этот make clean).
Ну и демон под Визуал Студио также компилируется без вопросов.


Удачно собрали под линукс и виндовс? Или только под линкус? (с линуксом и у меня проблем не возникла)
full member
Activity: 1246
Merit: 138
Hodl DeepOnion
На 16 убунту без проблем собрались бинарки для linux, а для win64 та же ошибка, может стоит попробовать собрать на 18 убунту?

Не попробуешь - не узнаешь )

Запустил сборку на 18 убунту и та же ошибка, на какой версии убунту вы собираете свою монету для обновления?
Озадачился вопросом создания форка битка Smiley Собрал на 18.04 Убунте из под Виртуалбокса, не с первого раза конечно, но удачно. Особенно не курочил, только порты да генезис. И иксовый (QT Creator) и виндовые клиенты (ох уж этот make clean).
Ну и демон под Визуал Студио также компилируется без вопросов.
jr. member
Activity: 157
Merit: 4
На 16 убунту без проблем собрались бинарки для linux, а для win64 та же ошибка, может стоит попробовать собрать на 18 убунту?

Не попробуешь - не узнаешь )

Запустил сборку на 18 убунту и та же ошибка, на какой версии убунту вы собираете свою монету для обновления?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
На 16 убунту без проблем собрались бинарки для linux, а для win64 та же ошибка, может стоит попробовать собрать на 18 убунту?

Не попробуешь - не узнаешь )
jr. member
Activity: 157
Merit: 4
Возникла ошибка при сборке битка 15.1 на убунту 14.04 для win64

Ошибка:
Staging miniupnpc...
Postprocessing miniupnpc...
Caching miniupnpc...
copying packages: native_ccache native_protobuf boost openssl libevent zeromq qrencode protobuf zlib qt bdb miniupnpc
to: /root/bitcoin/depends/x86_64-w64-mingw32
bash: ./configure: No such file or directory



они уже 16 убунту отказываются поддерживать, а вы на 14 пытаетесь ))

На 16 убунту без проблем собрались бинарки для linux, а для win64 та же ошибка, может стоит попробовать собрать на 18 убунту?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Возникла ошибка при сборке битка 15.1 на убунту 14.04 для win64

Ошибка:
Staging miniupnpc...
Postprocessing miniupnpc...
Caching miniupnpc...
copying packages: native_ccache native_protobuf boost openssl libevent zeromq qrencode protobuf zlib qt bdb miniupnpc
to: /root/bitcoin/depends/x86_64-w64-mingw32
bash: ./configure: No such file or directory



они уже 16 убунту отказываются поддерживать, а вы на 14 пытаетесь ))
jr. member
Activity: 157
Merit: 4
Возникла ошибка при сборке битка 15.1 на убунту 14.04 для win64

Ошибка:
Staging miniupnpc...
Postprocessing miniupnpc...
Caching miniupnpc...
copying packages: native_ccache native_protobuf boost openssl libevent zeromq qrencode protobuf zlib qt bdb miniupnpc
to: /root/bitcoin/depends/x86_64-w64-mingw32
bash: ./configure: No such file or directory

newbie
Activity: 37
Merit: 0
Для второй сборки взял последнюю версию лайта, изменил название, порты, генезис блок, количество монет и отправил на сборку, все шло гладко, но вы появилась ошибка, на процесс make в главной директории монеты.


make[2]: *** No rule to make target `qt/res/icons/coin_splash.png', needed by `qt/qrc_bitcoin.cpp'.  Stop.
make[2]: Leaving directory `/root/coin/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/coin/src'
make: *** [all-recursive] Error 1


Кода делал тестовую сборку монеты на битке также ошибка была на том же процессе.
Название монеты меняю таким образом, аналогично и в битке:


find ./ -type f -readable -writable -exec sed -i "s/Litecoin/Testcoin/g" {} \;
find ./ -type f -readable -writable -exec sed -i "s/LiteCoin/TestCoin/g" {} \;
find ./ -type f -readable -writable -exec sed -i "s/LTC/TC/g" {} \;
find ./ -type f -readable -writable -exec sed -i "s/litecoin/testcoin/g" {} \;
find ./ -type f -readable -writable -exec sed -i "s/litecoind/testcoind/g" {} \;

Ну он же вам ясно указывает, что нет правила для сборки coin_splash.png в файле qt/qrc_bitcoin.cpp вы должны прописать картинку coin_splash.png в файле qrc_bitcoin.cpp
Pages:
Jump to: