Skip to content

Commit

Permalink
fixed stuck at block 670 with reindex option
Browse files Browse the repository at this point in the history
  • Loading branch information
insomp committed Feb 5, 2017
1 parent e14ee71 commit 5ba9152
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 11 deletions.
11 changes: 6 additions & 5 deletions src/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1044,7 +1044,7 @@ bool AppInit2(boost::thread_group& threadGroup)
// RECURSIVE, SET NEW ID
BOOST_FOREACH(const CZerocoinEntry& pubCoinItem, listPubCoin) {

if(pubCoinItem.nHeight < lastCalculatedZCBlock){
if(!fReindex && pubCoinItem.nHeight < lastCalculatedZCBlock){
continue;
}else{
CZerocoinEntry pubCoinTx;
Expand All @@ -1055,7 +1055,7 @@ bool AppInit2(boost::thread_group& threadGroup)
pubCoinTx.serialNumber = pubCoinItem.serialNumber;
pubCoinTx.nHeight = -1;
pubCoinTx.IsUsed = pubCoinItem.IsUsed;
//printf("- Reindex Pubcoin Id: %d Denomination: %d\n", pubCoinTx.id, pubCoinTx.denomination);
printf("- Reindex Pubcoin Id: %d Denomination: %d\n", pubCoinTx.id, pubCoinTx.denomination);
walletdb.WriteZerocoinEntry(pubCoinTx);
}

Expand All @@ -1065,11 +1065,12 @@ bool AppInit2(boost::thread_group& threadGroup)
{
while (pindexRecur)
{
//printf("PROCESS BLOCK = %d\n", pindexRecur->nHeight);
if(pindexRecur->nHeight < lastCalculatedZCBlock){

if(!fReindex && (pindexRecur->nHeight < lastCalculatedZCBlock)){
pindexRecur = pindexRecur->pnext;
continue;
}else{
printf("PROCESS BLOCK = %d\n", pindexRecur->nHeight);
CBlock blockRecur;
blockRecur.ReadFromDisk(pindexRecur);

Expand Down Expand Up @@ -1108,7 +1109,7 @@ bool AppInit2(boost::thread_group& threadGroup)
BOOST_FOREACH(const CZerocoinEntry& countItemPubcoin, listPubCoinInLoop) {
if (currentId == countItemPubcoin.id && countItemPubcoin.denomination == pubCoinItem.denomination) {
countExistingItems++;
//printf("pubCoinItem.id = %d denomination = %d\n", countItemPubcoin.id, countItemPubcoin.denomination);
printf("pubCoinItem.id = %d denomination = %d\n", countItemPubcoin.id, countItemPubcoin.denomination);
}
}

Expand Down
13 changes: 7 additions & 6 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -757,7 +757,7 @@ bool CTransaction::CheckTransaction(CValidationState &state, uint256 hashTx, boo

// CHECKING PROCESS
BOOST_FOREACH(const CZerocoinEntry& pubCoinItem, listPubCoin) {
if (pubCoinItem.value == pubCoin)
if (pubCoinItem.value == pubCoin && pubCoinItem.denomination == denomination)
{
isAlreadyStored = true;
}
Expand Down Expand Up @@ -831,14 +831,15 @@ bool CTransaction::CheckTransaction(CValidationState &state, uint256 hashTx, boo

// CHECK PUBCOIN ID
int pubcoinId = txin.nSequence;
printf("====================== pubcoinId = %d\n", pubcoinId);
if (pubcoinId < 1 && pubcoinId == INT_MAX) { // IT BEGINS WITH 1
return state.DoS(100, error("CTransaction::CheckTransaction() : Error: nSequence is not correct format"));
}

// VERIFY COINSPEND TX
int countPubcoin = 0;
BOOST_FOREACH(const CZerocoinEntry& pubCoinItem, listPubCoin) {
//printf("denomination = %d, id = %d, pubcoinId = %d height = %d\n", pubCoinItem.denomination, pubCoinItem.id, pubcoinId, pubCoinItem.nHeight);
printf("denomination = %d, id = %d, pubcoinId = %d height = %d\n", pubCoinItem.denomination, pubCoinItem.id, pubcoinId, pubCoinItem.nHeight);

if (pubCoinItem.denomination == libzerocoin::ZQ_LOVELACE && pubCoinItem.id == pubcoinId && pubCoinItem.nHeight != -1) {
printf("## denomination = %d, id = %d, pubcoinId = %d height = %d\n", pubCoinItem.denomination, pubCoinItem.id, pubcoinId, pubCoinItem.nHeight);
Expand Down Expand Up @@ -3189,7 +3190,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
pubCoinTx.value = pubCoinItem.value;
pubCoinTx.nHeight = -1;
walletdb.WriteZerocoinEntry(pubCoinTx);
printf("- Connect Reset Pubcoin Id: %d Height: %d\n", pubCoinTx.id, pindex->nHeight);
printf("- Connect Reset Pubcoin Denomination: %d Pubcoin Id: %d Height: %d\n", pubCoinTx.denomination, pubCoinTx.id, pindex->nHeight);
zercoinMintHeight = pindex->nHeight;
}
}
Expand All @@ -3205,7 +3206,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
pubCoinTx.serialNumber = pubCoinItem.serialNumber;
pubCoinTx.value = pubCoin;
pubCoinTx.nHeight = -1;
printf("- Connect Reset Pubcoin Id: %d Height: %d\n", pubCoinTx.id, pubCoinItem.nHeight);
printf("- Connect Reset Pubcoin Denomination: %d Pubcoin Id: %d Height: %d\n", pubCoinTx.denomination, pubCoinTx.id, pindex->nHeight);
walletdb.WriteZerocoinEntry(pubCoinTx);
}

Expand Down Expand Up @@ -3272,7 +3273,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
if (currentId == countItemPubcoin.id && countItemPubcoin.denomination == pubCoinItem.denomination) {
countExistingItems++;
}
//printf("pubCoinItem.id = %d\n", countItemPubcoin.id);
printf("pubCoinItem.id = %d\n", countItemPubcoin.id);
}

// IF IT IS NOT 10 -> ADD MORE
Expand All @@ -3290,7 +3291,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
pubCoinTx.serialNumber = pubCoinItem.serialNumber;
pubCoinTx.value = pubCoinItem.value;
pubCoinTx.nHeight = pindex->nHeight;
printf("REORG PUBCOIN ID: %d HEIGHT: %d\n", pubCoinTx.id, pubCoinTx.nHeight);
printf("REORG PUBCOIN DENOMINATION: %d PUBCOIN ID: %d HEIGHT: %d\n", pubCoinTx.denomination, pubCoinTx.id, pubCoinTx.nHeight);
walletdb.WriteZerocoinEntry(pubCoinTx);
}
}
Expand Down

0 comments on commit 5ba9152

Please sign in to comment.