|
@ -97,7 +97,7 @@ shared_ptr<NodeEntry> NodeTable::addNode(Node const& _node) |
|
|
m_socketPointer->send(p); |
|
|
m_socketPointer->send(p); |
|
|
|
|
|
|
|
|
// TODO p2p: rename to p2p.nodes.pending, add p2p.nodes.add event (when pong is received)
|
|
|
// TODO p2p: rename to p2p.nodes.pending, add p2p.nodes.add event (when pong is received)
|
|
|
clog(NodeTableNote) << "p2p.nodes.add " << _node.id.abridged(); |
|
|
clog(NodeTableUpdate) << "p2p.nodes.add " << _node.id.abridged(); |
|
|
if (m_nodeEventHandler) |
|
|
if (m_nodeEventHandler) |
|
|
m_nodeEventHandler->appendEvent(_node.id, NodeEntryAdded); |
|
|
m_nodeEventHandler->appendEvent(_node.id, NodeEntryAdded); |
|
|
|
|
|
|
|
@ -159,7 +159,7 @@ void NodeTable::discover(NodeId _node, unsigned _round, shared_ptr<set<shared_pt |
|
|
|
|
|
|
|
|
if (_round == s_maxSteps) |
|
|
if (_round == s_maxSteps) |
|
|
{ |
|
|
{ |
|
|
clog(NodeTableNote) << "Terminating discover after " << _round << " rounds."; |
|
|
clog(NodeTableEvent) << "Terminating discover after " << _round << " rounds."; |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
else if(!_round && !_tried) |
|
|
else if(!_round && !_tried) |
|
@ -180,7 +180,7 @@ void NodeTable::discover(NodeId _node, unsigned _round, shared_ptr<set<shared_pt |
|
|
|
|
|
|
|
|
if (tried.empty()) |
|
|
if (tried.empty()) |
|
|
{ |
|
|
{ |
|
|
clog(NodeTableNote) << "Terminating discover after " << _round << " rounds."; |
|
|
clog(NodeTableEvent) << "Terminating discover after " << _round << " rounds."; |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -308,7 +308,7 @@ void NodeTable::noteActiveNode(Public const& _pubk, bi::udp::endpoint const& _en |
|
|
if (_pubk == m_node.address()) |
|
|
if (_pubk == m_node.address()) |
|
|
return; |
|
|
return; |
|
|
|
|
|
|
|
|
clog(NodeTableNote) << "Noting active node:" << _pubk.abridged() << _endpoint.address().to_string() << ":" << _endpoint.port(); |
|
|
clog(NodeTableConnect) << "Noting active node:" << _pubk.abridged() << _endpoint.address().to_string() << ":" << _endpoint.port(); |
|
|
|
|
|
|
|
|
shared_ptr<NodeEntry> node(addNode(_pubk, _endpoint, bi::tcp::endpoint(_endpoint.address(), _endpoint.port()))); |
|
|
shared_ptr<NodeEntry> node(addNode(_pubk, _endpoint, bi::tcp::endpoint(_endpoint.address(), _endpoint.port()))); |
|
|
|
|
|
|
|
@ -361,7 +361,7 @@ void NodeTable::dropNode(shared_ptr<NodeEntry> _n) |
|
|
m_nodes.erase(_n->id); |
|
|
m_nodes.erase(_n->id); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
clog(NodeTableNote) << "p2p.nodes.drop " << _n->id.abridged(); |
|
|
clog(NodeTableUpdate) << "p2p.nodes.drop " << _n->id.abridged(); |
|
|
if (m_nodeEventHandler) |
|
|
if (m_nodeEventHandler) |
|
|
m_nodeEventHandler->appendEvent(_n->id, NodeEntryRemoved); |
|
|
m_nodeEventHandler->appendEvent(_n->id, NodeEntryRemoved); |
|
|
} |
|
|
} |
|
@ -376,7 +376,7 @@ void NodeTable::onReceived(UDPSocketFace*, bi::udp::endpoint const& _from, bytes |
|
|
// h256 + Signature + type + RLP (smallest possible packet is empty neighbours packet which is 3 bytes)
|
|
|
// h256 + Signature + type + RLP (smallest possible packet is empty neighbours packet which is 3 bytes)
|
|
|
if (_packet.size() < h256::size + Signature::size + 1 + 3) |
|
|
if (_packet.size() < h256::size + Signature::size + 1 + 3) |
|
|
{ |
|
|
{ |
|
|
clog(NodeTableMessageSummary) << "Invalid Message size from " << _from.address().to_string() << ":" << _from.port(); |
|
|
clog(NodeTableWarn) << "Invalid Message size from " << _from.address().to_string() << ":" << _from.port(); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -384,7 +384,7 @@ void NodeTable::onReceived(UDPSocketFace*, bi::udp::endpoint const& _from, bytes |
|
|
h256 hashSigned(sha3(hashedBytes)); |
|
|
h256 hashSigned(sha3(hashedBytes)); |
|
|
if (!_packet.cropped(0, h256::size).contentsEqual(hashSigned.asBytes())) |
|
|
if (!_packet.cropped(0, h256::size).contentsEqual(hashSigned.asBytes())) |
|
|
{ |
|
|
{ |
|
|
clog(NodeTableMessageSummary) << "Invalid Message hash from " << _from.address().to_string() << ":" << _from.port(); |
|
|
clog(NodeTableWarn) << "Invalid Message hash from " << _from.address().to_string() << ":" << _from.port(); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -396,7 +396,7 @@ void NodeTable::onReceived(UDPSocketFace*, bi::udp::endpoint const& _from, bytes |
|
|
Public nodeid(dev::recover(*(Signature const*)sigBytes.data(), sha3(signedBytes))); |
|
|
Public nodeid(dev::recover(*(Signature const*)sigBytes.data(), sha3(signedBytes))); |
|
|
if (!nodeid) |
|
|
if (!nodeid) |
|
|
{ |
|
|
{ |
|
|
clog(NodeTableMessageSummary) << "Invalid Message signature from " << _from.address().to_string() << ":" << _from.port(); |
|
|
clog(NodeTableWarn) << "Invalid Message signature from " << _from.address().to_string() << ":" << _from.port(); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -516,7 +516,7 @@ void NodeTable::doRefreshBuckets(boost::system::error_code const& _ec) |
|
|
if (_ec) |
|
|
if (_ec) |
|
|
return; |
|
|
return; |
|
|
|
|
|
|
|
|
clog(NodeTableNote) << "refreshing buckets"; |
|
|
clog(NodeTableEvent) << "refreshing buckets"; |
|
|
bool connected = m_socketPointer->isOpen(); |
|
|
bool connected = m_socketPointer->isOpen(); |
|
|
bool refreshed = false; |
|
|
bool refreshed = false; |
|
|
if (connected) |
|
|
if (connected) |
|
|