mirror of
https://github.com/dashpay/dash.git
synced 2024-12-30 14:25:53 +01:00
Assign a NodeId to each peer
This commit is contained in:
parent
5bdb5abb0a
commit
6afc2e7b23
@ -4053,7 +4053,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
|
|||||||
|
|
||||||
pfrom->fSuccessfullyConnected = true;
|
pfrom->fSuccessfullyConnected = true;
|
||||||
|
|
||||||
printf("receive version message: %s: version %d, blocks=%d, us=%s, them=%s, peer=%s\n", pfrom->cleanSubVer.c_str(), pfrom->nVersion, pfrom->nStartingHeight, addrMe.ToString().c_str(), addrFrom.ToString().c_str(), pfrom->addr.ToString().c_str());
|
printf("receive version message: %s: version %d, blocks=%d, us=%s, them=%s, peer=%d\n", pfrom->cleanSubVer.c_str(), pfrom->nVersion, pfrom->nStartingHeight, addrMe.ToString().c_str(), addrFrom.ToString().c_str(), pfrom->id);
|
||||||
|
|
||||||
cPeerBlockCounts.input(pfrom->nStartingHeight);
|
cPeerBlockCounts.input(pfrom->nStartingHeight);
|
||||||
|
|
||||||
|
@ -69,6 +69,9 @@ CCriticalSection cs_setservAddNodeAddresses;
|
|||||||
vector<std::string> vAddedNodes;
|
vector<std::string> vAddedNodes;
|
||||||
CCriticalSection cs_vAddedNodes;
|
CCriticalSection cs_vAddedNodes;
|
||||||
|
|
||||||
|
NodeId nLastNodeId = 0;
|
||||||
|
CCriticalSection cs_nLastNodeId;
|
||||||
|
|
||||||
static CSemaphore *semOutbound = NULL;
|
static CSemaphore *semOutbound = NULL;
|
||||||
|
|
||||||
void AddOneShot(string strDest)
|
void AddOneShot(string strDest)
|
||||||
@ -544,7 +547,7 @@ void CNode::PushVersion()
|
|||||||
CAddress addrYou = (addr.IsRoutable() && !IsProxy(addr) ? addr : CAddress(CService("0.0.0.0",0)));
|
CAddress addrYou = (addr.IsRoutable() && !IsProxy(addr) ? addr : CAddress(CService("0.0.0.0",0)));
|
||||||
CAddress addrMe = GetLocalAddress(&addr);
|
CAddress addrMe = GetLocalAddress(&addr);
|
||||||
RAND_bytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce));
|
RAND_bytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce));
|
||||||
printf("send version message: version %d, blocks=%d, us=%s, them=%s, peer=%s\n", PROTOCOL_VERSION, nBestHeight, addrMe.ToString().c_str(), addrYou.ToString().c_str(), addr.ToString().c_str());
|
printf("send version message: version %d, blocks=%d, us=%s, them=%s, peer=%d\n", PROTOCOL_VERSION, nBestHeight, addrMe.ToString().c_str(), addrYou.ToString().c_str(), id);
|
||||||
PushMessage("version", PROTOCOL_VERSION, nLocalServices, nTime, addrYou, addrMe,
|
PushMessage("version", PROTOCOL_VERSION, nLocalServices, nTime, addrYou, addrMe,
|
||||||
nLocalHostNonce, FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, std::vector<string>()), nBestHeight);
|
nLocalHostNonce, FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, std::vector<string>()), nBestHeight);
|
||||||
}
|
}
|
||||||
|
11
src/net.h
11
src/net.h
@ -46,6 +46,8 @@ void StartNode(boost::thread_group& threadGroup);
|
|||||||
bool StopNode();
|
bool StopNode();
|
||||||
void SocketSendData(CNode *pnode);
|
void SocketSendData(CNode *pnode);
|
||||||
|
|
||||||
|
typedef int NodeId;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
LOCAL_NONE, // unknown
|
LOCAL_NONE, // unknown
|
||||||
@ -87,7 +89,8 @@ extern limitedmap<CInv, int64> mapAlreadyAskedFor;
|
|||||||
extern std::vector<std::string> vAddedNodes;
|
extern std::vector<std::string> vAddedNodes;
|
||||||
extern CCriticalSection cs_vAddedNodes;
|
extern CCriticalSection cs_vAddedNodes;
|
||||||
|
|
||||||
|
extern NodeId nLastNodeId;
|
||||||
|
extern CCriticalSection cs_nLastNodeId;
|
||||||
|
|
||||||
|
|
||||||
class CNodeStats
|
class CNodeStats
|
||||||
@ -200,6 +203,7 @@ public:
|
|||||||
CCriticalSection cs_filter;
|
CCriticalSection cs_filter;
|
||||||
CBloomFilter* pfilter;
|
CBloomFilter* pfilter;
|
||||||
int nRefCount;
|
int nRefCount;
|
||||||
|
NodeId id;
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Denial-of-service detection/prevention
|
// Denial-of-service detection/prevention
|
||||||
@ -265,6 +269,11 @@ public:
|
|||||||
setInventoryKnown.max_size(SendBufferSize() / 1000);
|
setInventoryKnown.max_size(SendBufferSize() / 1000);
|
||||||
pfilter = new CBloomFilter();
|
pfilter = new CBloomFilter();
|
||||||
|
|
||||||
|
{
|
||||||
|
LOCK(cs_nLastNodeId);
|
||||||
|
id = nLastNodeId++;
|
||||||
|
}
|
||||||
|
|
||||||
// Be shy and don't send version until we hear
|
// Be shy and don't send version until we hear
|
||||||
if (hSocket != INVALID_SOCKET && !fInbound)
|
if (hSocket != INVALID_SOCKET && !fInbound)
|
||||||
PushVersion();
|
PushVersion();
|
||||||
|
Loading…
Reference in New Issue
Block a user