libp2p

package
v0.0.0-...-2c4dd60 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2022 License: MIT Imports: 58 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PROTO_MAIN    protocol.ID = "/redwood/main/1.0.0"
	PROTO_BLOB    protocol.ID = "/redwood/blob/1.0.0"
	PROTO_HUSH    protocol.ID = "/redwood/hush/1.0.0"
	TransportName string      = "libp2p"
)

Variables

View Source
var (
	ErrWrongProtocol = errors.New("wrong protocol")
)

Functions

func IsValidKey

func IsValidKey(key []byte) bool

func NewAnnouncePeersTask

func NewAnnouncePeersTask(
	interval time.Duration,
	pm *peerManager,
) *announcePeersTask

func NewBootstrapNode

func NewBootstrapNode(
	port uint,
	bootstrapPeers []string,
	p2pKey cryptop2p.PrivKey,
	dohDNSResolverURL string,
	datastorePath string,
	encryptionConfig state.EncryptionConfig,
) *bootstrapNode

func NewConnectToPeersTask

func NewConnectToPeersTask(
	interval time.Duration,
	pm *peerManager,
) *connectToPeersTask

func NewDHTClient

func NewDHTClient(libp2pHost host.Host, dht DHT, peerManager PeerManager) *dhtClient

func NewPeerManager

func NewPeerManager(transport *transport, discoveryKey string, libp2pHost corehost.Host, dht DHT, store Store, peerStore swarm.PeerStore) *peerManager

func NewStore

func NewStore(db *state.DBTree) (*store, error)

func NewTransport

func NewTransport(
	port uint,
	reachableAt string,
	bootstrapPeers []string,
	datastorePath string,
	dohDNSResolverURL string,
	store Store,
	controllerHub tree.ControllerHub,
	keyStore identity.KeyStore,
	blobStore blob.Store,
	peerStore swarm.PeerStore,
) (*transport, error)

Types

type BootstrapNode

type BootstrapNode interface {
	process.Interface
	log.Logger
	Libp2pHost() p2phost.Host
	Libp2pPeerID() string
	DHT() *dht.IpfsDHT
	Peers() []peer.AddrInfo
	Peerstore() corepeerstore.Peerstore
}

type DHT

type DHT interface {
	Provide(context.Context, cid.Cid, bool) error
	FindProvidersAsync(ctx context.Context, key cid.Cid, count int) <-chan peer.AddrInfo
}

type DHTClient

type DHTClient interface {
	process.Interface
	AnnounceStateURIs(ctx context.Context, stateURIs types.Set[string])
	AnnounceBlobs(ctx context.Context, blobIDs types.Set[blob.ID])
	ProvidersOfStateURI(ctx context.Context, stateURI string) (<-chan prototree.TreePeerConn, error)
	ProvidersOfBlob(ctx context.Context, blobID blob.ID) (<-chan protoblob.BlobPeerConn, error)
}

type Msg

type Msg struct {
	Type    msgType     `json:"type"`
	Payload interface{} `json:"payload"`
}

func (*Msg) UnmarshalJSON

func (msg *Msg) UnmarshalJSON(bs []byte) error

type PeerManager

type PeerManager interface {
	process.Interface
	NewPeerConn(ctx context.Context, dialAddr string) (swarm.PeerConn, error)
	OnPeerFound(via string, pinfo peer.AddrInfo)
	OnConnectedToPeer(network network.Network, conn network.Conn)
	MakeConnectedPeerConn(stream network.Stream) *peerConn
	MakeDisconnectedPeerConn(pinfo peer.AddrInfo) (*peerConn, error)
	EnsureConnectedToAllPeers()
}

type PeerSet

type PeerSet struct {
	// contains filtered or unexported fields
}

func NewPeerSet

func NewPeerSet() PeerSet

func NewPeerSetFromStrings

func NewPeerSetFromStrings(ss []string) (PeerSet, error)

func (*PeerSet) AddString

func (set *PeerSet) AddString(s string) error

func (PeerSet) ContainsPeerID

func (set PeerSet) ContainsPeerID(peerID corepeer.ID) bool

func (PeerSet) ContainsPeerIDString

func (set PeerSet) ContainsPeerIDString(peerIDStr string) bool

func (PeerSet) Copy

func (set PeerSet) Copy() PeerSet

func (PeerSet) MultiaddrStrings

func (set PeerSet) MultiaddrStrings() []string

func (*PeerSet) Peers

func (set *PeerSet) Peers() PeerSet

func (*PeerSet) RemoveString

func (set *PeerSet) RemoveString(s string) error

func (PeerSet) Slice

func (set PeerSet) Slice() []corepeer.AddrInfo

type Store

type Store interface {
	StaticRelays() PeerSet
	AddStaticRelay(relayAddr string) error
	RemoveStaticRelay(relayAddr string) error

	DebugPrint()
}

type Transport

type Transport interface {
	process.Interface
	swarm.Transport
	protoauth.AuthTransport
	protoblob.BlobTransport
	protohush.HushTransport
	prototree.TreeTransport
	Libp2pPeerID() string
	ListenAddrs() []string
	Peers() []peer.AddrInfo
	AddStaticRelay(relayAddr string) error
	RemoveStaticRelay(relayAddr string) error
	StaticRelays() PeerSet
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL