TARAXA
dev::p2p::PingNode Struct Reference

#include <NodeTable.h>

Collaboration diagram for dev::p2p::PingNode:

Public Member Functions

 PingNode (NodeIPEndpoint const &_src, NodeIPEndpoint const &_dest, unsigned _chain_id)
 
 PingNode (bi::udp::endpoint const &_from, NodeID const &_fromid, h256 const &_echo)
 
uint8_t packetType () const override
 
void streamRLP (RLPStream &_s) const override
 
void interpretRLP (bytesConstRef _bytes) override
 
std::string typeName () const override
 
 DiscoveryDatagram (bi::udp::endpoint const &_to)
 Constructor used for sending. More...
 
 DiscoveryDatagram (bi::udp::endpoint const &_from, NodeID const &_fromid, h256 const &_echo)
 Constructor used for parsing inbound packets. More...
 
- Public Member Functions inherited from dev::p2p::DiscoveryDatagram
 DiscoveryDatagram (bi::udp::endpoint const &_to)
 Constructor used for sending. More...
 
 DiscoveryDatagram (bi::udp::endpoint const &_from, NodeID const &_fromid, h256 const &_echo)
 Constructor used for parsing inbound packets. More...
 
bool isExpired () const
 
- Public Member Functions inherited from dev::p2p::RLPXDatagramFace
 RLPXDatagramFace (bi::udp::endpoint const &_ep)
 
virtual ~RLPXDatagramFace ()=default
 
virtual h256 sign (Secret const &_from)
 
- Public Member Functions inherited from dev::p2p::UDPDatagram
 UDPDatagram (bi::udp::endpoint _ep)
 
 UDPDatagram (bi::udp::endpoint _ep, bytes _data)
 
bi::udp::endpoint const & endpoint () const
 

Public Attributes

unsigned version = 0
 
unsigned chain_id = 0
 
NodeIPEndpoint source
 
NodeIPEndpoint destination
 
std::optional< uint64_t > seq
 
- Public Attributes inherited from dev::p2p::DiscoveryDatagram
NodeID sourceid
 
h256 echo
 
boost::optional< uint32_t > expiration
 
- Public Attributes inherited from dev::p2p::UDPDatagram
bytes data
 

Static Public Attributes

static constexpr uint8_t type = 1
 
- Static Public Attributes inherited from dev::p2p::DiscoveryDatagram
static constexpr std::chrono::seconds c_timeToLiveS {60}
 

Additional Inherited Members

- Static Public Member Functions inherited from dev::p2p::DiscoveryDatagram
static std::unique_ptr< DiscoveryDatagraminterpretUDP (bi::udp::endpoint const &_from, bytesConstRef _packet)
 Decodes UDP packets. More...
 
- Static Public Member Functions inherited from dev::p2p::RLPXDatagramFace
static uint32_t futureFromEpoch (std::chrono::seconds _sec)
 
static uint32_t secondsSinceEpoch ()
 
static Public authenticate (bytesConstRef _sig, bytesConstRef _rlp)
 
- Protected Attributes inherited from dev::p2p::UDPDatagram
bi::udp::endpoint locus
 

Detailed Description

Ping packet: Sent to check if node is alive. PingNode is cached and regenerated after timestamp + t, where t is timeout.

Ping is used to implement evict. When a new node is seen for a given bucket which is full, the least-responsive node is pinged. If the pinged node doesn't respond, then it is removed and the new node is inserted.

Constructor & Destructor Documentation

◆ PingNode() [1/2]

dev::p2p::PingNode::PingNode ( NodeIPEndpoint const &  _src,
NodeIPEndpoint const &  _dest,
unsigned  _chain_id 
)
inline

◆ PingNode() [2/2]

dev::p2p::PingNode::PingNode ( bi::udp::endpoint const &  _from,
NodeID const &  _fromid,
h256 const &  _echo 
)
inline

Member Function Documentation

◆ DiscoveryDatagram() [1/2]

dev::p2p::DiscoveryDatagram::DiscoveryDatagram
inline

Constructor used for parsing inbound packets.

◆ DiscoveryDatagram() [2/2]

dev::p2p::DiscoveryDatagram::DiscoveryDatagram
inline

Constructor used for sending.

◆ interpretRLP()

void dev::p2p::PingNode::interpretRLP ( bytesConstRef  _bytes)
inlineoverridevirtual

◆ packetType()

uint8_t dev::p2p::PingNode::packetType ( ) const
inlineoverridevirtual

◆ streamRLP()

void dev::p2p::PingNode::streamRLP ( RLPStream _s) const
inlineoverridevirtual

◆ typeName()

std::string dev::p2p::PingNode::typeName ( ) const
inlineoverridevirtual

Member Data Documentation

◆ chain_id

unsigned dev::p2p::PingNode::chain_id = 0

◆ destination

NodeIPEndpoint dev::p2p::PingNode::destination

◆ seq

std::optional<uint64_t> dev::p2p::PingNode::seq

◆ source

NodeIPEndpoint dev::p2p::PingNode::source

◆ type

constexpr uint8_t dev::p2p::PingNode::type = 1
staticconstexpr

◆ version

unsigned dev::p2p::PingNode::version = 0

The documentation for this struct was generated from the following file: