Changeset View
Changeset View
Standalone View
Standalone View
src/seeder/bitcoin.cpp
Show First 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
void CSeederNode::PushVersion() { | void CSeederNode::PushVersion() { | ||||
int64_t nTime = time(nullptr); | int64_t nTime = time(nullptr); | ||||
uint64_t nLocalNonce = BITCOIN_SEED_NONCE; | uint64_t nLocalNonce = BITCOIN_SEED_NONCE; | ||||
int64_t nLocalServices = 0; | int64_t nLocalServices = 0; | ||||
CService myService; | CService myService; | ||||
CAddress me(myService, ServiceFlags(NODE_NETWORK | NODE_BITCOIN_CASH)); | CAddress me(myService, ServiceFlags(NODE_NETWORK | NODE_BITCOIN_CASH)); | ||||
BeginMessage("version"); | BeginMessage(NetMsgType::VERSION); | ||||
int nBestHeight = GetRequireHeight(); | int nBestHeight = GetRequireHeight(); | ||||
std::string ver = "/bitcoin-cash-seeder:0.15/"; | std::string ver = "/bitcoin-cash-seeder:0.15/"; | ||||
vSend << PROTOCOL_VERSION << nLocalServices << nTime << you << me | vSend << PROTOCOL_VERSION << nLocalServices << nTime << you << me | ||||
<< nLocalNonce << ver << nBestHeight; | << nLocalNonce << ver << nBestHeight; | ||||
EndMessage(); | EndMessage(); | ||||
} | } | ||||
PeerMessagingState CSeederNode::ProcessMessage(std::string strCommand, | PeerMessagingState CSeederNode::ProcessMessage(std::string strCommand, | ||||
CDataStream &recv) { | CDataStream &recv) { | ||||
// tfm::format(std::cout, "%s: RECV %s\n", ToString(you), | // tfm::format(std::cout, "%s: RECV %s\n", ToString(you), | ||||
// strCommand); | // strCommand); | ||||
if (strCommand == "version") { | if (strCommand == NetMsgType::VERSION) { | ||||
int64_t nTime; | int64_t nTime; | ||||
CAddress addrMe; | CAddress addrMe; | ||||
CAddress addrFrom; | CAddress addrFrom; | ||||
uint64_t nNonce = 1; | uint64_t nNonce = 1; | ||||
uint64_t nServiceInt; | uint64_t nServiceInt; | ||||
recv >> nVersion >> nServiceInt >> nTime >> addrMe; | recv >> nVersion >> nServiceInt >> nTime >> addrMe; | ||||
you.nServices = ServiceFlags(nServiceInt); | you.nServices = ServiceFlags(nServiceInt); | ||||
recv >> addrFrom >> nNonce; | recv >> addrFrom >> nNonce; | ||||
recv >> strSubVer; | recv >> strSubVer; | ||||
recv >> nStartingHeight; | recv >> nStartingHeight; | ||||
BeginMessage("verack"); | BeginMessage(NetMsgType::VERACK); | ||||
EndMessage(); | EndMessage(); | ||||
vSend.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | vSend.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | ||||
return PeerMessagingState::AwaitingMessages; | return PeerMessagingState::AwaitingMessages; | ||||
} | } | ||||
if (strCommand == "verack") { | if (strCommand == NetMsgType::VERACK) { | ||||
vRecv.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | vRecv.SetVersion(std::min(nVersion, PROTOCOL_VERSION)); | ||||
// tfm::format(std::cout, "\n%s: version %i\n", ToString(you), | // tfm::format(std::cout, "\n%s: version %i\n", ToString(you), | ||||
// nVersion); | // nVersion); | ||||
if (vAddr) { | if (vAddr) { | ||||
BeginMessage("getaddr"); | BeginMessage(NetMsgType::GETADDR); | ||||
EndMessage(); | EndMessage(); | ||||
doneAfter = time(nullptr) + GetTimeout(); | doneAfter = time(nullptr) + GetTimeout(); | ||||
} else { | } else { | ||||
doneAfter = time(nullptr) + 1; | doneAfter = time(nullptr) + 1; | ||||
} | } | ||||
return PeerMessagingState::AwaitingMessages; | return PeerMessagingState::AwaitingMessages; | ||||
} | } | ||||
if (strCommand == "addr" && vAddr) { | if (strCommand == NetMsgType::ADDR && vAddr) { | ||||
std::vector<CAddress> vAddrNew; | std::vector<CAddress> vAddrNew; | ||||
recv >> vAddrNew; | recv >> vAddrNew; | ||||
// tfm::format(std::cout, "%s: got %i addresses\n", | // tfm::format(std::cout, "%s: got %i addresses\n", | ||||
// ToString(you), | // ToString(you), | ||||
// (int)vAddrNew.size()); | // (int)vAddrNew.size()); | ||||
int64_t now = time(nullptr); | int64_t now = time(nullptr); | ||||
std::vector<CAddress>::iterator it = vAddrNew.begin(); | std::vector<CAddress>::iterator it = vAddrNew.begin(); | ||||
if (vAddrNew.size() > 1) { | if (vAddrNew.size() > 1) { | ||||
▲ Show 20 Lines • Show All 192 Lines • Show Last 20 Lines |