It was the Bitcointalk forum that inspired us to create Bitcointalksearch.org - Bitcointalk is an excellent site that should be the default page for anybody dealing in cryptocurrency, since it is a virtual gold-mine of data. However, our experience and user feedback led us create our site; Bitcointalk's search is slow, and difficult to get the results you need, because you need to log in first to find anything useful - furthermore, there are rate limiters for their search functionality.
The aim of our project is to create a faster website that yields more results and faster without having to create an account and eliminate the need to log in - your personal data, therefore, will never be in jeopardy since we are not asking for any of your data and you don't need to provide them to use our site with all of its capabilities.
We created this website with the sole purpose of users being able to search quickly and efficiently in the field of cryptocurrency so they will have access to the latest and most accurate information and thereby assisting the crypto-community at large.
939dcde51e97c46c941d37e9d1ee6bf44ec8926cec06644ee3747cf569aad866 ::: FORK PARENT
00015447f0e3ed43cde551a1376a603fc9e3ccc5fa2012b929e4d226b09fadd9 ::: PARENT'S CHILD
00015447f0e3ed43cde551a1376a603fc9e3ccc5fa2012b929e4d226b09fadd9 ::: FORK PARENT
00020e31868a07588f4309a04f8ca5eb746e6f779484dd557d543d7f01e94bf2 ::: PARENT'S CHILD
00020e31868a07588f4309a04f8ca5eb746e6f779484dd557d543d7f01e94bf2 ::: FORK PARENT
00023efcf3ce63796d0f6828b8b377be3c571317978e968544ad5cae32330561 ::: PARENT'S CHILD
00023efcf3ce63796d0f6828b8b377be3c571317978e968544ad5cae32330561 ::: FORK PARENT
7a9769b4dd509866bf9e555a2a576f9003b112f7dee069e85100419f4e5b8cd4 ::: PARENT'S CHILD
7a9769b4dd509866bf9e555a2a576f9003b112f7dee069e85100419f4e5b8cd4 ::: FORK PARENT
000234830426a93c976e903e243fabf448cd52d3a56f0626e0594c28f5738a06 ::: PARENT'S CHILD
000234830426a93c976e903e243fabf448cd52d3a56f0626e0594c28f5738a06 ::: FORK PARENT
717586403c463819bc6cd355f0422b8880a0cecf98f9530916506f3cc5b265b1 ::: PARENT'S CHILD
2020-01-22 10:15:16 UTC 'ProcessMessage()' - received: inv (invSize() = 2 lines, string 1)
'ProcessMessage()' - block 0003e339c343ea874d05 new
askfor block 0003e339c343ea874d05 0 (00:00:00)
sending getdata: block 00067c6996633e9eac22
sending getdata: block 0003e339c343ea874d05
sending: getdata (73 bytes)
2020-01-22 10:15:18 UTC received: block (265 bytes)
'ProcessMessage()' - received block 00067c6996633e9eac22
'CBlock->ValidationCheckBlock()' - Entry at block height=364941, accepted
ComputeNextStakeModifier: prev modifier=0xd9009cff46c2ddfb time=2020-01-22 06:19:39 UTC
'CBlock->AddToBlockIndex()' - The new block pretends to a height 364941, block chain height 364942
'CBlock->AddToBlockIndex()' - A fork is formed, the height of the parent block 364940, hash child blocks hash(1)=00067c69 hash(2)=0007c52e, creation date block(1)=01/22/20 10:04:49 block(2)=01/22/20 10:05:45
priority has the first block, BestChainTrust=864114458946373 down
'REORGANIZE':
'REORGANIZE': - Disconnect 2 blocks; 0000b7ec33e4c371a727..da5f8a1e6f8a3f5ef964
'REORGANIZE': - Connect 1 blocks; 0000b7ec33e4c371a727..00067c6996633e9eac22
Delete redundant memory transactions that are in the connected branch
'REORGANIZE': - OK done
'CBlock->SetBestChain()' - new best=00067c6996633e9eac22 height=364941 trust=864114458946374 date=01/22/20 10:04:49
'ProcessBlock()' - ACCEPTED POW BLOCK
CBlockIndex* pblockindex = NULL;
int nPossibleHeight = pindexNew->pprev->nHeight + 1;
if (fDebug)
printf(" 'AddToBlockIndex()' - The new block pretends to a height %d, block chain height %d\n", nPossibleHeight,
pindexBest->nHeight);
nMaxDepthReplacement = GetArg("-maxdepthreplacement", 50);
int nFixPrev = 0;
CBlockIndex* newblockindex = pindexNew;
int nFixPindexBestnHeight = pindexBest->nHeight;
if (fHardForkOne)
{
if (pindexBest->nHeight > nPossibleHeight)
nFixPindexBestnHeight = nPossibleHeight;
if (nPossibleHeight > pindexBest->nHeight)
{
nFixPrev = nPossibleHeight - pindexBest->nHeight;
for (int i = nFixPrev; i > 0; i--)
{
if (i == i)
{
newblockindex = newblockindex->pprev;
}
}
}
for (int k = nFixPindexBestnHeight; k > nFixPindexBestnHeight - nMaxDepthReplacement; k--)
{
CBlockIndex* bestblockindex = FindBlockByHeight(k);
if (k == k)
{
if (newblockindex->pprev->GetBlockHash() == bestblockindex->pprev->GetBlockHash())
{
if (nPossibleHeight <= pindexBest->nHeight - nMaxDepthReplacement)
{
pindexNew->bnChainTrust = 0;
if (fDebug)
printf(" 'AddToBlockIndex()' - The new block pretends to a height %d, maximum allowed block height for a competing chain %d\n", nPossibleHeight,
pindexBest->nHeight - nMaxDepthReplacement);
break;
}
else if (newblockindex->GetBlockTime() > bestblockindex->GetBlockTime())
{
pindexNew->bnChainTrust = 0;
if (fDebug)
printf(" 'AddToBlockIndex()' - A fork is formed, the height of the parent block %d, hash child blocks hash(1)=%s hash(2)=%s, creation date block(1)=%s block(2)=%s,\n",
bestblockindex->pprev->nHeight, newblockindex->GetBlockHash().ToString().substr(0,8).c_str(), bestblockindex->GetBlockHash().
ToString().substr(0,8).c_str(), DateTimeStrFormat("%x %H:%M:%S", newblockindex->GetBlockTime()).c_str(), DateTimeStrFormat("%x %H:%M:%S",
bestblockindex->GetBlockTime()).c_str());
printf(" priority has a second block, NewChainTrust=%s down\n", pindexNew->bnChainTrust.ToString().c_str());
break;
}
else if (newblockindex->GetBlockTime() < bestblockindex->GetBlockTime() &&
nPossibleHeight > pindexBest->nHeight - nMaxDepthReplacement)
{
bnBestChainTrust = bestblockindex->pprev->bnChainTrust;;
if (fDebug)
printf(" 'AddToBlockIndex()' - A fork is formed, the height of the parent block %d, hash child blocks hash(1)=%s hash(2)=%s, creation date block(1)=%s block(2)=%s,\n",
bestblockindex->pprev->nHeight, newblockindex->GetBlockHash().ToString().substr(0,8).c_str(), bestblockindex->GetBlockHash().
ToString().substr(0,8).c_str(), DateTimeStrFormat("%x %H:%M:%S", newblockindex->GetBlockTime()).c_str(), DateTimeStrFormat("%x %H:%M:%S",
bestblockindex->GetBlockTime()).c_str());
printf(" priority has the first block, BestChainTrust=%s down\n", bnBestChainTrust.ToString().c_str());
break;
}
}
newblockindex = newblockindex->pprev;
}
}
}
if (nPossibleHeight < pindexBest->nHeight && fHardForkOne)
{
pblockindex = FindBlockByHeight(nPossibleHeight);
if (pindexNew->GetBlockTime() > pblockindex->GetBlockTime())
{
if (fDebug)
printf(" 'AddToBlockIndex()' - Generation time of a new block date=%s later than available in the database date=%s\n",
DateTimeStrFormat("%x %H:%M:%S", pindexNew->GetBlockTime()).c_str(), DateTimeStrFormat("%x %H:%M:%S",
pblockindex->GetBlockTime()).c_str());
pindexNew->bnChainTrust = 0;
}
else if (pindexNew->GetBlockTime() < pblockindex->GetBlockTime())
{
if (nPossibleHeight < pindexBest->nHeight && nPossibleHeight > pindexBest->nHeight - nMaxDepthReplacement)
{
if (fDebug)
printf(" 'AddToBlockIndex()' - The generation time of a new block date=%s earlier than the one in the database date=%s\n",
DateTimeStrFormat("%x %H:%M:%S", pindexNew->GetBlockTime()).c_str(), DateTimeStrFormat("%x %H:%M:%S",
pblockindex->GetBlockTime()).c_str());
bnBestChainTrust = pblockindex->pprev->bnChainTrust;
}
}
}
// New best
if (pindexNew->bnChainTrust > bnBestChainTrust)
{
if (!SetBestChain(state, txdb, pindexNew))
return false;
}
else if (pindexNew->bnChainTrust == bnBestChainTrust && fHardForkOne && pindexPrevPos->GetBlockHash() >=
pindexPrevPrevPos->GetBlockHash())
{
printf(" 'AddToBlockIndex()' - BestChainTrust %s\n", bnBestChainTrust.ToString().c_str());
printf(" 'AddToBlockIndex()' - NewChainTrust %s\n", pindexNew->bnChainTrust.ToString().c_str());
if (((pindexNew->IsProofOfStake() && pindexBest->IsProofOfStake()) ? (pindexNew->GetBlockHash() >
pindexBest->GetBlockHash()) : (hash > pindexBest->GetBlockHash())) ||
(pindexBest->IsProofOfWork() && pindexNew->IsProofOfStake()))
{
printf(" 'AddToBlockIndex()' bnChainTrust = bnBestChainTrust - Block accepted\n");
if (!SetBestChain(state, txdb, pindexNew))
{
return false;
}
}
else
{
printf(" 'AddToBlockIndex()' bnChainTrust = bnBestChainTrust - Block not accepted\n");
}
}
else if (pindexNew->bnChainTrust == bnBestChainTrust && fHardForkOne && pindexPrevPos->GetBlockHash() <
pindexPrevPrevPos->GetBlockHash())
{
printf(" 'AddToBlockIndex()_' - BestChainTrust %s\n", bnBestChainTrust.ToString().c_str());
printf(" 'AddToBlockIndex()_' - NewChainTrust %s\n", pindexNew->bnChainTrust.ToString().c_str());
if (((pindexNew->IsProofOfStake() && pindexBest->IsProofOfStake()) ? (pindexNew->GetBlockHash() <
pindexBest->GetBlockHash()) : (hash < pindexBest->GetBlockHash())) ||
(pindexBest->IsProofOfWork() && pindexNew->IsProofOfStake()))
{
printf(" 'AddToBlockIndex()_' bnChainTrust = bnBestChainTrust - Block accepted\n");
if (!SetBestChain(state, txdb, pindexNew))
{
return false;
}
}
else
{
printf(" 'AddToBlockIndex()_' bnChainTrust = bnBestChainTrust - Block not accepted\n");
}
}
received block 1652a05972b98e678461
CheckStakeKernelHash() : using modifier 0x35d696e7b209ef80 at height=349401 timestamp=2019-08-28 19:25:00 UTC for block from height=348699 timestamp=2019-08-19 21:11:31 UTC
CheckStakeKernelHash() : check protocol=0.3 modifier=0x35d696e7b209ef80 nTimeBlockFrom=1566249091 nTxPrevOffset=158 nTimeTxPrev=1566249091 nPrevout=1 nTimeTx=1572903179 hashProof=000001c1e2aca427813ef37c1bc66380e10d2afa0ba691c41d6947d2a4637ced
ComputeNextStakeModifier: prev modifier=0x3c2eb5bf4d3202fd time=2019-11-04 18:08:03 UTC
'AddToBlockIndex()' - The new block pretends to a height 357245, block chain height 357285
'AddToBlockIndex()' - A fork is formed, the height of the parent block 357233, hash child blocks hash(1)=46cba156 hash(2)=000084f2, creation date block(1)=04.11.2019 20:04:19 block(2)=04.11.2019 19:19:17,
priority has a second block, NewChainTrust=0 down
'AddToBlockIndex()' - Generation time of a new block date=04.11.2019 21:32:59 later than available in the database date=04.11.2019 20:19:24
ProcessBlock: ACCEPTED POS BLOCK
2019-11-06 19:34:49 UTC received: getblocks (997 bytes)
received block 0001b495e8c947f2aa67
ComputeNextStakeModifier: prev modifier=0x1673d3f6dc47f14c time=2019-11-07 00:10:33 UTC
'AddToBlockIndex()' - The new block pretends to a height 357365, block chain height 357366
'AddToBlockIndex()' - A fork is formed, the height of the parent block 357364, hash child blocks hash(1)=0001b495 hash(2)=045a8855, creation date block(1)=11/07/19 03:58:09 block(2)=11/07/19 03:59:48,
priority has the first block, BestChainTrust=769420279357256 down
'AddToBlockIndex()' - The generation time of a new block date=11/07/19 03:58:09 earlier than the one in the database date=11/07/19 03:59:48
REORGANIZE
REORGANIZE: Disconnect 2 blocks; 0d7c1fab0c6ac8e5150a..5729d05204aef49d6c0c
REORGANIZE: Connect 1 blocks; 0d7c1fab0c6ac8e5150a..0001b495e8c947f2aa67
Delete redundant memory transactions that are in the connected branch
REORGANIZE: done
SetBestChain: new best=0001b495e8c947f2aa67 height=357365 trust=769420279357257 date=11/07/19 03:58:09
ProcessBlock: ACCEPTED POW BLOCK
2019-11-07 04:08:04 UTC received: block (335 bytes)
received block 0001b6228706fd79e42d
Flushed 123 addresses to peers.dat 31ms
ComputeNextStakeModifier: prev modifier=0x1673d3f6dc47f14c time=2019-11-07 00:10:33 UTC
'AddToBlockIndex()' - The new block pretends to a height 357349, block chain height 357349
'AddToBlockIndex()' - A fork is formed, the height of the parent block 357348, hash child blocks hash(1)=0001b622 hash(2)=5416c057, creation date block(1)=11/07/19 02:16:20 block(2)=11/07/19 02:19:22,
priority has the first block, BestChainTrust=769144828228136 down
REORGANIZE
REORGANIZE: Disconnect 1 blocks; 741dae93a19fd2a2df2d..5416c057bc5860a31b1c
REORGANIZE: Connect 1 blocks; 741dae93a19fd2a2df2d..0001b6228706fd79e42d
Delete redundant memory transactions that are in the connected branch
REORGANIZE: done
SetBestChain: new best=0001b6228706fd79e42d height=357349 trust=769144828228137 date=11/07/19 02:16:20
ProcessBlock: ACCEPTED POW BLOCK
CBlockIndex* pblockindex = NULL;
int nPossibleHeight = pindexNew->pprev->nHeight + 1;
if (fDebug)
printf(" 'AddToBlockIndex()' - The new block pretends to a height %d, block chain height %d\n", nPossibleHeight,
pindexBest->nHeight);
if (nPossibleHeight < pindexBest->nHeight && fHardForkOne)
{
if (nPossibleHeight <= pindexBest->nHeight - nTriggerDepth)
{
if (fDebug)
printf(" 'AddToBlockIndex()' - The new block pretends to a height %d, maximum allowed block height for a competing chain %d\n", nPossibleHeight,
pindexBest->nHeight - nTriggerDepth);
pindexNew->bnChainTrust = 0;
}
pblockindex = FindBlockByHeight(nPossibleHeight);
if (pindexNew->GetBlockTime() > pblockindex->GetBlockTime())
{
if (fDebug)
printf(" 'AddToBlockIndex()' - Generation time of a new block date=%s later than available in the database date=%s\n",
DateTimeStrFormat("%x %H:%M:%S", pindexNew->GetBlockTime()).c_str(), DateTimeStrFormat("%x %H:%M:%S",
pblockindex->GetBlockTime()).c_str());
pindexNew->bnChainTrust = 0;
}
else if (pindexNew->GetBlockTime() < pblockindex->GetBlockTime())
{
if (nPossibleHeight < pindexBest->nHeight && nPossibleHeight > pindexBest->nHeight - nTriggerDepth)
{
if (fDebug)
printf(" 'AddToBlockIndex()' - The generation time of a new block date=%s earlier than the one in the database date=%s\n",
DateTimeStrFormat("%x %H:%M:%S", pindexNew->GetBlockTime()).c_str(), DateTimeStrFormat("%x %H:%M:%S",
pblockindex->GetBlockTime()).c_str());
bnBestChainTrust = pblockindex->pprev->bnChainTrust;
}
}
}
// New best
if (pindexNew->bnChainTrust > bnBestChainTrust)
{
if (!SetBestChain(state, txdb, pindexNew))
return false;
}
else if (pindexNew->bnChainTrust == bnBestChainTrust && fHardForkOne && pindexPrevPos->GetBlockHash() >=
pindexPrevPrevPos->GetBlockHash())
{
printf(" 'CBlock' - BestChainTrust %s\n", bnBestChainTrust.ToString().c_str());
printf(" 'CBlock' - NewChainTrust %s\n", pindexNew->bnChainTrust.ToString().c_str());
if (((pindexNew->IsProofOfStake() && pindexBest->IsProofOfStake()) ? (pindexNew->GetBlockHash() >
pindexBest->GetBlockHash()) : (hash > pindexBest->GetBlockHash())) ||
(pindexBest->IsProofOfWork() && pindexNew->IsProofOfStake()))
{
printf(" 'CBlock' bnChainTrust = bnBestChainTrust - Block accepted\n");
if (!SetBestChain(state, txdb, pindexNew))
{
return false;
}
}
else
{
printf(" 'CBlock' bnChainTrust = bnBestChainTrust - Block not accepted\n");
return false;
}
}
else if (pindexNew->bnChainTrust == bnBestChainTrust && fHardForkOne && pindexPrevPos->GetBlockHash() <
pindexPrevPrevPos->GetBlockHash())
{
printf(" 'CBlock_' - BestChainTrust %s\n", bnBestChainTrust.ToString().c_str());
printf(" 'CBlock_' - NewChainTrust %s\n", pindexNew->bnChainTrust.ToString().c_str());
if (((pindexNew->IsProofOfStake() && pindexBest->IsProofOfStake()) ? (pindexNew->GetBlockHash() <
pindexBest->GetBlockHash()) : (hash < pindexBest->GetBlockHash())) ||
(pindexBest->IsProofOfWork() && pindexNew->IsProofOfStake()))
{
printf(" 'CBlock' bnChainTrust = bnBestChainTrust - Block accepted\n");
if (!SetBestChain(state, txdb, pindexNew))
{
return false;
}
}
else
{
printf(" 'CBlock' bnChainTrust = bnBestChainTrust - Block not accepted\n");
return false;
}
}
txdb.Close();
unsigned int nStakeMinAge = 60 * 60 * 24 * 7; // minimum age for coin age
unsigned int nStakeMaxAge = 60 * 60 * 24 * 30; // stake age of full weight
2018-12-12 07:17:00 UTC received: inv (37 bytes)
got inventory: tx 7405f2ab32944cfac5b0 new
spam hash previous: Until now spam activity is absent - outofstock
askfor tx 7405f2ab32944cfac5b0 0 (00:00:00)
sending getdata: tx 7405f2ab32944cfac5b0
sending: getdata (37 bytes)
trying connection 91.210.200.12:2225 lastseen=3,9hrs
2018-12-12 07:17:01 UTC received: tx (7112 bytes)
ERROR: 'Transaction' - ThreadAnalyzerHandler() : 7405f2ab32 prev tx b214565474 index entry not found
strCommand 'tx' - The executor of the rules performed the work
previous spam hash: 7405f2ab32944cfac5b0 - outofstock
actual spam hash: 7405f2ab32944cfac5b0 - outofstock
ProcessMessage(tx, 7112 bytes) FAILED
connection timeout
2018-12-12 08:32:23 UTC received: inv (37 bytes)
strCommand 'inv' - The executor of the rules performed the work
spam hash previous: 7405f2ab32944cfac5b0 - outofstock
spam hash actual: 7405f2ab32944cfac5b0 - outofstock
ProcessMessage(inv, 37 bytes) FAILED
ResendWalletTransactions()
connection timeout
2018-11-29 12:29:41 UTC received: inv (73 bytes)
got inventory: tx 7405f2ab32944cfac5b0 new
askfor tx 7405f2ab32944cfac5b0 0 (00:00:00)
got inventory: tx 180a0250c01c3a1e101f have
sending getdata: tx 7405f2ab32944cfac5b0
sending: getdata (37 bytes)
2018-11-29 12:29:41 UTC received: tx (7112 bytes)
ERROR: 'Transaction' - ThreadAnalyzerHandler() : 7405f2ab32 prev tx b214565474 index entry not found
strCommand 'tx' - The executor of the rules performed the work
ProcessMessage(tx, 7112 bytes) FAILED
trying connection 188.120.239.144:2225 lastseen=811,0hrs
connection timeout
trying connection 81.200.245.198:2225 lastseen=693,9hrs
Flushed 4 addresses to peers.dat 51ms