coreapi: swarm interface

License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>


This commit was moved from ipfs/interface-go-ipfs-core@bc2ae0a441

This commit was moved from ipfs/boxo@398a8ffdf5
This commit is contained in:
Łukasz Magiera 2018-03-10 18:54:58 +01:00
parent ba7a34448e
commit 8404b8263d

37
core/coreiface/swarm.go Normal file
View File

@ -0,0 +1,37 @@
package iface
import (
"time"
"context"
ma "gx/ipfs/QmWWQ2Txc2c6tqjsBpzg5Ar652cHPGNsQQp2SejkNmkUMb/go-multiaddr"
peer "gx/ipfs/QmZoWKhxUmZ2seW4BzX6fJkNR8hh9PsGModr7q171yq2SS/go-libp2p-peer"
)
// PeerInfo contains information about a peer
type PeerInfo interface {
// ID returns PeerID
ID() peer.ID
// Address returns the multiaddress via which we are connected with the peer
Address() ma.Multiaddr
// Latency returns last known round trip time to the peer
Latency() time.Duration
// Streams returns list of streams established with the peer
// TODO: should this return multicodecs?
Streams() []string
}
// SwarmAPI specifies the interface to libp2p swarm
type SwarmAPI interface {
// Connect to a given address
Connect(context.Context, ma.Multiaddr) error
// Disconnect from a given address
Disconnect(context.Context, ma.Multiaddr) error
// Peers returns the list of peers we are connected to
Peers(context.Context) ([]PeerInfo, error)
}