TARAXA
Common.h File Reference
#include <atomic>
#include <set>
#include <shared_mutex>
#include <string>
#include <vector>
#include <libdevcore/Exceptions.h>
#include <libdevcore/Guards.h>
#include <libdevcore/Log.h>
#include <libdevcore/RLP.h>
#include <libdevcrypto/Common.h>
#include <boost/asio.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/steady_timer.hpp>
#include <chrono>
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dev::p2p::NetworkStartRequired
 
struct  dev::p2p::InvalidPublicIPAddress
 
struct  dev::p2p::NetworkRestartNotSupported
 
struct  dev::p2p::ECDHEError
 The ECDHE agreement failed during RLPx handshake. More...
 
struct  dev::p2p::PeerSessionInfo
 
class  dev::p2p::NodeIPEndpoint
 IPv4,UDP/TCP endpoints. More...
 
struct  dev::p2p::NodeSpec
 
class  dev::p2p::Node
 
struct  std::hash< bi::address >
 

Namespaces

 dev
 
 dev::p2p
 
 std
 std::hash for asio::adress
 

Macros

#define NET_GLOBAL_LOGGER(NAME, SEVERITY)
 
#define cnetnote   LOG(dev::p2p::g_netnoteLogger::get())
 
#define cnetlog   LOG(dev::p2p::g_netlogLogger::get())
 
#define cnetdetails   LOG(dev::p2p::g_netdetailsLogger::get())
 

Typedefs

using dev::p2p::NodeID = h512
 
using dev::p2p::CapDesc = std::pair< std::string, unsigned >
 
using dev::p2p::CapDescs = std::vector< CapDesc >
 
using dev::p2p::PeerSessionInfos = std::vector< PeerSessionInfo >
 

Enumerations

enum  dev::p2p::P2pPacketType {
  dev::p2p::HelloPacket = 0 , dev::p2p::DisconnectPacket , dev::p2p::PingPacket , dev::p2p::PongPacket ,
  dev::p2p::UserPacket = 0x10
}
 
enum  dev::p2p::DisconnectReason {
  dev::p2p::DisconnectRequested = 0 , dev::p2p::TCPError , dev::p2p::BadProtocol , dev::p2p::UselessPeer ,
  dev::p2p::TooManyPeers , dev::p2p::DuplicatePeer , dev::p2p::IncompatibleProtocol , dev::p2p::NullIdentity ,
  dev::p2p::ClientQuit , dev::p2p::UnexpectedIdentity , dev::p2p::LocalIdentity , dev::p2p::PingTimeout ,
  dev::p2p::UserReason = 0x10 , dev::p2p::NoDisconnect = 0xffff
}
 
enum class  dev::p2p::HandshakeFailureReason {
  dev::p2p::NoFailure = 0 , dev::p2p::UnknownFailure , dev::p2p::Timeout , dev::p2p::TCPError ,
  dev::p2p::FrameDecryptionFailure , dev::p2p::InternalError , dev::p2p::ProtocolError , dev::p2p::DisconnectRequested
}
 
enum class  dev::p2p::PeerType { dev::p2p::Optional , dev::p2p::Required }
 

Functions

bool dev::p2p::isPrivateAddress (bi::address const &_addressToCheck)
 
bool dev::p2p::isPrivateAddress (std::string const &_addressToCheck)
 
bool dev::p2p::isLocalHostAddress (bi::address const &_addressToCheck)
 
bool dev::p2p::isLocalHostAddress (std::string const &_addressToCheck)
 
bool dev::p2p::isPublicAddress (bi::address const &_addressToCheck)
 
bool dev::p2p::isPublicAddress (std::string const &_addressToCheck)
 
bool dev::p2p::isAllowedAddress (bool _allowLocalDiscovery, bi::address const &_addressToCheck)
 
bool dev::p2p::isAllowedEndpoint (bool _allowLocalDiscovery, NodeIPEndpoint const &_endpointToCheck)
 
char const * dev::p2p::p2pPacketTypeToString (P2pPacketType _packetType)
 
string dev::p2p::reasonOf (DisconnectReason _r)
 
boost::log::formatting_ostream & dev::p2p::operator<< (boost::log::formatting_ostream &_strm, Node const &_node)
 
boost::log::formatting_ostream & dev::p2p::operator<< (boost::log::formatting_ostream &_strm, Node &_node)
 
std::ostream & dev::p2p::operator<< (std::ostream &_strm, NodeID const &_id)
 
boost::log::formatting_ostream & dev::p2p::operator<< (boost::log::formatting_ostream &_strm, PeerSessionInfo const &_peerSessionInfo)
 
std::ostream & dev::p2p::operator<< (std::ostream &_out, NodeIPEndpoint const &_ep)
 Simple stream output for a NodeIPEndpoint. More...
 

Variables

constexpr unsigned dev::p2p::c_protocolVersion = 1029
 Peer network protocol version. More...
 

Class Documentation

◆ dev::p2p::PeerSessionInfo

struct dev::p2p::PeerSessionInfo
Collaboration diagram for dev::p2p::PeerSessionInfo:
Class Members
set< CapDesc > caps
string clientVersion
string host
NodeID id
duration lastPing
unsigned short port

Macro Definition Documentation

◆ cnetdetails

#define cnetdetails   LOG(dev::p2p::g_netdetailsLogger::get())

◆ cnetlog

#define cnetlog   LOG(dev::p2p::g_netlogLogger::get())

◆ cnetnote

#define cnetnote   LOG(dev::p2p::g_netnoteLogger::get())

◆ NET_GLOBAL_LOGGER

#define NET_GLOBAL_LOGGER (   NAME,
  SEVERITY 
)
Value:
g_##NAME##Logger, boost::log::sources::severity_channel_logger_mt<>, \
(boost::log::keywords::severity = SEVERITY)(boost::log::keywords::channel = "net"))
BOOST_LOG_INLINE_GLOBAL_LOGGER_CTOR_ARGS(g_errorLogger, boost::log::sources::severity_channel_logger_mt<>,(boost::log::keywords::severity=VerbosityError)(boost::log::keywords::channel="error")) BOOST_LOG_INLINE_GLOBAL_LOGGER_CTOR_ARGS(g_warnLogger
boost::log::sources::severity_channel_logger<> Logger
Definition: Log.h:98