|
rippled
|
Slots is a container for validator's Slot and handles Slot update when a message is received from a validator. More...

Public Member Functions | |
| Slots (Logs &logs, SquelchHandler const &handler) | |
| ~Slots ()=default | |
| void | updateSlotAndSquelch (uint256 const &key, PublicKey const &validator, id_t id, protocol::MessageType type) |
| Calls Slot::update of Slot associated with the validator. More... | |
| void | deleteIdlePeers () |
| Check if peers stopped relaying messages and if slots stopped receiving messages from the validator. More... | |
| std::optional< std::uint16_t > | inState (PublicKey const &validator, PeerState state) const |
| Return number of peers in state. More... | |
| std::optional< std::uint16_t > | notInState (PublicKey const &validator, PeerState state) const |
| Return number of peers not in state. More... | |
| bool | inState (PublicKey const &validator, SlotState state) const |
| Return true if Slot is in state. More... | |
| std::set< id_t > | getSelected (PublicKey const &validator) |
| Get selected peers. More... | |
| std::unordered_map< typename Peer::id_t, std::tuple< PeerState, uint16_t, uint32_t, std::uint32_t > > | getPeers (PublicKey const &validator) |
| Get peers info. More... | |
| std::optional< SlotState > | getState (PublicKey const &validator) |
| Get Slot's state. More... | |
| void | deletePeer (id_t id, bool erase) |
| Called when a peer is deleted. More... | |
Private Types | |
| using | time_point = typename clock_type::time_point |
| using | id_t = typename Peer::id_t |
| using | messages = beast::aged_unordered_map< uint256, std::unordered_set< Peer::id_t >, clock_type, hardened_hash< strong_hash > > |
Private Member Functions | |
| bool | addPeerMessage (uint256 const &key, id_t id) |
| Add message/peer if have not seen this message from the peer. More... | |
Private Attributes | |
| hash_map< PublicKey, Slot< clock_type > > | slots_ |
| SquelchHandler const & | handler_ |
| Logs & | logs_ |
| const beast::Journal | journal_ |
Static Private Attributes | |
| static messages | peersWithMessage_ |
Slots is a container for validator's Slot and handles Slot update when a message is received from a validator.
It also handles Slot aging and checks for peers which are disconnected or stopped relaying the messages.
Definition at line 46 of file overlay/Slot.h.
|
private |
Definition at line 534 of file overlay/Slot.h.
|
private |
Definition at line 535 of file overlay/Slot.h.
|
private |
Definition at line 540 of file overlay/Slot.h.
| ripple::reduce_relay::Slots< clock_type >::Slots | ( | Logs & | logs, |
| SquelchHandler const & | handler | ||
| ) |
| app | Applicaton reference |
| handler | Squelch/unsquelch implementation |
Definition at line 547 of file overlay/Slot.h.
|
default |
| void ripple::reduce_relay::Slots< clock_type >::updateSlotAndSquelch | ( | uint256 const & | key, |
| PublicKey const & | validator, | ||
| id_t | id, | ||
| protocol::MessageType | type | ||
| ) |
Calls Slot::update of Slot associated with the validator.
| key | Message's hash |
| validator | Validator's public key |
| id | Peer's id which received the message |
| type | Received protocol message type |
Definition at line 698 of file overlay/Slot.h.
| void ripple::reduce_relay::Slots< clock_type >::deleteIdlePeers |
Check if peers stopped relaying messages and if slots stopped receiving messages from the validator.
Definition at line 733 of file overlay/Slot.h.
| std::optional<std::uint16_t> ripple::reduce_relay::Slots< clock_type >::inState | ( | PublicKey const & | validator, |
| PeerState | state | ||
| ) | const |
Return number of peers in state.
Definition at line 573 of file overlay/Slot.h.
| std::optional<std::uint16_t> ripple::reduce_relay::Slots< clock_type >::notInState | ( | PublicKey const & | validator, |
| PeerState | state | ||
| ) | const |
Return number of peers not in state.
Definition at line 583 of file overlay/Slot.h.
| bool ripple::reduce_relay::Slots< clock_type >::inState | ( | PublicKey const & | validator, |
| SlotState | state | ||
| ) | const |
Return true if Slot is in state.
Definition at line 593 of file overlay/Slot.h.
| std::set<id_t> ripple::reduce_relay::Slots< clock_type >::getSelected | ( | PublicKey const & | validator | ) |
Get selected peers.
Definition at line 603 of file overlay/Slot.h.
| std::unordered_map< typename Peer::id_t, std::tuple<PeerState, uint16_t, uint32_t, std::uint32_t> > ripple::reduce_relay::Slots< clock_type >::getPeers | ( | PublicKey const & | validator | ) |
Get peers info.
Return map of peer's state, count, and squelch expiration milliseconds.
Definition at line 617 of file overlay/Slot.h.
| std::optional<SlotState> ripple::reduce_relay::Slots< clock_type >::getState | ( | PublicKey const & | validator | ) |
Get Slot's state.
Definition at line 627 of file overlay/Slot.h.
| void ripple::reduce_relay::Slots< clock_type >::deletePeer | ( | id_t | id, |
| bool | erase | ||
| ) |
Called when a peer is deleted.
If the peer was selected to be the source of messages from the validator then squelched peers have to be unsquelched.
| id | Peer's id |
| erase | If true then erase the peer |
Definition at line 725 of file overlay/Slot.h.
|
private |
Add message/peer if have not seen this message from the peer.
A message is aged after IDLED seconds. Return true if added
Definition at line 665 of file overlay/Slot.h.
|
private |
Definition at line 651 of file overlay/Slot.h.
|
private |
Definition at line 652 of file overlay/Slot.h.
|
private |
Definition at line 653 of file overlay/Slot.h.
|
private |
Definition at line 654 of file overlay/Slot.h.
|
staticprivate |
Definition at line 659 of file overlay/Slot.h.
1.8.17