MCPcopy Create free account
hub / github.com/WaykiChain/WaykiChain / ProcessBlockMessage

Function ProcessBlockMessage

src/p2p/chainmessage.cpp:697–727  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

695}
696
697void ProcessBlockMessage(CNode *pFrom, CDataStream &vRecv) {
698 CBlock block;
699 vRecv >> block;
700
701 LogPrint(BCLog::NET, "recv block! time_ms=%lld, hash=%s, peer=%s\n", GetTimeMillis(),
702 block.GetHash().ToString(), pFrom->addr.ToString());
703 // block.Print();
704
705 CInv inv(MSG_BLOCK, block.GetHash());
706 pFrom->AddInventoryKnown(inv);
707
708 {
709 // Remember who we got this block from.
710 LOCK(cs_mapNodeState);
711 mapBlockSource[inv.hash] = pFrom->GetId();
712 MarkBlockAsReceived(inv.hash, pFrom->GetId());
713 }
714
715 LOCK(cs_main);
716 CValidationState state;
717
718 std::pair<int32_t ,uint256> globalfinblock = std::make_pair(0,uint256());
719 pCdMan->pBlockCache->ReadGlobalFinBlock(globalfinblock);
720 if (block.GetHeight() < (uint32_t)globalfinblock.first) {
721 LogPrint(BCLog::NET,"[%d] this inbound block is irrreversible (%d)\n",
722 block.GetHeight(), globalfinblock.first);
723 } else {
724 ProcessBlock(state, pFrom, &block);
725 }
726
727}
728
729void ProcessMempoolMessage(CNode *pFrom, CDataStream &vRecv) {
730 LOCK2(cs_main, pFrom->cs_filter);

Callers 1

ProcessMessageFunction · 0.85

Calls 10

MarkBlockAsReceivedFunction · 0.85
ProcessBlockFunction · 0.85
AddInventoryKnownMethod · 0.80
GetIdMethod · 0.80
ReadGlobalFinBlockMethod · 0.80
GetTimeMillisFunction · 0.50
uint256Class · 0.50
ToStringMethod · 0.45
GetHashMethod · 0.45
GetHeightMethod · 0.45

Tested by

no test coverage detected