V0.6 public testing

Please note that experience with compiling and operating a Peercoin node in developer-like environment is required to participate in this test. To assist the developers with testing you must know how to compile the Peercoin source-code and submit logs if you experience some problems.

With this public testing we’ll make the testnet switch to v0.6 protocol and learn if the branch is ready for deployment to mainnet.

Fetch latest code from github:

git clone https://github.com/peercoin/peercoin

cd peercoin

checkout RC1 branch with the fork logic:

git checkout ppc-0.6-rc1


proceed to build the daemon or the QT wallet:

qmake-qt5 && make

(qmake -qt=qt5 && make on Ubuntu 17.04)


Run the node with the -testnet flag.

Mint some blocks

If you have no testnet coins, post your testnet address bellow and some will be sent to you.

###Redownloading Blockchain


For windows users, here is win32 build:


sha256sum: 9c05fbc1aab1fa5c9bda24f9f13a5411cd85a498f00d8619947fdb991279e406

2017-10-07 13:41:04 Test Network: genesis=0x00000001f757bb737f65 nBitsLimit=0x1d0fffff nBitsInitial=0x1d07ffff nStakeMinAge=86400 nCoinbaseMaturity=60 nModifierInterval=1200
2017-10-07 13:41:06 LoadBlockIndexDB(): last block file = 0
2017-10-07 13:41:06 LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=275328, size=143722979, heights=0...275231, time=2012-08-16...2017-05-20)
2017-10-07 13:41:06 LoadBlockIndexDB(): synchronized checkpoint 00000001f757bb737f6596503e17cd17b0658ce630cc727c0cca81aec47c9f06
2017-10-07 13:41:06 LoadBlockIndexDB(): transaction index enabled
2017-10-07 13:41:06 LoadBlockIndexDB(): hashBestChain=c0dd1b7f29dae6a38e2c3c7ddb63cd3b91e681ebcbc94590563fe690d52197f3  height=275230 date=2017-05-20 17:22:26
2017-10-07 13:41:06 init message: Verifying blocks...
2017-10-07 13:41:06 Verifying last 288 blocks at level 3
2017-10-07 13:41:06 No coin database inconsistencies in last 289 blocks (580 transactions)
2017-10-07 13:41:06  block index            2937ms
2017-10-07 13:41:06 init message: Loading wallet...
2017-10-07 13:41:07 nFileVersion = 80600
2017-10-07 13:41:07  wallet                 1037ms
2017-10-07 13:41:08 ERROR: CBlock::ReadFromDisk() : GetHash() doesn't match index
2017-10-07 13:41:08 *** Failed to read block
2017-10-07 13:41:12 init message: Loading addresses...
2017-10-07 13:41:12 Loaded 1437 addresses from peers.dat  4ms
2017-10-07 13:41:12 Shutdown : In progress...
2017-10-07 13:41:12 Flush(false)
2017-10-07 13:41:12 wallet.dat refcount=0
2017-10-07 13:41:12 wallet.dat checkpoint
2017-10-07 13:41:12 wallet.dat detach
2017-10-07 13:41:12 wallet.dat closed
2017-10-07 13:41:12 DBFlush(false) ended              23ms
2017-10-07 13:41:12 StopNode()
2017-10-07 13:41:12 Flushed 1437 addresses to peers.dat  13ms
2017-10-07 13:41:12 Committing 888 changed transactions to coin database...
2017-10-07 13:41:12 Flush(true)
2017-10-07 13:41:12 wallet.dat refcount=0
2017-10-07 13:41:12 wallet.dat checkpoint
2017-10-07 13:41:12 wallet.dat detach
2017-10-07 13:41:12 wallet.dat closed
2017-10-07 13:41:12 DBFlush(true) ended              15ms
2017-10-07 13:41:12 Shutdown : done

During startup, using my old testnet wallet and the testnet db files.
May have been caused by a dirty shutdown.

still bitcoin-qt

1 Like

