Test
This commit is contained in:
20
src/init.cpp
20
src/init.cpp
@@ -1244,14 +1244,10 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
|||||||
LogPrintf("Prune: pruned datadir may not have more than %d blocks; -checkblocks=%d may fail\n",
|
LogPrintf("Prune: pruned datadir may not have more than %d blocks; -checkblocks=%d may fail\n",
|
||||||
MIN_BLOCKS_TO_KEEP, GetArg("-checkblocks", 288));
|
MIN_BLOCKS_TO_KEEP, GetArg("-checkblocks", 288));
|
||||||
}
|
}
|
||||||
extern int32_t KOMODO_REWIND;
|
if (!CVerifyDB().VerifyDB(pcoinsdbview, GetArg("-checklevel", 3),
|
||||||
if ( KOMODO_REWIND == 0 )
|
GetArg("-checkblocks", 288))) {
|
||||||
{
|
strLoadError = _("Corrupted block database detected");
|
||||||
if (!CVerifyDB().VerifyDB(pcoinsdbview, GetArg("-checklevel", 3),
|
break;
|
||||||
GetArg("-checkblocks", 288))) {
|
|
||||||
strLoadError = _("Corrupted block database detected");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (const std::exception& e) {
|
} catch (const std::exception& e) {
|
||||||
if (fDebug) LogPrintf("%s\n", e.what());
|
if (fDebug) LogPrintf("%s\n", e.what());
|
||||||
@@ -1464,13 +1460,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
|||||||
uiInterface.InitMessage(_("Activating best chain..."));
|
uiInterface.InitMessage(_("Activating best chain..."));
|
||||||
// scan for better chains in the block chain database, that are not yet connected in the active best chain
|
// scan for better chains in the block chain database, that are not yet connected in the active best chain
|
||||||
CValidationState state;
|
CValidationState state;
|
||||||
extern int32_t KOMODO_REWIND;
|
if ( !ActivateBestChain(state))
|
||||||
if ( KOMODO_REWIND < 0 )
|
|
||||||
{
|
|
||||||
KOMODO_REWIND = 0;
|
|
||||||
fprintf(stderr,"bypass ActivateBestChain\n");
|
|
||||||
}
|
|
||||||
else if ( !ActivateBestChain(state))
|
|
||||||
strErrors << "Failed to connect best block";
|
strErrors << "Failed to connect best block";
|
||||||
|
|
||||||
std::vector<boost::filesystem::path> vImportFiles;
|
std::vector<boost::filesystem::path> vImportFiles;
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ struct komodo_state KOMODO_STATES[34];
|
|||||||
#define _COINBASE_MATURITY 100
|
#define _COINBASE_MATURITY 100
|
||||||
int COINBASE_MATURITY = _COINBASE_MATURITY;//100;
|
int COINBASE_MATURITY = _COINBASE_MATURITY;//100;
|
||||||
|
|
||||||
int32_t IS_KOMODO_NOTARY,KOMODO_REWIND,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAINS_SEED,KOMODO_ON_DEMAND,KOMODO_EXTERNAL_NOTARIES,KOMODO_PASSPORT_INITDONE,KOMODO_PAX,KOMODO_EXCHANGEWALLET;
|
int32_t IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAINS_SEED,KOMODO_ON_DEMAND,KOMODO_EXTERNAL_NOTARIES,KOMODO_PASSPORT_INITDONE,KOMODO_PAX,KOMODO_EXCHANGEWALLET;
|
||||||
int32_t KOMODO_LASTMINED,prevKOMODO_LASTMINED;
|
int32_t KOMODO_LASTMINED,prevKOMODO_LASTMINED;
|
||||||
std::string NOTARY_PUBKEY,ASSETCHAINS_NOTARIES;
|
std::string NOTARY_PUBKEY,ASSETCHAINS_NOTARIES;
|
||||||
uint8_t NOTARY_PUBKEY33[33];
|
uint8_t NOTARY_PUBKEY33[33];
|
||||||
|
|||||||
@@ -1463,10 +1463,10 @@ void komodo_args()
|
|||||||
KOMODO_PAX = 1;
|
KOMODO_PAX = 1;
|
||||||
} else KOMODO_PAX = GetArg("-pax",0);
|
} else KOMODO_PAX = GetArg("-pax",0);
|
||||||
name = GetArg("-ac_name","");
|
name = GetArg("-ac_name","");
|
||||||
if ( (KOMODO_REWIND= GetArg("-rewind",0)) != 0 )
|
/*if ( (KOMODO_REWIND= GetArg("-rewind",0)) != 0 )
|
||||||
{
|
{
|
||||||
printf("KOMODO_REWIND %d\n",KOMODO_REWIND);
|
printf("KOMODO_REWIND %d\n",KOMODO_REWIND);
|
||||||
}
|
}*/
|
||||||
if ( name.c_str()[0] != 0 )
|
if ( name.c_str()[0] != 0 )
|
||||||
{
|
{
|
||||||
ASSETCHAINS_SUPPLY = GetArg("-ac_supply",10);
|
ASSETCHAINS_SUPPLY = GetArg("-ac_supply",10);
|
||||||
|
|||||||
@@ -2758,7 +2758,6 @@ static void PruneBlockIndexCandidates() {
|
|||||||
* pblock is either NULL or a pointer to a CBlock corresponding to pindexMostWork.
|
* pblock is either NULL or a pointer to a CBlock corresponding to pindexMostWork.
|
||||||
*/
|
*/
|
||||||
static bool ActivateBestChainStep(CValidationState &state, CBlockIndex *pindexMostWork, CBlock *pblock) {
|
static bool ActivateBestChainStep(CValidationState &state, CBlockIndex *pindexMostWork, CBlock *pblock) {
|
||||||
extern int32_t KOMODO_REWIND;
|
|
||||||
AssertLockHeld(cs_main);
|
AssertLockHeld(cs_main);
|
||||||
bool fInvalidFound = false;
|
bool fInvalidFound = false;
|
||||||
const CBlockIndex *pindexOldTip = chainActive.Tip();
|
const CBlockIndex *pindexOldTip = chainActive.Tip();
|
||||||
@@ -2769,6 +2768,7 @@ static bool ActivateBestChainStep(CValidationState &state, CBlockIndex *pindexMo
|
|||||||
if (!DisconnectTip(state))
|
if (!DisconnectTip(state))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/*fprintf(stderr,"chaintip %d vs rewind.%d\n",(int32_t)chainActive.Tip()->nHeight,KOMODO_REWIND);
|
||||||
if ( KOMODO_REWIND != 0 && chainActive.Tip()->nHeight >= KOMODO_REWIND )
|
if ( KOMODO_REWIND != 0 && chainActive.Tip()->nHeight >= KOMODO_REWIND )
|
||||||
{
|
{
|
||||||
fprintf(stderr,"rewind ht.%d\n",chainActive.Tip()->nHeight);
|
fprintf(stderr,"rewind ht.%d\n",chainActive.Tip()->nHeight);
|
||||||
@@ -2783,15 +2783,13 @@ static bool ActivateBestChainStep(CValidationState &state, CBlockIndex *pindexMo
|
|||||||
fprintf(stderr,"end rewind ht.%d\n",chainActive.Tip()->nHeight);
|
fprintf(stderr,"end rewind ht.%d\n",chainActive.Tip()->nHeight);
|
||||||
if ( chainActive.Tip()->nHeight == KOMODO_REWIND )
|
if ( chainActive.Tip()->nHeight == KOMODO_REWIND )
|
||||||
{
|
{
|
||||||
pindexOldTip = pindexMostWork = chainActive.Tip();
|
|
||||||
fprintf(stderr,"reached rewind.%d, best to do: ./komodo-cli stop\n",KOMODO_REWIND);
|
fprintf(stderr,"reached rewind.%d, best to do: ./komodo-cli stop\n",KOMODO_REWIND);
|
||||||
pindexFork = chainActive.FindFork(pindexMostWork);
|
|
||||||
sleep(3);
|
sleep(3);
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
pindexOldTip = chainActive.Tip();
|
pindexOldTip = chainActive.Tip();
|
||||||
pindexFork = chainActive.FindFork(pindexMostWork);
|
pindexFork = chainActive.FindFork(pindexMostWork);
|
||||||
}
|
}*/
|
||||||
// Build list of new blocks to connect.
|
// Build list of new blocks to connect.
|
||||||
std::vector<CBlockIndex*> vpindexToConnect;
|
std::vector<CBlockIndex*> vpindexToConnect;
|
||||||
bool fContinue = true;
|
bool fContinue = true;
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ extern std::string NOTARY_PUBKEY;
|
|||||||
|
|
||||||
bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned int nBits, const Consensus::Params& params)
|
bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned int nBits, const Consensus::Params& params)
|
||||||
{
|
{
|
||||||
extern int32_t KOMODO_REWIND;
|
//extern int32_t KOMODO_REWIND;
|
||||||
bool fNegative,fOverflow; int32_t i,nonzpkeys=0,nonz=0,special=0,special2=0,notaryid=-1,duplicate,flag = 0, mids[66];
|
bool fNegative,fOverflow; int32_t i,nonzpkeys=0,nonz=0,special=0,special2=0,notaryid=-1,duplicate,flag = 0, mids[66];
|
||||||
arith_uint256 bnTarget; CBlockIndex *pindex; uint8_t pubkeys[66][33];
|
arith_uint256 bnTarget; CBlockIndex *pindex; uint8_t pubkeys[66][33];
|
||||||
|
|
||||||
@@ -155,7 +155,8 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in
|
|||||||
// Check proof of work matches claimed amount
|
// Check proof of work matches claimed amount
|
||||||
if ( UintToArith256(hash) > bnTarget )
|
if ( UintToArith256(hash) > bnTarget )
|
||||||
{
|
{
|
||||||
if ( (height < 235300 || height >= 236000) && KOMODO_LOADINGBLOCKS == 0 && height > 188000 && KOMODO_REWIND == 0 )//186269, 182507&& komodo_chainactive(height) != 0 && nonzpkeys > 0
|
if ( (height < 235300 || height >= 236000) && KOMODO_LOADINGBLOCKS == 0 && height > 188000 )
|
||||||
|
//&& KOMODO_REWIND == 0 )//186269, 182507&& komodo_chainactive(height) != 0 && nonzpkeys > 0
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
for (i=31; i>=0; i--)
|
for (i=31; i>=0; i--)
|
||||||
@@ -163,7 +164,7 @@ bool CheckProofOfWork(int32_t height,uint8_t *pubkey33,uint256 hash, unsigned in
|
|||||||
printf(" hash vs ");
|
printf(" hash vs ");
|
||||||
for (i=31; i>=0; i--)
|
for (i=31; i>=0; i--)
|
||||||
printf("%02x",((uint8_t *)&bnTarget)[i]);
|
printf("%02x",((uint8_t *)&bnTarget)[i]);
|
||||||
printf(" ht.%d REWIND.%d special.%d notaryid.%d ht.%d mod.%d error\n",height,KOMODO_REWIND,special,notaryid,height,(height % 35));
|
printf(" ht.%d special.%d notaryid.%d ht.%d mod.%d error\n",height,special,notaryid,height,(height % 35));
|
||||||
for (i=0; i<33; i++)
|
for (i=0; i<33; i++)
|
||||||
printf("%02x",pubkey33[i]);
|
printf("%02x",pubkey33[i]);
|
||||||
printf(" <- pubkey\n");
|
printf(" <- pubkey\n");
|
||||||
|
|||||||
@@ -757,7 +757,7 @@ void CWallet::IncrementNoteWitnesses(const CBlockIndex* pindex,
|
|||||||
|
|
||||||
void CWallet::DecrementNoteWitnesses(const CBlockIndex* pindex)
|
void CWallet::DecrementNoteWitnesses(const CBlockIndex* pindex)
|
||||||
{
|
{
|
||||||
extern int32_t KOMODO_REWIND;
|
//extern int32_t KOMODO_REWIND;
|
||||||
{
|
{
|
||||||
LOCK(cs_wallet);
|
LOCK(cs_wallet);
|
||||||
for (std::pair<const uint256, CWalletTx>& wtxItem : mapWallet) {
|
for (std::pair<const uint256, CWalletTx>& wtxItem : mapWallet) {
|
||||||
@@ -806,7 +806,7 @@ void CWallet::DecrementNoteWitnesses(const CBlockIndex* pindex)
|
|||||||
extern char ASSETCHAINS_SYMBOL[16];
|
extern char ASSETCHAINS_SYMBOL[16];
|
||||||
fprintf(stderr,"%s nWitnessCacheSize.%d\n",ASSETCHAINS_SYMBOL,(int32_t)nWitnessCacheSize);
|
fprintf(stderr,"%s nWitnessCacheSize.%d\n",ASSETCHAINS_SYMBOL,(int32_t)nWitnessCacheSize);
|
||||||
}
|
}
|
||||||
if ( KOMODO_REWIND == 0 )
|
//if ( KOMODO_REWIND == 0 )
|
||||||
assert(nWitnessCacheSize > 0);
|
assert(nWitnessCacheSize > 0);
|
||||||
//if (fFileBacked) {
|
//if (fFileBacked) {
|
||||||
// CWalletDB walletdb(strWalletFile);
|
// CWalletDB walletdb(strWalletFile);
|
||||||
|
|||||||
Reference in New Issue
Block a user