Documentation ¶
Overview ¶
Package decision implements the decision engine for the bitswap service.
Index ¶
- type Engine
- func (e *Engine) AddBlocks(ctx context.Context, ks []cid.Cid)
- func (e *Engine) LedgerForPeer(p peer.ID) *Receipt
- func (e *Engine) MessageReceived(ctx context.Context, p peer.ID, m bsmsg.BitSwapMessage)
- func (e *Engine) MessageSent(p peer.ID, m bsmsg.BitSwapMessage)
- func (e *Engine) Outbox() <-chan (<-chan *Envelope)
- func (e *Engine) PeerConnected(p peer.ID)
- func (e *Engine) PeerDisconnected(p peer.ID)
- func (e *Engine) Peers() []peer.ID
- func (e *Engine) SendTicketAcks(target peer.ID, ticketAcks []tickets.TicketAck)
- func (e *Engine) SendTickets(target peer.ID, tickets []tickets.Ticket)
- func (e *Engine) StartWorkers(ctx context.Context, px process.Process)
- func (e *Engine) TicketAckOutbox() chan *Envelope
- func (e *Engine) TicketOutbox() chan *Envelope
- func (e *Engine) WantlistForPeer(p peer.ID) (out []wl.Entry)
- type Envelope
- type PeerTagger
- type Receipt
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine manages sending requested blocks to peers.
func NewEngine ¶
func NewEngine(ctx context.Context, bs bstore.Blockstore, peerTagger PeerTagger, ts tickets.TicketStore) *Engine
NewEngine creates a new block sending engine for the given block store
func (*Engine) AddBlocks ¶
AddBlocks is called when new blocks are received and added to a block store, meaning there may be peers who want those blocks, so we should send the blocks to them.
func (*Engine) LedgerForPeer ¶
LedgerForPeer returns aggregated data about blocks swapped and communication with a given peer.
func (*Engine) MessageReceived ¶
MessageReceived performs book-keeping. Returns error if passed invalid arguments.
func (*Engine) MessageSent ¶
func (e *Engine) MessageSent(p peer.ID, m bsmsg.BitSwapMessage)
MessageSent is called when a message has successfully been sent out, to record changes.
func (*Engine) PeerConnected ¶
PeerConnected is called when a new peer connects, meaning we should start sending blocks.
func (*Engine) PeerDisconnected ¶
PeerDisconnected is called when a peer disconnects.
func (*Engine) SendTicketAcks ¶
func (*Engine) StartWorkers ¶
Start up workers to handle requests from other nodes for the data on this node
func (*Engine) TicketAckOutbox ¶
func (*Engine) TicketOutbox ¶
type Envelope ¶
type Envelope struct { // Peer is the intended recipient. Peer peer.ID // Message is the payload. Message bsmsg.BitSwapMessage // A callback to notify the decision queue that the task is complete Sent func() }
Envelope contains a message for a Peer.
type PeerTagger ¶
PeerTagger covers the methods on the connection manager used by the decision engine to tag peers