Documentation ¶
Index ¶
- func HandleIBD(context IBDContext, incomingRoute *router.Route, outgoingRoute *router.Route, ...) error
- func HandleIBDBlockLocator(context HandleIBDBlockLocatorContext, incomingRoute *router.Route, ...) error
- func HandleIBDBlockRequests(context HandleIBDBlockRequestsContext, incomingRoute *router.Route, ...) error
- func HandlePruningPointAndItsAnticoneRequests(context PruningPointAndItsAnticoneRequestsContext, incomingRoute *router.Route, ...) error
- func HandlePruningPointProofRequests(context PruningPointProofRequestsContext, incomingRoute *router.Route, ...) error
- func HandleRelayBlockRequests(context RelayBlockRequestsContext, incomingRoute *router.Route, ...) error
- func HandleRelayInvs(context RelayInvsContext, incomingRoute *router.Route, ...) error
- func HandleRequestAnticone(context RequestAnticoneContext, incomingRoute *router.Route, ...) error
- func HandleRequestBlockLocator(context RequestBlockLocatorContext, incomingRoute *router.Route, ...) error
- func HandleRequestHeaders(context RequestHeadersContext, incomingRoute *router.Route, ...) error
- func HandleRequestIBDChainBlockLocator(context RequestIBDChainBlockLocatorContext, incomingRoute *router.Route, ...) error
- func HandleRequestPruningPointUTXOSet(context HandleRequestPruningPointUTXOSetContext, ...) error
- func SendVirtualSelectedParentInv(context SendVirtualSelectedParentInvContext, outgoingRoute *router.Route, ...) error
- type HandleIBDBlockLocatorContext
- type HandleIBDBlockRequestsContext
- type HandleRequestPruningPointUTXOSetContext
- type IBDContext
- type PruningPointAndItsAnticoneRequestsContext
- type PruningPointProofRequestsContext
- type RelayBlockRequestsContext
- type RelayInvsContext
- type RequestAnticoneContext
- type RequestBlockLocatorContext
- type RequestHeadersContext
- type RequestIBDChainBlockLocatorContext
- type SendVirtualSelectedParentInvContext
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandleIBD ¶
func HandleIBD(context IBDContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peerpkg.Peer) error
HandleIBD handles IBD
func HandleIBDBlockLocator ¶
func HandleIBDBlockLocator(context HandleIBDBlockLocatorContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peer.Peer) error
HandleIBDBlockLocator listens to appmessage.MsgIBDBlockLocator messages and sends the highest known block that's in the selected parent chain of `targetHash` to the requesting peer.
func HandleIBDBlockRequests ¶
func HandleIBDBlockRequests(context HandleIBDBlockRequestsContext, incomingRoute *router.Route, outgoingRoute *router.Route) error
HandleIBDBlockRequests listens to appmessage.MsgRequestRelayBlocks messages and sends their corresponding blocks to the requesting peer.
func HandlePruningPointAndItsAnticoneRequests ¶
func HandlePruningPointAndItsAnticoneRequests(context PruningPointAndItsAnticoneRequestsContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peerpkg.Peer) error
HandlePruningPointAndItsAnticoneRequests listens to appmessage.MsgRequestPruningPointAndItsAnticone messages and sends the pruning point and its anticone to the requesting peer.
func HandlePruningPointProofRequests ¶
func HandlePruningPointProofRequests(context PruningPointProofRequestsContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peerpkg.Peer) error
HandlePruningPointProofRequests listens to appmessage.MsgRequestPruningPointProof messages and sends the pruning point proof to the requesting peer.
func HandleRelayBlockRequests ¶
func HandleRelayBlockRequests(context RelayBlockRequestsContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peerpkg.Peer) error
HandleRelayBlockRequests listens to appmessage.MsgRequestRelayBlocks messages and sends their corresponding blocks to the requesting peer.
func HandleRelayInvs ¶
func HandleRelayInvs(context RelayInvsContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peerpkg.Peer) error
HandleRelayInvs listens to appmessage.MsgInvRelayBlock messages, requests their corresponding blocks if they are missing, adds them to the DAG and propagates them to the rest of the network.
func HandleRequestAnticone ¶
func HandleRequestAnticone(context RequestAnticoneContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peer.Peer) error
HandleRequestAnticone handles RequestAnticone messages
func HandleRequestBlockLocator ¶
func HandleRequestBlockLocator(context RequestBlockLocatorContext, incomingRoute *router.Route, outgoingRoute *router.Route) error
HandleRequestBlockLocator handles getBlockLocator messages
func HandleRequestHeaders ¶
func HandleRequestHeaders(context RequestHeadersContext, incomingRoute *router.Route, outgoingRoute *router.Route, peer *peer.Peer) error
HandleRequestHeaders handles RequestHeaders messages
func HandleRequestIBDChainBlockLocator ¶
func HandleRequestIBDChainBlockLocator(context RequestIBDChainBlockLocatorContext, incomingRoute *router.Route, outgoingRoute *router.Route) error
HandleRequestIBDChainBlockLocator handles getBlockLocator messages
func HandleRequestPruningPointUTXOSet ¶
func HandleRequestPruningPointUTXOSet(context HandleRequestPruningPointUTXOSetContext, incomingRoute, outgoingRoute *router.Route) error
HandleRequestPruningPointUTXOSet listens to appmessage.MsgRequestPruningPointUTXOSet messages and sends the pruning point UTXO set and block body.
func SendVirtualSelectedParentInv ¶
func SendVirtualSelectedParentInv(context SendVirtualSelectedParentInvContext, outgoingRoute *router.Route, peer *peerpkg.Peer) error
SendVirtualSelectedParentInv sends a peer the selected parent hash of the virtual
Types ¶
type HandleIBDBlockLocatorContext ¶
HandleIBDBlockLocatorContext is the interface for the context needed for the HandleIBDBlockLocator flow.
type HandleIBDBlockRequestsContext ¶
HandleIBDBlockRequestsContext is the interface for the context needed for the HandleIBDBlockRequests flow.
type HandleRequestPruningPointUTXOSetContext ¶
HandleRequestPruningPointUTXOSetContext is the interface for the context needed for the HandleRequestPruningPointUTXOSet flow.
type IBDContext ¶
type IBDContext interface { Domain() domain.Domain Config() *config.Config OnNewBlock(block *externalapi.DomainBlock) error OnNewBlockTemplate() error OnPruningPointUTXOSetOverride() error IsIBDRunning() bool TrySetIBDRunning(ibdPeer *peerpkg.Peer) bool UnsetIBDRunning() IsRecoverableError(err error) bool }
IBDContext is the interface for the context needed for the HandleIBD flow.
type PruningPointAndItsAnticoneRequestsContext ¶
type PruningPointAndItsAnticoneRequestsContext interface { Domain() domain.Domain Config() *config.Config }
PruningPointAndItsAnticoneRequestsContext is the interface for the context needed for the HandlePruningPointAndItsAnticoneRequests flow.
type PruningPointProofRequestsContext ¶
PruningPointProofRequestsContext is the interface for the context needed for the HandlePruningPointProofRequests flow.
type RelayBlockRequestsContext ¶
RelayBlockRequestsContext is the interface for the context needed for the HandleRelayBlockRequests flow.
type RelayInvsContext ¶
type RelayInvsContext interface { Domain() domain.Domain Config() *config.Config OnNewBlock(block *externalapi.DomainBlock) error OnNewBlockTemplate() error OnPruningPointUTXOSetOverride() error Broadcast(message appmessage.Message) error AddOrphan(orphanBlock *externalapi.DomainBlock) GetOrphanRoots(orphanHash *externalapi.DomainHash) ([]*externalapi.DomainHash, bool, error) IsOrphan(blockHash *externalapi.DomainHash) bool IsIBDRunning() bool IsRecoverableError(err error) bool IsNearlySynced() (bool, error) }
RelayInvsContext is the interface for the context needed for the HandleRelayInvs flow.
type RequestAnticoneContext ¶
RequestAnticoneContext is the interface for the context needed for the HandleRequestHeaders flow.
type RequestBlockLocatorContext ¶
RequestBlockLocatorContext is the interface for the context needed for the HandleRequestBlockLocator flow.
type RequestHeadersContext ¶
RequestHeadersContext is the interface for the context needed for the HandleRequestHeaders flow.
type RequestIBDChainBlockLocatorContext ¶
RequestIBDChainBlockLocatorContext is the interface for the context needed for the HandleRequestBlockLocator flow.
Source Files ¶
- block_locator.go
- handle_ibd_block_locator.go
- handle_ibd_block_requests.go
- handle_ibd_request_chain_block_locator.go
- handle_pruning_point_and_its_anticone_requests.go
- handle_pruning_point_proof_requests.go
- handle_relay_block_requests.go
- handle_relay_invs.go
- handle_request_anticone.go
- handle_request_block_locator.go
- handle_request_headers.go
- handle_request_pruning_point_utxo_set.go
- ibd.go
- ibd_progress_reporter.go
- ibd_with_headers_proof.go
- log.go
- send_virtual_selected_parent_inv.go