 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
const MessageSizeMax = 2 << 22 // 4MB
    MessageSizeMax is a soft (recommended) maximum for network messages. One can write more, as the interface is a stream. But it is useful to bunch it up into multiple read/writes when the whole message is a single, large serialized object.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Conn ¶
type Conn interface {
	conn.PeerConn
	// NewStream constructs a new Stream over this conn.
	NewStream() (Stream, error)
}
    Conn is a connection to a remote peer. It multiplexes streams. Usually there is no need to use a Conn directly, but it may be useful to get information about the peer on the other side:
stream.Conn().RemotePeer()
type ConnHandler ¶
type ConnHandler func(Conn)
ConnHandler is the type of function used to listen for connections opened by the remote side.
type Connectedness ¶
type Connectedness int
Connectedness signals the capacity for a connection with a given node. It is used to signal to services and other peers whether a node is reachable.
const ( // NotConnected means no connection to peer, and no extra information (default) NotConnected Connectedness = iota // Connected means has an open, live connection to peer Connected // CanConnect means recently connected to peer, terminated gracefully CanConnect // CannotConnect means recently attempted connecting but failed to connect. // (should signal "made effort, failed") CannotConnect )
type Dialer ¶
type Dialer interface {
	// Peerstore returns the internal peerstore
	// This is useful to tell the dialer about a new address for a peer.
	// Or use one of the public keys found out over the network.
	Peerstore() peer.Peerstore
	// LocalPeer returns the local peer associated with this network
	LocalPeer() peer.ID
	// DialPeer establishes a connection to a given peer
	DialPeer(context.Context, peer.ID) (Conn, error)
	// ClosePeer closes the connection to a given peer
	ClosePeer(peer.ID) error
	// Connectedness returns a state signaling connection capabilities
	Connectedness(peer.ID) Connectedness
	// Peers returns the peers connected
	Peers() []peer.ID
	// Conns returns the connections in this Netowrk
	Conns() []Conn
	// ConnsToPeer returns the connections in this Netowrk for given peer.
	ConnsToPeer(p peer.ID) []Conn
	// Notify/StopNotify register and unregister a notifiee for signals
	Notify(Notifiee)
	StopNotify(Notifiee)
}
    Dialer represents a service that can dial out to peers (this is usually just a Network, but other services may not need the whole stack, and thus it becomes easier to mock)
type Network ¶
type Network interface {
	Dialer
	io.Closer
	// SetStreamHandler sets the handler for new streams opened by the
	// remote side. This operation is threadsafe.
	SetStreamHandler(StreamHandler)
	// SetConnHandler sets the handler for new connections opened by the
	// remote side. This operation is threadsafe.
	SetConnHandler(ConnHandler)
	// NewStream returns a new stream to given peer p.
	// If there is no connection to p, attempts to create one.
	NewStream(peer.ID) (Stream, error)
	// Listen tells the network to start listening on given multiaddrs.
	Listen(...ma.Multiaddr) error
	// ListenAddresses returns a list of addresses at which this network listens.
	ListenAddresses() []ma.Multiaddr
	// InterfaceListenAddresses returns a list of addresses at which this network
	// listens. It expands "any interface" addresses (/ip4/0.0.0.0, /ip6/::) to
	// use the known local interfaces.
	InterfaceListenAddresses() ([]ma.Multiaddr, error)
	// Process returns the network's Process
	Process() goprocess.Process
}
    Network is the interface used to connect to the outside world. It dials and listens for connections. it uses a Swarm to pool connnections (see swarm pkg, and peerstream.Swarm). Connections are encrypted with a TLS-like protocol.
type Notifiee ¶
type Notifiee interface {
	Listen(Network, ma.Multiaddr)      // called when network starts listening on an addr
	ListenClose(Network, ma.Multiaddr) // called when network starts listening on an addr
	Connected(Network, Conn)           // called when a connection opened
	Disconnected(Network, Conn)        // called when a connection closed
	OpenedStream(Network, Stream)      // called when a stream opened
	ClosedStream(Network, Stream)      // called when a stream closed
}
    Notifiee is an interface for an object wishing to receive notifications from a Network.
type Stream ¶
type Stream interface {
	io.Reader
	io.Writer
	io.Closer
	// Conn returns the connection this stream is part of.
	Conn() Conn
}
    Stream represents a bidirectional channel between two agents in the IPFS network. "agent" is as granular as desired, potentially being a "request -> reply" pair, or whole protocols. Streams are backed by SPDY streams underneath the hood.
type StreamHandler ¶
type StreamHandler func(Stream)
StreamHandler is the type of function used to listen for streams opened by the remote side.
       Directories
      ¶
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| Package mocknet provides a mock net.Network to test with. | Package mocknet provides a mock net.Network to test with. | 
| package swarm implements a connection muxer with a pair of channels to synchronize all network communication. | package swarm implements a connection muxer with a pair of channels to synchronize all network communication. |