 |
Ethereum
PoC-8
The C++ Implementation of Ethereum
|
Go to the documentation of this file.
26 class CapabilityHostFace;
37 : m_host(
std::move(_host)), m_id(_peerID)
40 void setStatus(
unsigned _protocolVersion,
u256 const& _networkId,
u256 const& _totalDifficulty,
41 h256 const& _latestHash,
h256 const& _genesisHash);
43 std::string
validate(
h256 const& _hostGenesisHash,
unsigned _hostProtocolVersion,
44 u256 const& _hostNetworkId)
const;
50 time_t
lastAsk()
const {
return m_lastAsk; }
51 void setLastAsk(time_t _lastAsk) { m_lastAsk = _lastAsk; }
74 h256 _chainGenesPeersh);
78 h256 const& _startHash,
unsigned _count,
unsigned _skip,
bool _reverse);
79 void requestBlockHeaders(
unsigned _startNumber,
unsigned _count,
unsigned _skip,
bool _reverse);
94 std::shared_ptr<p2p::CapabilityHostFace> m_host;
101 time_t m_lastAsk = 0;
103 unsigned m_protocolVersion = 0;
110 u256 m_totalDifficulty;
112 bool m_requireTransactions =
false;
118 unsigned m_unknownNewBlocks = 0;
119 unsigned m_lastAskedHeaders = 0;
void requestBlockHeaders(h256 const &_startHash, unsigned _count, unsigned _skip, bool _reverse)
Request hashes for given parent hash.
void requestBlockBodies(h256s const &_blocks)
Request specified blocks from peer.
unsigned unknownNewBlocks() const
void requestReceipts(h256s const &_blocks)
Request receipts for specified blocks from peer.
void markBlockAsKnown(h256 const &_hash)
void incrementUnknownNewBlocks()
void setWaitingForTransactions(bool _value)
std::string validate(h256 const &_hostGenesisHash, unsigned _hostProtocolVersion, u256 const &_hostNetworkId) const
std::unordered_set< h256 > h256Hash
std::vector< h256 > h256s
boost::log::sources::severity_channel_logger<> Logger
void requestNodeData(h256s const &_hashes)
Request values for specified keys from peer.
bool isTransactionKnown(h256 const &_hash) const
EthereumPeer(std::shared_ptr< p2p::CapabilityHostFace > _host, NodeID const &_peerID, u256 const &)
Logger createLogger(int _severity, std::string const &_channel)
void setLatestHash(h256 const &_hash)
void setLastAsk(time_t _lastAsk)
bool isWaitingForTransactions() const
void requestStatus(u256 _hostNetworkId, u256 _chainTotalDifficulty, h256 _chainCurrentHash, h256 _chainGenesPeersh)
void setStatus(unsigned _protocolVersion, u256 const &_networkId, u256 const &_totalDifficulty, h256 const &_latestHash, h256 const &_genesisHash)
void markTransactionAsKnown(h256 const &_hash)
bool isBlockKnown(h256 const &_hash) const
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
bool isConversing() const
void setAsking(Asking _asking)
u256 totalDifficulty() const