pub struct RunningNode {
pub(crate) last_address_rearrange: Instant,
pub(crate) last_invs: HashMap<BlockHash, (Instant, Vec<u32>)>,
pub(crate) inflight_filters: BTreeMap<u32, BlockFilter>,
}Fields§
§last_address_rearrange: Instant§last_invs: HashMap<BlockHash, (Instant, Vec<u32>)>To find peers with a good connectivity, keep track of what peers sent us an inv message for a block, in the first 5 seconds after we get the first inv message. If we ever decide to disconnect a peer, we should disconnect the ones that didn’t send us an inv message in a timely manner, but keep the ones that notified us of a new blocks the fastest. We also keep the moment we received the first inv message
inflight_filters: BTreeMap<u32, BlockFilter>Trait Implementations§
Source§impl Clone for RunningNode
impl Clone for RunningNode
Source§fn clone(&self) -> RunningNode
fn clone(&self) -> RunningNode
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RunningNode
impl Debug for RunningNode
Source§impl Default for RunningNode
impl Default for RunningNode
Source§impl NodeContext for RunningNode
impl NodeContext for RunningNode
Source§const REQUEST_TIMEOUT: u64 = 120u64
const REQUEST_TIMEOUT: u64 = 120u64
How long we wait for a peer to respond to our request
fn get_required_services(&self) -> ServiceFlags
Source§const MAX_OUTGOING_PEERS: usize = 10usize
const MAX_OUTGOING_PEERS: usize = 10usize
Max number of simultaneous connections we initiates we are willing to hold
Source§const ASK_FOR_PEERS_INTERVAL: u64 = 3_600u64
const ASK_FOR_PEERS_INTERVAL: u64 = 3_600u64
We ask for peers every ASK_FOR_PEERS_INTERVAL seconds
Source§const PEER_DB_DUMP_INTERVAL: u64 = 30u64
const PEER_DB_DUMP_INTERVAL: u64 = 30u64
Save our database of peers every PEER_DB_DUMP_INTERVAL seconds
Source§const TRY_NEW_CONNECTION: u64 = 10u64
const TRY_NEW_CONNECTION: u64 = 10u64
Attempt to open a new connection (if needed) every TRY_NEW_CONNECTION seconds
Source§const ASSUME_STALE: u64 = 900u64
const ASSUME_STALE: u64 = 900u64
If ASSUME_STALE seconds passed since our last tip update, treat it as stale
Source§const IBD_REQUEST_BLOCKS_AGAIN: u64 = 30u64
const IBD_REQUEST_BLOCKS_AGAIN: u64 = 30u64
While on IBD, if we’ve been without blocks for this long, ask for headers again
Source§const MAX_INFLIGHT_REQUESTS: usize = 1_000usize
const MAX_INFLIGHT_REQUESTS: usize = 1_000usize
Max number of simultaneous inflight requests we allow
Source§const FEELER_INTERVAL: u64 = 30u64
const FEELER_INTERVAL: u64 = 30u64
Interval at which we open new feeler connections
Source§const ADDRESS_REARRANGE_INTERVAL: u64 = 3_600u64
const ADDRESS_REARRANGE_INTERVAL: u64 = 3_600u64
Interval at which we rearrange our addresses
Source§const BLOCK_CHECK_INTERVAL: u64 = 300u64
const BLOCK_CHECK_INTERVAL: u64 = 300u64
How often we check if we haven’t missed a block
Source§const SEND_ADDRESSES_INTERVAL: u64 = 3_600u64
const SEND_ADDRESSES_INTERVAL: u64 = 3_600u64
How often we send our addresses to our peers
Source§const CONNECTION_TIMEOUT: u64 = 10u64
const CONNECTION_TIMEOUT: u64 = 10u64
How long should we wait for a peer to respond our connection request. This shouldn’t be
greater than
TRY_NEW_CONNECTION in order to clear timed-out requests at the same pace.Source§const BLOCKS_PER_GETDATA: usize = 5usize
const BLOCKS_PER_GETDATA: usize = 5usize
How many blocks we can ask in the same request
Source§const MAX_CONCURRENT_GETDATA: usize = 10usize
const MAX_CONCURRENT_GETDATA: usize = 10usize
How many concurrent GETDATA packages we can send at the same time
Source§const MAINTENANCE_TICK: Duration = _
const MAINTENANCE_TICK: Duration = _
How often we perform the main loop maintenance tasks (checking for timeouts, peers, etc.)
Source§const NEW_CONNECTIONS_BATCH_SIZE: usize = 4usize
const NEW_CONNECTIONS_BATCH_SIZE: usize = 4usize
How many connections we try at once
Auto Trait Implementations§
impl Freeze for RunningNode
impl RefUnwindSafe for RunningNode
impl Send for RunningNode
impl Sync for RunningNode
impl Unpin for RunningNode
impl UnwindSafe for RunningNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more