@ -415,7 +415,7 @@ bool AddOrphanTx(const CTransaction& tx)
unsigned int sz = tx . GetSerializeSize ( SER_NETWORK , CTransaction : : CURRENT_VERSION ) ;
if ( sz > 5000 )
{
printf ( " ignoring large orphan tx (size: %u, hash: %s) \n " , sz , hash . ToString ( ) . c_str ( ) ) ;
LogPrint ( " mempool " , " ignoring large orphan tx (size: %u, hash: %s) \n " , sz , hash . ToString ( ) . c_str ( ) ) ;
return false ;
}
@ -423,7 +423,7 @@ bool AddOrphanTx(const CTransaction& tx)
BOOST_FOREACH ( const CTxIn & txin , tx . vin )
mapOrphanTransactionsByPrev [ txin . prevout . hash ] . insert ( hash ) ;
printf ( " stored orphan tx %s (mapsz % " PRIszu " ) \n " , hash . ToString ( ) . c_str ( ) ,
LogPrint ( " mempool " , " stored orphan tx %s (mapsz % " PRIszu " ) \n " , hash . ToString ( ) . c_str ( ) ,
mapOrphanTransactions . size ( ) ) ;
return true ;
}
@ -668,7 +668,7 @@ int CMerkleTx::SetMerkleBranch(const CBlock* pblock)
{
vMerkleBranch . clear ( ) ;
nIndex = - 1 ;
p rintf( " ERROR: SetMerkleBranch() : couldn't find tx in block \n " ) ;
LogP rintf( " ERROR: SetMerkleBranch() : couldn't find tx in block \n " ) ;
return 0 ;
}
@ -917,7 +917,7 @@ bool CTxMemPool::accept(CValidationState &state, const CTransaction &tx, bool fL
if ( dFreeCount > = GetArg ( " -limitfreerelay " , 15 ) * 10 * 1000 )
return error ( " CTxMemPool::accept() : free transaction rejected by rate limiter " ) ;
if ( fDebug )
printf ( " Rate limit dFreeCount: %g => %g \n " , dFreeCount , dFreeCount + nSize ) ;
LogPrint ( " mempool " , " Rate limit dFreeCount: %g => %g \n " , dFreeCount , dFreeCount + nSize ) ;
dFreeCount + = nSize ;
}
@ -934,7 +934,7 @@ bool CTxMemPool::accept(CValidationState &state, const CTransaction &tx, bool fL
LOCK ( cs ) ;
if ( ptxOld )
{
printf ( " CTxMemPool::accept() : replacing tx %s with new version \n " , ptxOld - > GetHash ( ) . ToString ( ) . c_str ( ) ) ;
LogPrint ( " mempool " , " CTxMemPool::accept() : replacing tx %s with new version \n " , ptxOld - > GetHash ( ) . ToString ( ) . c_str ( ) ) ;
remove ( * ptxOld ) ;
}
addUnchecked ( hash , tx ) ;
@ -946,7 +946,7 @@ bool CTxMemPool::accept(CValidationState &state, const CTransaction &tx, bool fL
EraseFromWallets ( ptxOld - > GetHash ( ) ) ;
SyncWithWallets ( hash , tx , NULL , true ) ;
printf ( " CTxMemPool::accept() : accepted %s (poolsz % " PRIszu " ) \n " ,
LogPrint ( " mempool " , " CTxMemPool::accept() : accepted %s (poolsz % " PRIszu " ) \n " ,
hash . ToString ( ) . c_str ( ) ,
mapTx . size ( ) ) ;
return true ;
@ -1021,7 +1021,7 @@ void CTxMemPool::check(CCoinsViewCache *pcoins) const
if ( ! fChecks )
return ;
p rintf( " Checking mempool with %u transactions and %u inputs \n " , ( unsigned int ) mapTx . size ( ) , ( unsigned int ) mapNextTx . size ( ) ) ;
LogP rintf( " Checking mempool with %u transactions and %u inputs \n " , ( unsigned int ) mapTx . size ( ) , ( unsigned int ) mapNextTx . size ( ) ) ;
LOCK ( cs ) ;
for ( std : : map < uint256 , CTransaction > : : const_iterator it = mapTx . begin ( ) ; it ! = mapTx . end ( ) ; it + + ) {
@ -1354,7 +1354,7 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
// Limit adjustment step
int64 nActualTimespan = pindexLast - > GetBlockTime ( ) - pindexFirst - > GetBlockTime ( ) ;
p rintf( " nActualTimespan = % " PRI64d " before bounds \n " , nActualTimespan ) ;
LogP rintf( " nActualTimespan = % " PRI64d " before bounds \n " , nActualTimespan ) ;
if ( nActualTimespan < nTargetTimespan / 4 )
nActualTimespan = nTargetTimespan / 4 ;
if ( nActualTimespan > nTargetTimespan * 4 )
@ -1370,10 +1370,10 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
bnNew = Params ( ) . ProofOfWorkLimit ( ) ;
/// debug print
p rintf( " GetNextWorkRequired RETARGET \n " ) ;
p rintf( " nTargetTimespan = % " PRI64d " nActualTimespan = % " PRI64d " \n " , nTargetTimespan , nActualTimespan ) ;
p rintf( " Before: %08x %s \n " , pindexLast - > nBits , CBigNum ( ) . SetCompact ( pindexLast - > nBits ) . getuint256 ( ) . ToString ( ) . c_str ( ) ) ;
p rintf( " After: %08x %s \n " , bnNew . GetCompact ( ) , bnNew . getuint256 ( ) . ToString ( ) . c_str ( ) ) ;
LogP rintf( " GetNextWorkRequired RETARGET \n " ) ;
LogP rintf( " nTargetTimespan = % " PRI64d " nActualTimespan = % " PRI64d " \n " , nTargetTimespan , nActualTimespan ) ;
LogP rintf( " Before: %08x %s \n " , pindexLast - > nBits , CBigNum ( ) . SetCompact ( pindexLast - > nBits ) . getuint256 ( ) . ToString ( ) . c_str ( ) ) ;
LogP rintf( " After: %08x %s \n " , bnNew . GetCompact ( ) , bnNew . getuint256 ( ) . ToString ( ) . c_str ( ) ) ;
return bnNew . GetCompact ( ) ;
}
@ -1446,14 +1446,14 @@ void CheckForkWarningConditions()
}
if ( pindexBestForkTip )
{
p rintf( " CheckForkWarningConditions: Warning: Large valid fork found \n forking the chain at height %d (%s) \n lasting to height %d (%s). \n Chain state database corruption likely. \n " ,
LogP rintf( " CheckForkWarningConditions: Warning: Large valid fork found \n forking the chain at height %d (%s) \n lasting to height %d (%s). \n Chain state database corruption likely. \n " ,
pindexBestForkBase - > nHeight , pindexBestForkBase - > phashBlock - > ToString ( ) . c_str ( ) ,
pindexBestForkTip - > nHeight , pindexBestForkTip - > phashBlock - > ToString ( ) . c_str ( ) ) ;
fLargeWorkForkFound = true ;
}
else
{
p rintf( " CheckForkWarningConditions: Warning: Found invalid chain at least ~6 blocks longer than our best chain. \n Chain state database corruption likely. \n " ) ;
LogP rintf( " CheckForkWarningConditions: Warning: Found invalid chain at least ~6 blocks longer than our best chain. \n Chain state database corruption likely. \n " ) ;
fLargeWorkInvalidChainFound = true ;
}
}
@ -1504,11 +1504,11 @@ void static InvalidChainFound(CBlockIndex* pindexNew)
pblocktree - > WriteBestInvalidWork ( CBigNum ( nBestInvalidWork ) ) ;
uiInterface . NotifyBlocksChanged ( ) ;
}
p rintf( " InvalidChainFound: invalid block=%s height=%d log2_work=%.8g date=%s \n " ,
LogP rintf( " InvalidChainFound: invalid block=%s height=%d log2_work=%.8g date=%s \n " ,
pindexNew - > GetBlockHash ( ) . ToString ( ) . c_str ( ) , pindexNew - > nHeight ,
log ( pindexNew - > nChainWork . getdouble ( ) ) / log ( 2.0 ) , DateTimeStrFormat ( " %Y-%m-%d %H:%M:%S " ,
pindexNew - > GetBlockTime ( ) ) . c_str ( ) ) ;
p rintf( " InvalidChainFound: current best=%s height=%d log2_work=%.8g date=%s \n " ,
LogP rintf( " InvalidChainFound: current best=%s height=%d log2_work=%.8g date=%s \n " ,
hashBestChain . ToString ( ) . c_str ( ) , nBestHeight , log ( nBestChainWork . getdouble ( ) ) / log ( 2.0 ) ,
DateTimeStrFormat ( " %Y-%m-%d %H:%M:%S " , pindexBest - > GetBlockTime ( ) ) . c_str ( ) ) ;
CheckForkWarningConditions ( ) ;
@ -1967,7 +1967,7 @@ bool ConnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex, C
}
int64 nTime = GetTimeMicros ( ) - nStart ;
if ( fBenchmark )
p rintf( " - Connect %u transactions: %.2fms (%.3fms/tx, %.3fms/txin) \n " , ( unsigned ) block . vtx . size ( ) , 0.001 * nTime , 0.001 * nTime / block . vtx . size ( ) , nInputs < = 1 ? 0 : 0.001 * nTime / ( nInputs - 1 ) ) ;
LogP rintf( " - Connect %u transactions: %.2fms (%.3fms/tx, %.3fms/txin) \n " , ( unsigned ) block . vtx . size ( ) , 0.001 * nTime , 0.001 * nTime / block . vtx . size ( ) , nInputs < = 1 ? 0 : 0.001 * nTime / ( nInputs - 1 ) ) ;
if ( GetValueOut ( block . vtx [ 0 ] ) > GetBlockValue ( pindex - > nHeight , nFees ) )
return state . DoS ( 100 , error ( " ConnectBlock() : coinbase pays too much (actual=% " PRI64d " vs limit=% " PRI64d " ) " , GetValueOut ( block . vtx [ 0 ] ) , GetBlockValue ( pindex - > nHeight , nFees ) ) ) ;
@ -1976,7 +1976,7 @@ bool ConnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex, C
return state . DoS ( 100 , false ) ;
int64 nTime2 = GetTimeMicros ( ) - nStart ;
if ( fBenchmark )
p rintf( " - Verify %u txins: %.2fms (%.3fms/txin) \n " , nInputs - 1 , 0.001 * nTime2 , nInputs < = 1 ? 0 : 0.001 * nTime2 / ( nInputs - 1 ) ) ;
LogP rintf( " - Verify %u txins: %.2fms (%.3fms/txin) \n " , nInputs - 1 , 0.001 * nTime2 , nInputs < = 1 ? 0 : 0.001 * nTime2 / ( nInputs - 1 ) ) ;
if ( fJustCheck )
return true ;
@ -2052,8 +2052,8 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
reverse ( vConnect . begin ( ) , vConnect . end ( ) ) ;
if ( vDisconnect . size ( ) > 0 ) {
p rintf( " REORGANIZE: Disconnect % " PRIszu " blocks; %s... \n " , vDisconnect . size ( ) , pfork - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
p rintf( " REORGANIZE: Connect % " PRIszu " blocks; ...%s \n " , vConnect . size ( ) , pindexNew - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
LogP rintf( " REORGANIZE: Disconnect % " PRIszu " blocks; %s... \n " , vDisconnect . size ( ) , pfork - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
LogP rintf( " REORGANIZE: Connect % " PRIszu " blocks; ...%s \n " , vConnect . size ( ) , pindexNew - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
}
// Disconnect shorter branch
@ -2066,7 +2066,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
if ( ! DisconnectBlock ( block , state , pindex , view ) )
return error ( " SetBestBlock() : DisconnectBlock % s failed " , pindex->GetBlockHash().ToString().c_str()) ;
if ( fBenchmark )
p rintf( " - Disconnect: %.2fms \n " , ( GetTimeMicros ( ) - nStart ) * 0.001 ) ;
LogP rintf( " - Disconnect: %.2fms \n " , ( GetTimeMicros ( ) - nStart ) * 0.001 ) ;
// Queue memory transactions to resurrect.
// We only do this for blocks after the last checkpoint (reorganisation before that
@ -2091,7 +2091,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
return error ( " SetBestBlock() : ConnectBlock % s failed " , pindex->GetBlockHash().ToString().c_str()) ;
}
if ( fBenchmark )
p rintf( " - Connect: %.2fms \n " , ( GetTimeMicros ( ) - nStart ) * 0.001 ) ;
LogP rintf( " - Connect: %.2fms \n " , ( GetTimeMicros ( ) - nStart ) * 0.001 ) ;
// Queue memory transactions to delete
BOOST_FOREACH ( const CTransaction & tx , block . vtx )
@ -2104,7 +2104,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
assert ( view . Flush ( ) ) ;
int64 nTime = GetTimeMicros ( ) - nStart ;
if ( fBenchmark )
p rintf( " - Flush %i transactions: %.2fms (%.4fms/tx) \n " , nModified , 0.001 * nTime , 0.001 * nTime / nModified ) ;
LogP rintf( " - Flush %i transactions: %.2fms (%.4fms/tx) \n " , nModified , 0.001 * nTime , 0.001 * nTime / nModified ) ;
// Make sure it's successfully written to disk before changing memory structure
bool fIsInitialDownload = IsInitialBlockDownload ( ) ;
@ -2161,7 +2161,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
nBestChainWork = pindexNew - > nChainWork ;
nTimeBestReceived = GetTime ( ) ;
nTransactionsUpdated + + ;
p rintf( " SetBestChain: new best=%s height=%d log2_work=%.8g tx=%lu date=%s progress=%f \n " ,
LogP rintf( " SetBestChain: new best=%s height=%d log2_work=%.8g tx=%lu date=%s progress=%f \n " ,
hashBestChain . ToString ( ) . c_str ( ) , nBestHeight , log ( nBestChainWork . getdouble ( ) ) / log ( 2.0 ) , ( unsigned long ) pindexNew - > nChainTx ,
DateTimeStrFormat ( " %Y-%m-%d %H:%M:%S " , pindexBest - > GetBlockTime ( ) ) . c_str ( ) ,
Checkpoints : : GuessVerificationProgress ( pindexBest ) ) ;
@ -2178,7 +2178,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
pindex = pindex - > pprev ;
}
if ( nUpgraded > 0 )
p rintf( " SetBestChain: %d of last 100 blocks above version %d \n " , nUpgraded , CBlock : : CURRENT_VERSION ) ;
LogP rintf( " SetBestChain: %d of last 100 blocks above version %d \n " , nUpgraded , CBlock : : CURRENT_VERSION ) ;
if ( nUpgraded > 100 / 2 )
// strMiscWarning is read by GetWarnings(), called by Qt and the JSON-RPC code to warn the user:
strMiscWarning = _ ( " Warning: This version is obsolete, upgrade required! " ) ;
@ -2264,7 +2264,7 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
}
} else {
while ( infoLastBlockFile . nSize + nAddSize > = MAX_BLOCKFILE_SIZE ) {
p rintf( " Leaving block file %i: %s \n " , nLastBlockFile , infoLastBlockFile . ToString ( ) . c_str ( ) ) ;
LogP rintf( " Leaving block file %i: %s \n " , nLastBlockFile , infoLastBlockFile . ToString ( ) . c_str ( ) ) ;
FlushBlockFile ( true ) ;
nLastBlockFile + + ;
infoLastBlockFile . SetNull ( ) ;
@ -2285,7 +2285,7 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
if ( CheckDiskSpace ( nNewChunks * BLOCKFILE_CHUNK_SIZE - pos . nPos ) ) {
FILE * file = OpenBlockFile ( pos ) ;
if ( file ) {
p rintf( " Pre-allocating up to position 0x%x in blk%05u.dat \n " , nNewChunks * BLOCKFILE_CHUNK_SIZE , pos . nFile ) ;
LogP rintf( " Pre-allocating up to position 0x%x in blk%05u.dat \n " , nNewChunks * BLOCKFILE_CHUNK_SIZE , pos . nFile ) ;
AllocateFileRange ( file , pos . nPos , nNewChunks * BLOCKFILE_CHUNK_SIZE - pos . nPos ) ;
fclose ( file ) ;
}
@ -2331,7 +2331,7 @@ bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, unsigne
if ( CheckDiskSpace ( nNewChunks * UNDOFILE_CHUNK_SIZE - pos . nPos ) ) {
FILE * file = OpenUndoFile ( pos ) ;
if ( file ) {
p rintf( " Pre-allocating up to position 0x%x in rev%05u.dat \n " , nNewChunks * UNDOFILE_CHUNK_SIZE , pos . nFile ) ;
LogP rintf( " Pre-allocating up to position 0x%x in rev%05u.dat \n " , nNewChunks * UNDOFILE_CHUNK_SIZE , pos . nFile ) ;
AllocateFileRange ( file , pos . nPos , nNewChunks * UNDOFILE_CHUNK_SIZE - pos . nPos ) ;
fclose ( file ) ;
}
@ -2549,7 +2549,7 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl
// If we don't already have its previous block, shunt it off to holding area until we get it
if ( pblock - > hashPrevBlock ! = 0 & & ! mapBlockIndex . count ( pblock - > hashPrevBlock ) )
{
p rintf( " ProcessBlock: ORPHAN BLOCK, prev=%s \n " , pblock - > hashPrevBlock . ToString ( ) . c_str ( ) ) ;
LogP rintf( " ProcessBlock: ORPHAN BLOCK, prev=%s \n " , pblock - > hashPrevBlock . ToString ( ) . c_str ( ) ) ;
// Accept orphans as long as there is a node to request its parents from
if ( pfrom ) {
@ -2588,7 +2588,7 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl
mapOrphanBlocksByPrev . erase ( hashPrev ) ;
}
p rintf( " ProcessBlock: ACCEPTED \n " ) ;
LogP rintf( " ProcessBlock: ACCEPTED \n " ) ;
return true ;
}
@ -2754,7 +2754,7 @@ uint256 CPartialMerkleTree::ExtractMatches(std::vector<uint256> &vMatch) {
bool AbortNode ( const std : : string & strMessage ) {
strMiscWarning = strMessage ;
p rintf( " *** %s \n " , strMessage . c_str ( ) ) ;
LogP rintf( " *** %s \n " , strMessage . c_str ( ) ) ;
uiInterface . ThreadSafeMessageBox ( strMessage , " " , CClientUIInterface : : MSG_ERROR ) ;
StartShutdown ( ) ;
return false ;
@ -2785,12 +2785,12 @@ FILE* OpenDiskFile(const CDiskBlockPos &pos, const char *prefix, bool fReadOnly)
if ( ! file & & ! fReadOnly )
file = fopen ( path . string ( ) . c_str ( ) , " wb+ " ) ;
if ( ! file ) {
p rintf( " Unable to open file %s \n " , path . string ( ) . c_str ( ) ) ;
LogP rintf( " Unable to open file %s \n " , path . string ( ) . c_str ( ) ) ;
return NULL ;
}
if ( pos . nPos ) {
if ( fseek ( file , pos . nPos , SEEK_SET ) ) {
p rintf( " Unable to seek to position %u of %s \n " , pos . nPos , path . string ( ) . c_str ( ) ) ;
LogP rintf( " Unable to seek to position %u of %s \n " , pos . nPos , path . string ( ) . c_str ( ) ) ;
fclose ( file ) ;
return NULL ;
}
@ -2853,9 +2853,9 @@ bool static LoadBlockIndexDB()
// Load block file info
pblocktree - > ReadLastBlockFile ( nLastBlockFile ) ;
p rintf( " LoadBlockIndexDB(): last block file = %i \n " , nLastBlockFile ) ;
LogP rintf( " LoadBlockIndexDB(): last block file = %i \n " , nLastBlockFile ) ;
if ( pblocktree - > ReadBlockFileInfo ( nLastBlockFile , infoLastBlockFile ) )
p rintf( " LoadBlockIndexDB(): last block file info: %s \n " , infoLastBlockFile . ToString ( ) . c_str ( ) ) ;
LogP rintf( " LoadBlockIndexDB(): last block file info: %s \n " , infoLastBlockFile . ToString ( ) . c_str ( ) ) ;
// Load nBestInvalidWork, OK if it doesn't exist
CBigNum bnBestInvalidWork ;
@ -2869,7 +2869,7 @@ bool static LoadBlockIndexDB()
// Check whether we have a transaction index
pblocktree - > ReadFlag ( " txindex " , fTxIndex ) ;
p rintf( " LoadBlockIndexDB(): transaction index %s \n " , fTxIndex ? " enabled " : " disabled " ) ;
LogP rintf( " LoadBlockIndexDB(): transaction index %s \n " , fTxIndex ? " enabled " : " disabled " ) ;
// Load hashBestChain pointer to end of best chain
pindexBest = pcoinsTip - > GetBestBlock ( ) ;
@ -2886,7 +2886,7 @@ bool static LoadBlockIndexDB()
vBlockIndexByHeight [ pindex - > nHeight ] = pindex ;
pindex = pindex - > pprev ;
}
p rintf( " LoadBlockIndexDB(): hashBestChain=%s height=%d date=%s \n " ,
LogP rintf( " LoadBlockIndexDB(): hashBestChain=%s height=%d date=%s \n " ,
hashBestChain . ToString ( ) . c_str ( ) , nBestHeight ,
DateTimeStrFormat ( " %Y-%m-%d %H:%M:%S " , pindexBest - > GetBlockTime ( ) ) . c_str ( ) ) ;
@ -2904,7 +2904,7 @@ bool VerifyDB(int nCheckLevel, int nCheckDepth)
if ( nCheckDepth > nBestHeight )
nCheckDepth = nBestHeight ;
nCheckLevel = std : : max ( 0 , std : : min ( 4 , nCheckLevel ) ) ;
p rintf( " Verifying last %i blocks at level %i \n " , nCheckDepth , nCheckLevel ) ;
LogP rintf( " Verifying last %i blocks at level %i \n " , nCheckDepth , nCheckLevel ) ;
CCoinsViewCache coins ( * pcoinsTip , true ) ;
CBlockIndex * pindexState = pindexBest ;
CBlockIndex * pindexFailure = NULL ;
@ -2961,7 +2961,7 @@ bool VerifyDB(int nCheckLevel, int nCheckDepth)
}
}
p rintf( " No coin database inconsistencies in last %i blocks (%i transactions) \n " , pindexBest - > nHeight - pindexState - > nHeight , nGoodTransactions ) ;
LogP rintf( " No coin database inconsistencies in last %i blocks (%i transactions) \n " , pindexBest - > nHeight - pindexState - > nHeight , nGoodTransactions ) ;
return true ;
}
@ -2995,7 +2995,7 @@ bool InitBlockIndex() {
// Use the provided setting for -txindex in the new database
fTxIndex = GetBoolArg ( " -txindex " , false ) ;
pblocktree - > WriteFlag ( " txindex " , fTxIndex ) ;
p rintf( " Initializing databases... \n " ) ;
LogP rintf( " Initializing databases... \n " ) ;
// Only add the genesis block if not reindexing (in which case we reuse the one already on disk)
if ( ! fReindex ) {
@ -3048,25 +3048,25 @@ void PrintBlockTree()
if ( nCol > nPrevCol )
{
for ( int i = 0 ; i < nCol - 1 ; i + + )
p rintf( " | " ) ;
p rintf( " | \\ \n " ) ;
LogP rintf( " | " ) ;
LogP rintf( " | \\ \n " ) ;
}
else if ( nCol < nPrevCol )
{
for ( int i = 0 ; i < nCol ; i + + )
p rintf( " | " ) ;
p rintf( " | \n " ) ;
LogP rintf( " | " ) ;
LogP rintf( " | \n " ) ;
}
nPrevCol = nCol ;
// print columns
for ( int i = 0 ; i < nCol ; i + + )
p rintf( " | " ) ;
LogP rintf( " | " ) ;
// print item
CBlock block ;
ReadBlockFromDisk ( block , pindex ) ;
p rintf( " %d (blk%05u.dat:0x%x) %s tx % " PRIszu " " ,
LogP rintf( " %d (blk%05u.dat:0x%x) %s tx % " PRIszu " " ,
pindex - > nHeight ,
pindex - > GetBlockPos ( ) . nFile , pindex - > GetBlockPos ( ) . nPos ,
DateTimeStrFormat ( " %Y-%m-%d %H:%M:%S " , block . GetBlockTime ( ) ) . c_str ( ) ,
@ -3151,7 +3151,7 @@ bool LoadExternalBlockFile(FILE* fileIn, CDiskBlockPos *dbp)
break ;
}
} catch ( std : : exception & e ) {
p rintf( " %s() : Deserialize or I/O error caught during load \n " , __PRETTY_FUNCTION__ ) ;
LogP rintf( " %s() : Deserialize or I/O error caught during load \n " , __PRETTY_FUNCTION__ ) ;
}
}
fclose ( fileIn ) ;
@ -3159,7 +3159,7 @@ bool LoadExternalBlockFile(FILE* fileIn, CDiskBlockPos *dbp)
AbortNode ( _ ( " Error: system error: " ) + e . what ( ) ) ;
}
if ( nLoaded > 0 )
p rintf( " Loaded %i blocks from external file in % " PRI64d " ms \n " , nLoaded , GetTimeMillis ( ) - nStart ) ;
LogP rintf( " Loaded %i blocks from external file in % " PRI64d " ms \n " , nLoaded , GetTimeMillis ( ) - nStart ) ;
return nLoaded > 0 ;
}
@ -3381,11 +3381,10 @@ void static ProcessGetData(CNode* pfrom)
bool static ProcessMessage ( CNode * pfrom , string strCommand , CDataStream & vRecv )
{
RandAddSeedPerfmon ( ) ;
if ( fDebug )
printf ( " received: %s (% " PRIszu " bytes) \n " , strCommand . c_str ( ) , vRecv . size ( ) ) ;
LogPrint ( " net " , " received: %s (% " PRIszu " bytes) \n " , strCommand . c_str ( ) , vRecv . size ( ) ) ;
if ( mapArgs . count ( " -dropmessagestest " ) & & GetRand ( atoi ( mapArgs [ " -dropmessagestest " ] ) ) = = 0 )
{
p rintf( " dropmessagestest DROPPING RECV MESSAGE \n " ) ;
LogP rintf( " dropmessagestest DROPPING RECV MESSAGE \n " ) ;
return true ;
}
@ -3411,7 +3410,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
{
// Since February 20, 2012, the protocol is initiated at version 209,
// and earlier versions are no longer supported
p rintf( " partner %s using obsolete version %i; disconnecting \n " , pfrom - > addr . ToString ( ) . c_str ( ) , pfrom - > nVersion ) ;
LogP rintf( " partner %s using obsolete version %i; disconnecting \n " , pfrom - > addr . ToString ( ) . c_str ( ) , pfrom - > nVersion ) ;
pfrom - > fDisconnect = true ;
return false ;
}
@ -3438,7 +3437,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
// Disconnect if we connected to ourself
if ( nNonce = = nLocalHostNonce & & nNonce > 1 )
{
p rintf( " connected to self at %s, disconnecting \n " , pfrom - > addr . ToString ( ) . c_str ( ) ) ;
LogP rintf( " connected to self at %s, disconnecting \n " , pfrom - > addr . ToString ( ) . c_str ( ) ) ;
pfrom - > fDisconnect = true ;
return true ;
}
@ -3489,7 +3488,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
pfrom - > fSuccessfullyConnected = true ;
p rintf( " receive version message: version %d, blocks=%d, us=%s, them=%s, peer=%s \n " , pfrom - > nVersion , pfrom - > nStartingHeight , addrMe . ToString ( ) . c_str ( ) , addrFrom . ToString ( ) . c_str ( ) , pfrom - > addr . ToString ( ) . c_str ( ) ) ;
LogP rintf( " receive version message: version %d, blocks=%d, us=%s, them=%s, peer=%s \n " , pfrom - > nVersion , pfrom - > nStartingHeight , addrMe . ToString ( ) . c_str ( ) , addrFrom . ToString ( ) . c_str ( ) , pfrom - > addr . ToString ( ) . c_str ( ) ) ;
cPeerBlockCounts . input ( pfrom - > nStartingHeight ) ;
}
@ -3602,8 +3601,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
pfrom - > AddInventoryKnown ( inv ) ;
bool fAlreadyHave = AlreadyHave ( inv ) ;
if ( fDebug )
printf ( " got inventory: %s %s \n " , inv . ToString ( ) . c_str ( ) , fAlreadyHave ? " have " : " new " ) ;
LogPrint ( " net " , " got inventory: %s %s \n " , inv . ToString ( ) . c_str ( ) , fAlreadyHave ? " have " : " new " ) ;
if ( ! fAlreadyHave ) {
if ( ! fImporting & & ! fReindex )
@ -3616,7 +3614,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
// this situation and push another getblocks to continue.
PushGetBlocks ( pfrom , mapBlockIndex [ inv . hash ] , uint256 ( 0 ) ) ;
if ( fDebug )
p rintf( " force request: %s \n " , inv . ToString ( ) . c_str ( ) ) ;
LogP rintf( " force request: %s \n " , inv . ToString ( ) . c_str ( ) ) ;
}
// Track requests for our stuff
@ -3636,10 +3634,10 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
}
if ( fDebugNet | | ( vInv . size ( ) ! = 1 ) )
printf ( " received getdata (% " PRIszu " invsz) \n " , vInv . size ( ) ) ;
LogPrint ( " net " , " received getdata (% " PRIszu " invsz) \n " , vInv . size ( ) ) ;
if ( ( fDebugNet & & vInv . size ( ) > 0 ) | | ( vInv . size ( ) = = 1 ) )
printf ( " received getdata for: %s \n " , vInv [ 0 ] . ToString ( ) . c_str ( ) ) ;
LogPrint ( " net " , " received getdata for: %s \n " , vInv [ 0 ] . ToString ( ) . c_str ( ) ) ;
pfrom - > vRecvGetData . insert ( pfrom - > vRecvGetData . end ( ) , vInv . begin ( ) , vInv . end ( ) ) ;
ProcessGetData ( pfrom ) ;
@ -3659,12 +3657,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
if ( pindex )
pindex = pindex - > GetNextInMainChain ( ) ;
int nLimit = 500 ;
printf ( " getblocks %d to %s limit %d \n " , ( pindex ? pindex - > nHeight : - 1 ) , hashStop . ToString ( ) . c_str ( ) , nLimit ) ;
LogPrint ( " net " , " getblocks %d to %s limit %d \n " , ( pindex ? pindex - > nHeight : - 1 ) , hashStop . ToString ( ) . c_str ( ) , nLimit ) ;
for ( ; pindex ; pindex = pindex - > GetNextInMainChain ( ) )
{
if ( pindex - > GetBlockHash ( ) = = hashStop )
{
printf ( " getblocks stopping at %d %s \n " , pindex - > nHeight , pindex - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
LogPrint ( " net " , " getblocks stopping at %d %s \n " , pindex - > nHeight , pindex - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
break ;
}
pfrom - > PushInventory ( CInv ( MSG_BLOCK , pindex - > GetBlockHash ( ) ) ) ;
@ -3672,7 +3670,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
{
// When this block is requested, we'll send an inv that'll make them
// getblocks the next batch of inventory.
printf ( " getblocks stopping at limit %d %s \n " , pindex - > nHeight , pindex - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
LogPrint ( " net " , " getblocks stopping at limit %d %s \n " , pindex - > nHeight , pindex - > GetBlockHash ( ) . ToString ( ) . c_str ( ) ) ;
pfrom - > hashContinue = pindex - > GetBlockHash ( ) ;
break ;
}
@ -3706,7 +3704,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
// we must use CBlocks, as CBlockHeaders won't include the 0x00 nTx count at the end
vector < CBlock > vHeaders ;
int nLimit = 2000 ;
printf ( " getheaders %d to %s \n " , ( pindex ? pindex - > nHeight : - 1 ) , hashStop . ToString ( ) . c_str ( ) ) ;
LogPrint ( " net " , " getheaders %d to %s \n " , ( pindex ? pindex - > nHeight : - 1 ) , hashStop . ToString ( ) . c_str ( ) ) ;
for ( ; pindex ; pindex = pindex - > GetNextInMainChain ( ) )
{
vHeaders . push_back ( pindex - > GetBlockHeader ( ) ) ;
@ -3756,7 +3754,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
if ( mempool . accept ( stateDummy , orphanTx , true , & fMissingInputs2 ) )
{
printf ( " accepted orphan tx %s \n " , orphanHash . ToString ( ) . c_str ( ) ) ;
LogPrint ( " mempool " , " accepted orphan tx %s \n " , orphanHash . ToString ( ) . c_str ( ) ) ;
RelayTransaction ( orphanTx , orphanHash ) ;
mapAlreadyAskedFor . erase ( CInv ( MSG_TX , orphanHash ) ) ;
vWorkQueue . push_back ( orphanHash ) ;
@ -3766,7 +3764,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
{
// invalid or too-little-fee orphan
vEraseQueue . push_back ( orphanHash ) ;
printf ( " removed orphan tx %s \n " , orphanHash . ToString ( ) . c_str ( ) ) ;
LogPrint ( " mempool " , " removed orphan tx %s \n " , orphanHash . ToString ( ) . c_str ( ) ) ;
}
mempool . check ( pcoinsTip ) ;
}
@ -3782,7 +3780,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
// DoS prevention: do not allow mapOrphanTransactions to grow unbounded
unsigned int nEvicted = LimitOrphanTxSize ( MAX_ORPHAN_TRANSACTIONS ) ;
if ( nEvicted > 0 )
printf ( " mapOrphan overflow, removed %u tx \n " , nEvicted ) ;
LogPrint ( " mempool " , " mapOrphan overflow, removed %u tx \n " , nEvicted ) ;
}
int nDoS ;
if ( state . IsInvalid ( nDoS ) )
@ -3795,7 +3793,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
CBlock block ;
vRecv > > block ;
printf ( " received block %s \n " , block . GetHash ( ) . ToString ( ) . c_str ( ) ) ;
LogPrint ( " net " , " received block %s \n " , block . GetHash ( ) . ToString ( ) . c_str ( ) ) ;
// block.print();
CInv inv ( MSG_BLOCK , block . GetHash ( ) ) ;
@ -3958,7 +3956,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
bool ProcessMessages ( CNode * pfrom )
{
//if (fDebug)
// p rintf("ProcessMessages(%zu messages)\n", pfrom->vRecvMsg.size());
// LogP rintf("ProcessMessages(%zu messages)\n", pfrom->vRecvMsg.size());
//
// Message format
@ -3983,7 +3981,7 @@ bool ProcessMessages(CNode* pfrom)
CNetMessage & msg = * it ;
//if (fDebug)
// p rintf("ProcessMessages(message %u msgsz, %zu bytes, complete:%s)\n",
// LogP rintf("ProcessMessages(message %u msgsz, %zu bytes, complete:%s)\n",
// msg.hdr.nMessageSize, msg.vRecv.size(),
// msg.complete() ? "Y" : "N");
@ -3996,7 +3994,7 @@ bool ProcessMessages(CNode* pfrom)
// Scan for message start
if ( memcmp ( msg . hdr . pchMessageStart , Params ( ) . MessageStart ( ) , MESSAGE_START_SIZE ) ! = 0 ) {
p rintf( " \n \n PROCESSMESSAGE: INVALID MESSAGESTART \n \n " ) ;
LogP rintf( " \n \n PROCESSMESSAGE: INVALID MESSAGESTART \n \n " ) ;
fOk = false ;
break ;
}
@ -4005,7 +4003,7 @@ bool ProcessMessages(CNode* pfrom)
CMessageHeader & hdr = msg . hdr ;
if ( ! hdr . IsValid ( ) )
{
p rintf( " \n \n PROCESSMESSAGE: ERRORS IN HEADER %s \n \n \n " , hdr . GetCommand ( ) . c_str ( ) ) ;
LogP rintf( " \n \n PROCESSMESSAGE: ERRORS IN HEADER %s \n \n \n " , hdr . GetCommand ( ) . c_str ( ) ) ;
continue ;
}
string strCommand = hdr . GetCommand ( ) ;
@ -4020,7 +4018,7 @@ bool ProcessMessages(CNode* pfrom)
memcpy ( & nChecksum , & hash , sizeof ( nChecksum ) ) ;
if ( nChecksum ! = hdr . nChecksum )
{
p rintf( " ProcessMessages(%s, %u bytes) : CHECKSUM ERROR nChecksum=%08x hdr.nChecksum=%08x \n " ,
LogP rintf( " ProcessMessages(%s, %u bytes) : CHECKSUM ERROR nChecksum=%08x hdr.nChecksum=%08x \n " ,
strCommand . c_str ( ) , nMessageSize , nChecksum , hdr . nChecksum ) ;
continue ;
}
@ -4040,12 +4038,12 @@ bool ProcessMessages(CNode* pfrom)
if ( strstr ( e . what ( ) , " end of data " ) )
{
// Allow exceptions from under-length message on vRecv
p rintf( " ProcessMessages(%s, %u bytes) : Exception '%s' caught, normally caused by a message being shorter than its stated length \n " , strCommand . c_str ( ) , nMessageSize , e . what ( ) ) ;
LogP rintf( " ProcessMessages(%s, %u bytes) : Exception '%s' caught, normally caused by a message being shorter than its stated length \n " , strCommand . c_str ( ) , nMessageSize , e . what ( ) ) ;
}
else if ( strstr ( e . what ( ) , " size too large " ) )
{
// Allow exceptions from over-long size
p rintf( " ProcessMessages(%s, %u bytes) : Exception '%s' caught \n " , strCommand . c_str ( ) , nMessageSize , e . what ( ) ) ;
LogP rintf( " ProcessMessages(%s, %u bytes) : Exception '%s' caught \n " , strCommand . c_str ( ) , nMessageSize , e . what ( ) ) ;
}
else
{
@ -4062,7 +4060,7 @@ bool ProcessMessages(CNode* pfrom)
}
if ( ! fRet )
p rintf( " ProcessMessage(%s, %u bytes) FAILED \n " , strCommand . c_str ( ) , nMessageSize ) ;
LogP rintf( " ProcessMessage(%s, %u bytes) FAILED \n " , strCommand . c_str ( ) , nMessageSize ) ;
}
// In case the connection got shut down, its receive buffer was wiped
@ -4225,7 +4223,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
if ( ! AlreadyHave ( inv ) )
{
if ( fDebugNet )
printf ( " sending getdata: %s \n " , inv . ToString ( ) . c_str ( ) ) ;
LogPrint ( " net " , " sending getdata: %s \n " , inv . ToString ( ) . c_str ( ) ) ;
vGetData . push_back ( inv ) ;
if ( vGetData . size ( ) > = 1000 )
{