10 static_assert(
sizeof(std::chrono::system_clock::duration::rep) >= 8,
"system_clock is expected to be at least 64 bits");
11 typedef std::chrono::system_clock::duration::rep
tstamp;
64 case self :
return "self connect";
68 case forked :
return "chain is forked";
69 case unlinkable :
return "unlinkable block received";
74 case benign_other :
return "some other non-fatal condition, possibly unknown block";
75 default :
return "some crazy reason";
101 case none :
return "none";
104 case normal :
return "normal";
105 default:
return "undefined mode";
152 (last_irreversible_block_num)(last_irreversible_block_id)
155 (network_version)(chain_id)(node_id)(key)
156 (time)(token)(sig)(p2p_address)
157 (last_irreversible_block_num)(last_irreversible_block_id)
159 (
os)(agent)(generation) )
constexpr size_t max_handshake_str_length
std::chrono::system_clock::duration::rep tstamp
constexpr auto modes_str(id_list_modes m)
@ duplicate
the connection is redundant
@ self
the connection is to itself
@ no_reason
no reason to go away
@ wrong_chain
the peer's chain id doesn't match
@ wrong_version
the peer's network version doesn't match
@ unlinkable
the peer sent a block we couldn't use
@ bad_transaction
the peer sent a transaction that failed verification
@ fatal_other
a catch-all for errors we don't have discriminated
@ forked
the peer's irreversible blocks are different
@ authentication
peer failed authenicatio
@ validation
the peer sent a block that failed validation
@ benign_other
reasons such as a timeout. not fatal but warrant resetting
std::variant< handshake_message, chain_size_message, go_away_message, time_message, notice_message, request_message, sync_request_message, signed_block, packed_transaction > net_message
constexpr auto reason_str(go_away_reason rsn)
constexpr size_t max_p2p_address_length
#define FC_REFLECT(TYPE, MEMBERS)
Specializes fc::reflector for TYPE.
block_id_type last_irreversible_block_id
uint32_t last_irreversible_block_num
go_away_message(go_away_reason r=no_reason)
fc::sha256 node_id
for duplicate notification
chain_id_type chain_id
used to identify chain
uint16_t network_version
incremental value above a computed base
uint32_t last_irreversible_block_num
fc::sha256 node_id
used to identify peers and prevent self-connect
fc::sha256 token
digest of time to prove we own the private key of the key above
chain::public_key_type key
authentication key; may be a producer or peer key, or empty
chain::signature_type sig
signature for the digest
block_id_type last_irreversible_block_id
ordered_blk_ids known_blocks
ordered_txn_ids known_trx
ordered_blk_ids req_blocks
tstamp xmt
transmit timestamp
tstamp dst
destination timestamp
tstamp rec
receive timestamp
tstamp org
origin timestamp