Bitcoin Forum
June 21, 2024, 11:52:16 AM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Форк Peercoin'а  (Read 211 times)
evilink (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
February 09, 2018, 02:14:20 PM
 #1

На волне хайпа решил тоже заняться криптой, дабы не отстать от технологий. Как любитель ковыряний в исходниках, решил сделать свой форк. За основу взял Peercoin.
Работаю на Kali Linux(x64), редактор кода Visual Studio Code.
Компилирую через консоль, естественно.
Пытался найти genesis hash через утилиту GenesisH0 https://github.com/lhartikk/GenesisH0, однако процесс идёт слишком долго.
Решил пойти вторым путём: использовать genesis hash из debug.log
Проблема в том, что genesis hash считается не верным

debug.log:
Code:
CheckProofOfWork() : hash doesn't match nBits

Если отключить проверку
Code:
        assert(hash == hashGenesisBlock);
        // ppcoin: check genesis block
        {
            CValidationState state;
            assert(block.CheckBlock(state));
        }

debug.log выдаёт следующее:
Code:
2018-02-08 13:21:59 Pre-allocating up to position 0x1000000 in blk00000.dat
2018-02-08 13:21:59 ERROR: AddToBlockIndex() : Rejected by stake modifier checkpoint height=0, modifier=0x0000000000000000
2018-02-08 13:21:59 ERROR: LoadBlockIndex() : genesis block not accepted
2018-02-08 13:21:59 : Error initializing block database.
Do you want to rebuild the block database now?
2018-02-08 13:21:59 Shutdown : In progress...
2018-02-08 13:21:59 Flush(false)
2018-02-08 13:21:59 DBFlush(false) ended 0ms
2018-02-08 13:21:59 StopNode()
2018-02-08 13:21:59 Flushed 0 addresses to peers.dat 33ms
2018-02-08 13:21:59 Committing 0 changed transactions to coin database...
2018-02-08 13:21:59 Flush(true)
2018-02-08 13:21:59 DBFlush(true) ended 0ms
2018-02-08 13:21:59 Shutdown : done

Собственно, что я делаю не так и что мне стоит изменить, чтобы форк заработал? "играюсь" уже около месяца(спасибо билиотекам на linux'е) и уже хотелось бы закончить и начать делать что-нибудь стоящее. Заранее благодарю за помощь. Если нужны вырезки из кода для помощи - с удовольствием предоставлю.
neiros
Legendary
*
Offline Offline

Activity: 3514
Merit: 1100



View Profile WWW
February 09, 2018, 03:13:44 PM
 #2

Работаю на Kali Linux(x64), редактор кода Visual Studio Code.
Компилирую через консоль, естественно.
Поставьте Qt


debug.log:
Code:
CheckProofOfWork() : hash doesn't match nBits

Смотрите что не нравится функции CheckProofOfWork().

evilink (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
February 09, 2018, 03:21:33 PM
 #3

Работаю на Kali Linux(x64), редактор кода Visual Studio Code.
Компилирую через консоль, естественно.
Поставьте Qt
В смысле поставить qt? Он у меня стоит. Это что-то меняет?(и 4 и 5 версии).
neiros
Legendary
*
Offline Offline

Activity: 3514
Merit: 1100



View Profile WWW
February 09, 2018, 03:29:49 PM
 #4

Работаю на Kali Linux(x64), редактор кода Visual Studio Code.
Компилирую через консоль, естественно.
Поставьте Qt
В смысле поставить qt? Он у меня стоит. Это что-то меняет?(и 4 и 5 версии).
Qt Creator я имею ввиду.
С ним и собирать и редактировать гораздо удобнее.
И всё под него в этом коине вроде бы уже настроено и заточено если меня память не подводит.
Но это вообще то мелочи. Чем удобнее, тем и пользуйтесь.

evilink (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
February 09, 2018, 03:32:12 PM
 #5

Работаю на Kali Linux(x64), редактор кода Visual Studio Code.
Компилирую через консоль, естественно.
Поставьте Qt
В смысле поставить qt? Он у меня стоит. Это что-то меняет?(и 4 и 5 версии).
Qt Creator я имею ввиду.
С ним и собирать и редактировать гораздо удобнее.
И всё под него в этом коине вроде бы уже настроено и заточено если меня память не подводит.
Но это вообще то мелочи. Чем удобнее, тем и пользуйтесь.

Хорошо. Спасибо. Попробую.
evilink (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
February 09, 2018, 04:53:20 PM
 #6

debug.log:
Code:
CheckProofOfWork() : hash doesn't match nBits

Смотрите что не нравится функции CheckProofOfWork().

Вот что выдаёт debug.log на данный момент:

Code:
2018-02-09 16:47:57 Peercoin Network: genesis=0x7ed4d0215dbe43bbe5b7 nBitsLimit=0x1d00ffff nBitsInitial=0x1c00ffff nStakeMinAge=2592000 nCoinbaseMaturity=500 nModifierInterval=21600
2018-02-09 16:47:57 LoadBlockIndexDB(): last block file = 0
2018-02-09 16:47:57 LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=3, size=636, heights=0...0, time=2018-02-09...2018-02-09)
2018-02-09 16:47:57 LoadBlockIndexDB(): synchronized checkpoint 7ed4d0215dbe43bbe5b70ce50b3f22eb89143810bbd1469ff964863f8f83225c
2018-02-09 16:47:57 LoadBlockIndexDB(): transaction index enabled
2018-02-09 16:47:57 Initializing databases...
2018-02-09 16:47:57 hash= 7ed4d0215dbe43bbe5b70ce50b3f22eb89143810bbd1469ff964863f8f83225c
2018-02-09 16:47:57 GenHash= 7ed4d0215dbe43bbe5b70ce50b3f22eb89143810bbd1469ff964863f8f83225c
2018-02-09 16:47:57 MerkleHash= c348774cf545a2448c92ba17c553fc37626fd93cdf83ff9027efa72cb3751638
2018-02-09 16:47:57 min nBit:  1d00ffff
2018-02-09 16:47:57 ERROR: AddToBlockIndex() : Rejected by stake modifier checkpoint height=0, modifier=0x0000000000000000
2018-02-09 16:47:57 ERROR: LoadBlockIndex() : genesis block not accepted
2018-02-09 16:47:57 : Error initializing block database.
Do you want to rebuild the block database now?
2018-02-09 16:47:57 Shutdown : In progress...
2018-02-09 16:47:57 Flush(false)
2018-02-09 16:47:57 DBFlush(false) ended               0ms
2018-02-09 16:47:57 StopNode()
2018-02-09 16:47:57 Flushed 0 addresses to peers.dat  32ms
2018-02-09 16:47:57 Committing 0 changed transactions to coin database...
2018-02-09 16:47:57 Flush(true)
2018-02-09 16:47:57 DBFlush(true) ended               0ms
2018-02-09 16:47:57 Shutdown : done
neiros
Legendary
*
Offline Offline

Activity: 3514
Merit: 1100



View Profile WWW
February 10, 2018, 06:13:39 AM
 #7


2018-02-09 16:47:57 ERROR: AddToBlockIndex() : Rejected by stake modifier checkpoint height=0, modifier=0x0000000000000000


Чекпоинт старого генезиса похоже сработал - https://github.com/peercoin/peercoin/blob/master/src/kernel.cpp#L35
Закоментить это дело можно.
Но в этих модифаерах, стейках и т.п. POS-валют я не разбираюсь - сама парадигма этих валют мне не нравится.


evilink (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
February 10, 2018, 12:40:02 PM
 #8


2018-02-09 16:47:57 ERROR: AddToBlockIndex() : Rejected by stake modifier checkpoint height=0, modifier=0x0000000000000000


Чекпоинт старого генезиса похоже сработал - https://github.com/peercoin/peercoin/blob/master/src/kernel.cpp#L35
Закоментить это дело можно.

Покопался в файле kernel.cpp, получил через консоль(всё ещё не рабочего) кошелька необходимый чекпоинт. Консоль выдаёт следующую ошибку:
Code:
util/cache.cc:180: leveldb::{anonymous}::LRUCache::~LRUCache(): Проверочное утверждение «e->refs == 1» не выполнено.
Аварийный останов

debug.log:
Code:
2018-02-10 12:32:40 Peercoin version v0.6.2ppc-rc2-dirty (2018-01-19 14:48:21 +0100)
2018-02-10 12:32:40 Using OpenSSL version OpenSSL 1.1.0g  2 Nov 2017
2018-02-10 12:32:40 Default data directory /root/.peercoin
2018-02-10 12:32:40 Using data directory /root/.peercoin
2018-02-10 12:32:40 Using at most 125 connections (1024 file descriptors available)
2018-02-10 12:32:40 Using 4 threads for script verification
2018-02-10 12:32:40 init message: Проверка бумажника...
2018-02-10 12:32:40 dbenv.open LogDir=/root/.peercoin/database ErrorFile=/root/.peercoin/db.log
2018-02-10 12:32:40 Bound to [::]:9901
2018-02-10 12:32:40 Bound to 0.0.0.0:9901
2018-02-10 12:32:40 init message: Загрузка индекса блоков...
2018-02-10 12:32:40 Opening LevelDB in /root/.peercoin/blocks/index
2018-02-10 12:32:40 Opened LevelDB successfully
2018-02-10 12:32:40 Opening LevelDB in /root/.peercoin/chainstate
2018-02-10 12:32:40 Opened LevelDB successfully
2018-02-10 12:32:40 Peercoin Network: genesis=0x9dfde74a624a4b4c5246 nBitsLimit=0x1d00ffff nBitsInitial=0x1c00ffff nStakeMinAge=2592000 nCoinbaseMaturity=500 nModifierInterval=21600
2018-02-10 12:32:40 ERROR: CheckProofOfWork() : hash doesn't match nBits
2018-02-10 12:32:40 ERROR: LoadBlockIndex() : CheckIndex failed: CBlockIndex(pprev=(nil), pnext=(nil), nHeight=0, nMint=0.00, nMoneySupply=0.00, nFlags=(MOD)(1)(PoW), nStakeModifier=0000000000000000, nStakeModifierChecksum=00000000, hashProofOfStake=0000000000000000000000000000000000000000000000000000000000000000, prevoutStake=(COutPoint(0000000000000000000000000000000000000000000000000000000000000000, 4294967295)), nStakeTime=0 merkle=0e9864210d96e5c3ffb8182c714e4554d77d3c6bd874d4a5752284154cfe5304, hashBlock=9dfde74a624a4b4c52469f4b80c396c9f912ee4b2b7ce754074eb4ead9a88891)
2018-02-10 12:32:41 init message: Загрузка индекса блоков...

Так же в консоли приложения я получил hashProofOfStake, но понятия не имею, куда его вставить(искал в коде,но не нашёл разумного применения).
NeroCity
Copper Member
Newbie
*
Offline Offline

Activity: 124
Merit: 0

AXS.GOLD (AXSG)


View Profile WWW
April 03, 2018, 10:12:09 AM
 #9

Работаю на Kali Linux(x64), редактор кода Visual Studio Code.
Компилирую через консоль, естественно.
Поставьте Qt
В смысле поставить qt? Он у меня стоит. Это что-то меняет?(и 4 и 5 версии).
Qt Creator я имею ввиду.
С ним и собирать и редактировать гораздо удобнее.
И всё под него в этом коине вроде бы уже настроено и заточено если меня память не подводит.
Но это вообще то мелочи. Чем удобнее, тем и пользуйтесь.
Очень удобно. Но некоторые форки в нем собираются трудно. Все зависит от правильных библиотек. Иногда неделями не можешь понять и подбираешь версии.

AXS GOLD - https://axsg.org
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!