pub struct SyncNode {}Expand description
SyncNode is a node that downloads and validates the blockchain.
This node implements:
- NodeContext
- UtreexoNode<SyncNode, Chain>
see node_context and node.rs for more information.
Trait Implementations§
Source§impl NodeContext for SyncNode
impl NodeContext for SyncNode
Source§fn get_required_services(&self) -> ServiceFlags
fn get_required_services(&self) -> ServiceFlags
Get the required services for the SyncNode.
The SyncNode is active during IBD, and therefore requires that peers support:
NETWORK: the peer is capable of serving the entire blockchain.WITNESS: the peer is capable of serving blocks and transactions with witness data.UTREEXO_ARCHIVE: the peer is capable of serving inclusion proofs for the entire blockchain.
Source§const REQUEST_TIMEOUT: u64 = 120u64
const REQUEST_TIMEOUT: u64 = 120u64
How long we wait for a peer to respond to our request
Source§const MAX_INFLIGHT_REQUESTS: usize = 100usize
const MAX_INFLIGHT_REQUESTS: usize = 100usize
Max number of simultaneous inflight requests we allow
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 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 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 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 SyncNode
impl RefUnwindSafe for SyncNode
impl Send for SyncNode
impl Sync for SyncNode
impl Unpin for SyncNode
impl UnwindSafe for SyncNode
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