v0.6 uses the new leveldb database for storing the blockchain, this is incompatible with the old database.
You should redownload the blockchain, you can do this my removing all files except the wallet.dat file.

@peerchemist let’s make sure we communicate this clearly when we release.

This happened mid sync after I restarted the client. The client was about 30 weeks behind at that time. Let’s see if it happens again. I’m syncing without “enforce checkpoints” btw.

Please retweet so we can get some more eyes on it…


Surely that would be easy enough to automate? Not a big deal though as long as people are fully aware that they need to manually remove some files.

I had to use this command to build on Ubuntu 17.04:

qmake -qt=qt5 && make

./peercoin-qt --testnet --debug
"sni-qt/14380" WARN  15:03:34.122 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE 
peercoin-qt: src/main.cpp:4898: CBlockTemplate* CreateNewBlock(CReserveKey&, CWallet*, bool): assertion  »"mempool transaction missing input" == 0« not complied.

Launching peercoin-qt with the -debug flag in the terminal seems to crash it.

Edit: Can’t reproduce it anymore. Maybe it had something to do with the old block chain files.

bottom one:

Status: 40567 confirmations
Date: 16.02.17 10:35
Credit: 0.00 PPC
Net amount: 0.00 PPC
Transaction ID: 90d8fd1e5a61154f712da26a5f6a800f77b72b18a8a76fa31f2e823327735089

Debug information

Credit: 0.00 PPC

CTransaction(hash=90d8fd1e5a61154f712da26a5f6a800f77b72b18a8a76fa31f2e823327735089, nTime=1487237734, ver=1, vin.size=3, vout.size=4, nLockTime=0)
CTxIn(COutPoint(120037265cbbfbed0891cf877d8ba6402e98c11e836ea7473b2dd3cc498811e3, 0), scriptSig=3045022100dba4a477a39fbb)
CTxIn(COutPoint(471a40a89a261d7cee55a44dfca38be25862dc54e42769b68f8df5aed9367c3d, 0), scriptSig=304502203235f993444329fd)
CTxIn(COutPoint(84da3b498ec775bae434938ac830070b728af6a351e7458710a8ad5f6065fd04, 0), scriptSig=30450220257e88f94c70fe0f)
CTxOut(nValue=0.01, scriptPubKey=OP_DUP OP_HASH160 01202a79b5713d94c259e3808be1d532d4ce3883 OP_EQUALVERIFY OP_CHECKSIG)
CTxOut(nValue=0.00, scriptPubKey=OP_RETURN 08011202e8071803)
CTxOut(nValue=0.00, scriptPubKey=OP_DUP OP_HASH160 75513554f235b939a5f269de8d659fbe5ed3d4f9 OP_EQUALVERIFY OP_CHECKSIG)
CTxOut(nValue=0.00, scriptPubKey=OP_DUP OP_HASH160 27e93d7a5229c9b28e01cf478278b6e17f909965 OP_EQUALVERIFY OP_CHECKSIG)

Amount=-0.000001 PPC IsMine=false
Amount=-0.000001 PPC IsMine=false
Amount=-0.000001 PPC IsMine=false

top one:

Status: 39816 confirmations
Date: 18.02.17 13:49
Debit: -9946.39 PPC
Credit: 9946.37 PPC
Net amount: -0.02 PPC
Transaction ID: a1590466cb92bbf8a9679375387ab52e77d166fb9ddb739b0ba51802f8599152

Debug information

Debit: -9946.39 PPC
Credit: 9946.37 PPC

