Changeset View
Changeset View
Standalone View
Standalone View
src/validation.cpp
Show First 20 Lines • Show All 3,060 Lines • ▼ Show 20 Lines | BlockMap::iterator mi = | ||||
mapBlockIndex.insert(std::make_pair(hash, pindexNew)).first; | mapBlockIndex.insert(std::make_pair(hash, pindexNew)).first; | ||||
pindexNew->phashBlock = &((*mi).first); | pindexNew->phashBlock = &((*mi).first); | ||||
BlockMap::iterator miPrev = mapBlockIndex.find(block.hashPrevBlock); | BlockMap::iterator miPrev = mapBlockIndex.find(block.hashPrevBlock); | ||||
if (miPrev != mapBlockIndex.end()) { | if (miPrev != mapBlockIndex.end()) { | ||||
pindexNew->pprev = (*miPrev).second; | pindexNew->pprev = (*miPrev).second; | ||||
pindexNew->nHeight = pindexNew->pprev->nHeight + 1; | pindexNew->nHeight = pindexNew->pprev->nHeight + 1; | ||||
pindexNew->BuildSkip(); | pindexNew->BuildSkip(); | ||||
} | } | ||||
pindexNew->nTimeReceived = GetTime(); | pindexNew->nTimeHeaderReceived = GetTime(); | ||||
pindexNew->nTimeMax = | pindexNew->nTimeMax = | ||||
(pindexNew->pprev | (pindexNew->pprev | ||||
? std::max(pindexNew->pprev->nTimeMax, pindexNew->nTime) | ? std::max(pindexNew->pprev->nTimeMax, pindexNew->nTime) | ||||
: pindexNew->nTime); | : pindexNew->nTime); | ||||
pindexNew->nChainWork = | pindexNew->nChainWork = | ||||
(pindexNew->pprev ? pindexNew->pprev->nChainWork : 0) + | (pindexNew->pprev ? pindexNew->pprev->nChainWork : 0) + | ||||
GetBlockProof(*pindexNew); | GetBlockProof(*pindexNew); | ||||
pindexNew->RaiseValidity(BlockValidity::TREE); | pindexNew->RaiseValidity(BlockValidity::TREE); | ||||
Show All 15 Lines | bool ReceivedBlockTransactions(const CBlock &block, CValidationState &state, | ||||
const CDiskBlockPos &pos) { | const CDiskBlockPos &pos) { | ||||
pindexNew->nTx = block.vtx.size(); | pindexNew->nTx = block.vtx.size(); | ||||
pindexNew->nChainTx = 0; | pindexNew->nChainTx = 0; | ||||
pindexNew->nFile = pos.nFile; | pindexNew->nFile = pos.nFile; | ||||
pindexNew->nDataPos = pos.nPos; | pindexNew->nDataPos = pos.nPos; | ||||
pindexNew->nUndoPos = 0; | pindexNew->nUndoPos = 0; | ||||
pindexNew->nStatus = pindexNew->nStatus.withData(); | pindexNew->nStatus = pindexNew->nStatus.withData(); | ||||
pindexNew->RaiseValidity(BlockValidity::TRANSACTIONS); | pindexNew->RaiseValidity(BlockValidity::TRANSACTIONS); | ||||
pindexNew->nTimeBlockReceived = GetTime(); | |||||
setDirtyBlockIndex.insert(pindexNew); | setDirtyBlockIndex.insert(pindexNew); | ||||
if (pindexNew->pprev == nullptr || pindexNew->pprev->nChainTx) { | if (pindexNew->pprev == nullptr || pindexNew->pprev->nChainTx) { | ||||
// If pindexNew is the genesis block or all parents are | // If pindexNew is the genesis block or all parents are | ||||
// BLOCK_VALID_TRANSACTIONS. | // BLOCK_VALID_TRANSACTIONS. | ||||
std::deque<CBlockIndex *> queue; | std::deque<CBlockIndex *> queue; | ||||
queue.push_back(pindexNew); | queue.push_back(pindexNew); | ||||
▲ Show 20 Lines • Show All 2,344 Lines • Show Last 20 Lines |