CTransaction(hash=a1590466cb92bbf8a9679375387ab52e77d166fb9ddb739b0ba51802f8599152, nTime=1487422159, ver=1, vin.size=2, vout.size=3, nLockTime=0)
CTxIn(COutPoint(184b5e7b0b47828edf55bfbec41768207ec246bedbfc90ad96f068268a5b13e6, 0), scriptSig=3045022100a7bb5e40deb99d)
CTxIn(COutPoint(21dac93b109ec3073a7e0066752bcb8e322328849b5cc81d3f7196e6d23ace27, 0), scriptSig=304402203506ba3cb543f98b)
CTxOut(nValue=0.01, scriptPubKey=OP_DUP OP_HASH160 1e667ee94ea8e62c63fe59a0269bb3c091c86ca3 OP_EQUALVERIFY OP_CHECKSIG)
CTxOut(nValue=0.00, scriptPubKey=OP_RETURN 0801120f57696c6c797374657374617373657418012004)
CTxOut(nValue=9946.37, scriptPubKey=OP_DUP OP_HASH160 f90869307583a2ade411d8304dfa28ab6ab346e7 OP_EQUALVERIFY OP_CHECKSIG)

Amount=-0.000001 PPC IsMine=false

Just tell me here if you need some testnet coins. I have mined some.

  • Client version shows “v0.4.0ppc-2056-g6e3af8c-beta”, isn’t it must be something v0.6? Started from scratch, .peercoin directory didn’t exist.
CLI log
`$ git clone https://github.com/peercoin/peercoin
Cloning into 'peercoin'...
remote: Counting objects: 28199, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 28199 (delta 0), reused 2 (delta 0), pack-reused 28195
Receiving objects: 100% (28199/28199), 22.34 MiB | 1.33 MiB/s, done.
Resolving deltas: 100% (20776/20776), done.
Checking connectivity... done.
$ cd peercoin
/peercoin$ git checkout ppc-0.6-rc1
Branch ppc-0.6-rc1 set up to track remote branch ppc-0.6-rc1 from origin.
Switched to a new branch 'ppc-0.6-rc1'
/peercoin$ qmake -qt=qt5 && make
/peercoin$ ./peercoin-qt -testnet`
  • Synchronization stucking for hours with messages like:
`2017-10-08 07:35:01 ERROR: CheckProofOfStake() : tx index not found
2017-10-08 07:35:01 WARNING: ProcessBlock(): check proof-of-stake failed for block 1013abe0c5c9748aad8a5fc9b409b3f85aef168849474972e1af000faec879db
2017-10-08 08:30:51 ERROR: CheckProofOfStake() : INFO: check kernel failed on coinstake 8595a53633c2d5e68fdc1470f88c30602fd8b73910434358337a0d3ce4bbe713, hashProof=0000000000000000000000000000000000000000000000000000000000000000
2017-10-08 08:30:51 WARNING: ProcessBlock(): check proof-of-stake failed for block e250f5e27363b258bd8eb71e06afa74466cb6f053aa5164e7b73f36973da93d2`

I compiled the daemon on linux.

Used the old block files and the old wallet and had the same problem “Error: Failed to read block” with the daemon crashing.

Guess you really have to remove the old block files.

wallet.dat can be left from previous version, but blk*.dat files have to be removed prior to launch.

Is there a way to show the current status of “enforcechekpoints”?

Can this be included in getinfo?

Please log your bug report or feature requests here if you can:


We will try to enter the requests made here into the issue tracker, but chances are that your request get’s overlooked here.

Yeah, I noticed that too… I think it uses the output from git describe ( https://github.com/peercoin/peercoin/blob/v0.6.0ppc.rc1/share/genbuild.sh#L19 )… maybe we didn’t use an annotated tag, that could maybe explain it picking up an old version? https://www.kernel.org/pub/software/scm/git/docs/git-describe.html (“By default (without --all or --tags) git describe only shows annotated tags.”).

oh, ha, i’ll go try to put it in github :wink:

I tried to fix that here: https://github.com/peercoin/peercoin/pull/172

It did not work.

Seems you are right, “v0.6.0ppc.rc1” tag is lightweight, thus not selected on git describe.

$ git describe --candidates=2 --debug --tags
searching to describe HEAD
 lightweight        3 v0.6.0ppc.rc1
 annotated        157 v0.4.0ppc
traversed 159 commits
more than 2 tags found; listed 2 most recent
gave up search at ace33eb041941d93bfaae5593bbbbea9aeb808a2

What you think about the second problem, with sync interrupting, what may causing it?