Documentation ¶
Overview ¶
The BasicVideoNetwork is a push-based streaming protocol. It works as follow:
- When a video is broadcasted, it's stored at a local broadcaster
- When a viewer wants to view a video, it sends a subscribe request to the network
- The network routes the request towards the broadcast node via kademlia routing
Index ¶
- Constants
- Variables
- func SetTranscodeSubTimeout(to time.Duration)
- type BasicBroadcaster
- func (br *BasicBroadcaster) AddListeningPeer(nw *BasicVideoNetwork, pid peer.ID)
- func (br *BasicBroadcaster) AddListeningStream(key string, os OutStream)
- func (b *BasicBroadcaster) Broadcast(seqNo uint64, data []byte) error
- func (b *BasicBroadcaster) Finish() error
- func (b *BasicBroadcaster) IsLive() bool
- func (b BasicBroadcaster) String() string
- type BasicInStream
- type BasicNetworkNode
- func (n *BasicNetworkNode) AddPeer(pi peerstore.PeerInfo, ttl time.Duration)
- func (bn *BasicNetworkNode) ClosestLocalPeers(strmID string) ([]peer.ID, error)
- func (n *BasicNetworkNode) Connect(ctx context.Context, pi peerstore.PeerInfo) error
- func (n *BasicNetworkNode) GetDHT() *kad.IpfsDHT
- func (n *BasicNetworkNode) GetOutStream(pid peer.ID) *BasicOutStream
- func (n *BasicNetworkNode) GetPeerInfo(p peer.ID) peerstore.PeerInfo
- func (n *BasicNetworkNode) GetPeers() []peer.ID
- func (n *BasicNetworkNode) Host() host.Host
- func (n *BasicNetworkNode) ID() peer.ID
- func (n *BasicNetworkNode) RefreshOutStream(pid peer.ID) *BasicOutStream
- func (n *BasicNetworkNode) RemovePeer(id peer.ID)
- func (n *BasicNetworkNode) RemoveStream(pid peer.ID)
- func (n *BasicNetworkNode) SetSignFun(sign func(data []byte) ([]byte, error))
- func (n *BasicNetworkNode) SetStreamHandler(pid protocol.ID, handler inet.StreamHandler)
- func (n *BasicNetworkNode) SetVerifyTranscoderSig(verify func(data []byte, sig []byte, strmID string) bool)
- func (n *BasicNetworkNode) Sign(data []byte) ([]byte, error)
- func (n *BasicNetworkNode) VerifyTranscoderSig(data []byte, sig []byte, strmID string) bool
- type BasicNotifiee
- func (bn *BasicNotifiee) ClosedStream(n net.Network, s net.Stream)
- func (bn *BasicNotifiee) Connected(n net.Network, conn net.Conn)
- func (bn *BasicNotifiee) Disconnected(n net.Network, conn net.Conn)
- func (bn *BasicNotifiee) HandleDisconnect(h func(pid peer.ID))
- func (bn *BasicNotifiee) Listen(n net.Network, addr ma.Multiaddr)
- func (bn *BasicNotifiee) ListenClose(n net.Network, addr ma.Multiaddr)
- func (bn *BasicNotifiee) OpenedStream(n net.Network, s net.Stream)
- type BasicOutStream
- type BasicRelayer
- func (br *BasicRelayer) AddListener(nw *BasicVideoNetwork, pid peer.ID)
- func (br *BasicRelayer) RelayFinishStream(nw *BasicVideoNetwork, fs FinishStreamMsg) error
- func (br *BasicRelayer) RelayMasterPlaylistData(nw *BasicVideoNetwork, mpld MasterPlaylistDataMsg) error
- func (br *BasicRelayer) RelayNodeStatusData(nw *BasicVideoNetwork, nsd NodeStatusDataMsg) error
- func (br *BasicRelayer) RelayStreamData(sd *StreamDataMsg) error
- func (br BasicRelayer) String() string
- type BasicReporter
- func (br *BasicReporter) GetBandwidthForPeer(peer.ID) metrics.Stats
- func (br *BasicReporter) GetBandwidthForProtocol(protocol.ID) metrics.Stats
- func (br *BasicReporter) GetBandwidthTotals() metrics.Stats
- func (br *BasicReporter) LogRecvMessage(num int64)
- func (br *BasicReporter) LogRecvMessageStream(num int64, prot protocol.ID, p peer.ID)
- func (br *BasicReporter) LogSentMessage(num int64)
- func (br *BasicReporter) LogSentMessageStream(num int64, prot protocol.ID, p peer.ID)
- type BasicSubscriber
- func (s *BasicSubscriber) ClosedStream(n inet.Network, st inet.Stream)
- func (s *BasicSubscriber) Connected(n inet.Network, conn inet.Conn)
- func (s *BasicSubscriber) Disconnected(n inet.Network, conn inet.Conn)
- func (s *BasicSubscriber) HandleConnection(conn inet.Conn)
- func (s *BasicSubscriber) InsertData(sd *StreamDataMsg) error
- func (s *BasicSubscriber) IsLive() bool
- func (s *BasicSubscriber) Listen(n inet.Network, m ma.Multiaddr)
- func (s *BasicSubscriber) ListenClose(n inet.Network, m ma.Multiaddr)
- func (s *BasicSubscriber) OpenedStream(n inet.Network, st inet.Stream)
- func (s BasicSubscriber) String() string
- func (s *BasicSubscriber) Subscribe(ctx context.Context, gotData func(seqNo uint64, data []byte, eof bool)) error
- func (s *BasicSubscriber) TranscoderSubscribe(ctx context.Context, gotData func(seqNo uint64, data []byte, eof bool)) error
- func (s *BasicSubscriber) Unsubscribe() error
- type BasicVideoNetwork
- func (n *BasicVideoNetwork) Connect(nodeID string, addrs []string) error
- func (n *BasicVideoNetwork) GetBroadcaster(strmID string) (stream.Broadcaster, error)
- func (n *BasicVideoNetwork) GetLocalStreams() []string
- func (n *BasicVideoNetwork) GetMasterPlaylist(p string, manifestID string) (chan *m3u8.MasterPlaylist, error)
- func (n *BasicVideoNetwork) GetNodeID() string
- func (n *BasicVideoNetwork) GetNodeStatus(nodeID string) (chan *lpnet.NodeStatus, error)
- func (n *BasicVideoNetwork) GetSubscriber(strmID string) (stream.Subscriber, error)
- func (n *BasicVideoNetwork) NewRelayer(strmID string, opcode Opcode) *BasicRelayer
- func (n *BasicVideoNetwork) Ping(nid string) (chan struct{}, error)
- func (n *BasicVideoNetwork) ReceivedTranscodeResponse(strmID string, gotResult func(transcodeResult map[string]string))
- func (n *BasicVideoNetwork) SendTranscodeResponse(broadcaster string, strmID string, transcodedVideos map[string]string) error
- func (n *BasicVideoNetwork) SetBroadcaster(strmID string, b *BasicBroadcaster)
- func (n *BasicVideoNetwork) SetSubscriber(strmID string, s *BasicSubscriber)
- func (n *BasicVideoNetwork) SetupProtocol() error
- func (n *BasicVideoNetwork) String() string
- func (n *BasicVideoNetwork) TranscodeSub(ctx context.Context, strmID string, ...) error
- func (n *BasicVideoNetwork) UpdateMasterPlaylist(strmID string, mpl *m3u8.MasterPlaylist) error
- type CancelSubMsg
- type FinishStreamMsg
- type GetMasterPlaylistReqMsg
- type InStream
- type LocalOutStream
- type MasterPlaylistDataMsg
- type Msg
- type NetworkNode
- type NodeStatusDataMsg
- type NodeStatusReqMsg
- type Opcode
- type OutStream
- type PeerCache
- type PingDataMsg
- type PongDataMsg
- type StreamDataMsg
- type SubReqMsg
- type TranscodeResponseMsg
- type TranscodeSubMsg
- type TranscodeSubMsg_b
- type VideoMuxer
Constants ¶
const ConnTimeout = 3 * time.Second
const DefaultBroadcasterBufferSegSendInterval = time.Second
const DefaultBroadcasterBufferSize = 3
const DefaultTranscodeResponseRelayDuplication = 2
const RelayGCTime = 60 * time.Second
const RelayTicker = 10 * time.Second
Variables ¶
var ConnFileWriteFreq = time.Duration(60) * time.Second
var ErrGetMasterPlaylist = errors.New("ErrGetMasterPlaylist")
var ErrHandleMsg = errors.New("ErrHandleMsg")
var ErrNoClosePeers = errors.New("NoClosePeers")
var ErrOutStream = errors.New("ErrOutStream")
var ErrProtocol = errors.New("ProtocolError")
var ErrSendMsg = errors.New("ErrSendMsg")
var ErrSubscriber = errors.New("ErrSubscriber")
var ErrTranscodeResponse = errors.New("TranscodeResponseError")
var ErrUnknownMsg = errors.New("UnknownMsgType")
var GetMasterPlaylistRelayWait = 10 * time.Second
var GetResponseWithRelayWait = 10 * time.Second
var InsertDataWaitTime = time.Second * 10
var MsgSentTimeCacheDuration = 2 * time.Second
var Protocol = protocol.ID("/livepeer_video/0.0.1")
var SubscriberDataInsertTimeout = time.Second * 300
var TranscodeSubTimeout = time.Second * 60
Functions ¶
func SetTranscodeSubTimeout ¶
Types ¶
type BasicBroadcaster ¶
type BasicBroadcaster struct { Network *BasicVideoNetwork StrmID string // contains filtered or unexported fields }
BasicBroadcaster is unique for a specific video stream. It keeps track of a list of listeners and a queue of video chunks. It won't start keeping track of things until there is at least 1 listener.
func (*BasicBroadcaster) AddListeningPeer ¶
func (br *BasicBroadcaster) AddListeningPeer(nw *BasicVideoNetwork, pid peer.ID)
func (*BasicBroadcaster) AddListeningStream ¶
func (br *BasicBroadcaster) AddListeningStream(key string, os OutStream)
func (*BasicBroadcaster) Broadcast ¶
func (b *BasicBroadcaster) Broadcast(seqNo uint64, data []byte) error
Broadcast sends a video chunk to the stream. The very first call to Broadcast kicks off a worker routine to do the broadcasting.
func (*BasicBroadcaster) Finish ¶
func (b *BasicBroadcaster) Finish() error
Finish signals the stream is finished. It cancels the broadcasting worker routine and sends the Finish message to all the listeners.
func (*BasicBroadcaster) IsLive ¶
func (b *BasicBroadcaster) IsLive() bool
func (BasicBroadcaster) String ¶
func (b BasicBroadcaster) String() string
type BasicInStream ¶
BasicStream is a libp2p stream wrapped in a reader and a writer.
func NewBasicInStream ¶
func NewBasicInStream(s net.Stream) *BasicInStream
NewBasicStream creates a stream from a libp2p raw stream.
func (*BasicInStream) ReceiveMessage ¶
func (bs *BasicInStream) ReceiveMessage() (Msg, error)
ReceiveMessage takes a message off the stream.
type BasicNetworkNode ¶
type BasicNetworkNode struct { Identity peer.ID // the local node's identity Kad *kad.IpfsDHT PeerHost host.Host // the network host (server+client) Network *BasicVideoNetwork // contains filtered or unexported fields }
func NewNode ¶
func NewNode(listenAddrs []ma.Multiaddr, priv crypto.PrivKey, pub crypto.PubKey, f *BasicNotifiee) (*BasicNetworkNode, error)
NewNode creates a new Livepeerd node.
func (*BasicNetworkNode) AddPeer ¶
func (n *BasicNetworkNode) AddPeer(pi peerstore.PeerInfo, ttl time.Duration)
func (*BasicNetworkNode) ClosestLocalPeers ¶
func (bn *BasicNetworkNode) ClosestLocalPeers(strmID string) ([]peer.ID, error)
func (*BasicNetworkNode) GetDHT ¶
func (n *BasicNetworkNode) GetDHT() *kad.IpfsDHT
func (*BasicNetworkNode) GetOutStream ¶
func (n *BasicNetworkNode) GetOutStream(pid peer.ID) *BasicOutStream
func (*BasicNetworkNode) GetPeerInfo ¶
func (n *BasicNetworkNode) GetPeerInfo(p peer.ID) peerstore.PeerInfo
func (*BasicNetworkNode) GetPeers ¶
func (n *BasicNetworkNode) GetPeers() []peer.ID
func (*BasicNetworkNode) Host ¶
func (n *BasicNetworkNode) Host() host.Host
func (*BasicNetworkNode) ID ¶
func (n *BasicNetworkNode) ID() peer.ID
func (*BasicNetworkNode) RefreshOutStream ¶
func (n *BasicNetworkNode) RefreshOutStream(pid peer.ID) *BasicOutStream
func (*BasicNetworkNode) RemovePeer ¶
func (n *BasicNetworkNode) RemovePeer(id peer.ID)
func (*BasicNetworkNode) RemoveStream ¶
func (n *BasicNetworkNode) RemoveStream(pid peer.ID)
func (*BasicNetworkNode) SetSignFun ¶
func (n *BasicNetworkNode) SetSignFun(sign func(data []byte) ([]byte, error))
func (*BasicNetworkNode) SetStreamHandler ¶
func (n *BasicNetworkNode) SetStreamHandler(pid protocol.ID, handler inet.StreamHandler)
func (*BasicNetworkNode) SetVerifyTranscoderSig ¶
func (n *BasicNetworkNode) SetVerifyTranscoderSig(verify func(data []byte, sig []byte, strmID string) bool)
func (*BasicNetworkNode) VerifyTranscoderSig ¶
func (n *BasicNetworkNode) VerifyTranscoderSig(data []byte, sig []byte, strmID string) bool
type BasicNotifiee ¶
type BasicNotifiee struct {
// contains filtered or unexported fields
}
BasicNotifiee gets called during important libp2p events
func NewBasicNotifiee ¶
func NewBasicNotifiee(mon *lpmon.Monitor) *BasicNotifiee
func (*BasicNotifiee) ClosedStream ¶
func (bn *BasicNotifiee) ClosedStream(n net.Network, s net.Stream)
called when a stream closed
func (*BasicNotifiee) Connected ¶
func (bn *BasicNotifiee) Connected(n net.Network, conn net.Conn)
called when a connection opened
func (*BasicNotifiee) Disconnected ¶
func (bn *BasicNotifiee) Disconnected(n net.Network, conn net.Conn)
called when a connection closed
func (*BasicNotifiee) HandleDisconnect ¶
func (bn *BasicNotifiee) HandleDisconnect(h func(pid peer.ID))
func (*BasicNotifiee) Listen ¶
func (bn *BasicNotifiee) Listen(n net.Network, addr ma.Multiaddr)
called when network starts listening on an addr
func (*BasicNotifiee) ListenClose ¶
func (bn *BasicNotifiee) ListenClose(n net.Network, addr ma.Multiaddr)
called when network starts listening on an addr
func (*BasicNotifiee) OpenedStream ¶
func (bn *BasicNotifiee) OpenedStream(n net.Network, s net.Stream)
called when a stream opened
type BasicOutStream ¶
BasicStream is a libp2p stream wrapped in a reader and a writer.
func NewBasicOutStream ¶
func NewBasicOutStream(s net.Stream) *BasicOutStream
NewBasicStream creates a stream from a libp2p raw stream.
func (*BasicOutStream) GetRemotePeer ¶
func (bs *BasicOutStream) GetRemotePeer() peer.ID
func (*BasicOutStream) SendMessage ¶
func (bs *BasicOutStream) SendMessage(opCode Opcode, data interface{}) error
SendMessage writes a message into the stream.
type BasicRelayer ¶
type BasicRelayer struct { Network *BasicVideoNetwork UpstreamPeer peer.ID LastRelay time.Time // contains filtered or unexported fields }
BasicRelayer relays video segments to listners. Unlike BasicBroadcaster, BasicRelayer is does NOT have a worker - it sends out the chunks to its listeners as soon as it gets one from the network.
func (*BasicRelayer) AddListener ¶
func (br *BasicRelayer) AddListener(nw *BasicVideoNetwork, pid peer.ID)
func (*BasicRelayer) RelayFinishStream ¶
func (br *BasicRelayer) RelayFinishStream(nw *BasicVideoNetwork, fs FinishStreamMsg) error
func (*BasicRelayer) RelayMasterPlaylistData ¶
func (br *BasicRelayer) RelayMasterPlaylistData(nw *BasicVideoNetwork, mpld MasterPlaylistDataMsg) error
func (*BasicRelayer) RelayNodeStatusData ¶
func (br *BasicRelayer) RelayNodeStatusData(nw *BasicVideoNetwork, nsd NodeStatusDataMsg) error
func (*BasicRelayer) RelayStreamData ¶
func (br *BasicRelayer) RelayStreamData(sd *StreamDataMsg) error
RelayStreamData sends a StreamDataMsg to its listeners
func (BasicRelayer) String ¶
func (br BasicRelayer) String() string
type BasicReporter ¶
type BasicReporter struct{}
func (*BasicReporter) GetBandwidthForPeer ¶
func (br *BasicReporter) GetBandwidthForPeer(peer.ID) metrics.Stats
func (*BasicReporter) GetBandwidthForProtocol ¶
func (br *BasicReporter) GetBandwidthForProtocol(protocol.ID) metrics.Stats
func (*BasicReporter) GetBandwidthTotals ¶
func (br *BasicReporter) GetBandwidthTotals() metrics.Stats
func (*BasicReporter) LogRecvMessage ¶
func (br *BasicReporter) LogRecvMessage(num int64)
func (*BasicReporter) LogRecvMessageStream ¶
func (*BasicReporter) LogSentMessage ¶
func (br *BasicReporter) LogSentMessage(num int64)
func (*BasicReporter) LogSentMessageStream ¶
type BasicSubscriber ¶
type BasicSubscriber struct { Network *BasicVideoNetwork // networkStream *BasicStream StrmID string UpstreamPeer peer.ID // contains filtered or unexported fields }
BasicSubscriber keeps track of
func (*BasicSubscriber) ClosedStream ¶
func (s *BasicSubscriber) ClosedStream(n inet.Network, st inet.Stream)
func (*BasicSubscriber) Connected ¶
func (s *BasicSubscriber) Connected(n inet.Network, conn inet.Conn)
func (*BasicSubscriber) Disconnected ¶
func (s *BasicSubscriber) Disconnected(n inet.Network, conn inet.Conn)
func (*BasicSubscriber) HandleConnection ¶
func (s *BasicSubscriber) HandleConnection(conn inet.Conn)
Notifiee
func (*BasicSubscriber) InsertData ¶
func (s *BasicSubscriber) InsertData(sd *StreamDataMsg) error
func (*BasicSubscriber) IsLive ¶
func (s *BasicSubscriber) IsLive() bool
func (*BasicSubscriber) ListenClose ¶
func (s *BasicSubscriber) ListenClose(n inet.Network, m ma.Multiaddr)
func (*BasicSubscriber) OpenedStream ¶
func (s *BasicSubscriber) OpenedStream(n inet.Network, st inet.Stream)
func (BasicSubscriber) String ¶
func (s BasicSubscriber) String() string
func (*BasicSubscriber) Subscribe ¶
func (s *BasicSubscriber) Subscribe(ctx context.Context, gotData func(seqNo uint64, data []byte, eof bool)) error
Subscribe kicks off a go routine that calls the gotData func for every new video chunk
func (*BasicSubscriber) TranscoderSubscribe ¶
func (*BasicSubscriber) Unsubscribe ¶
func (s *BasicSubscriber) Unsubscribe() error
Unsubscribe unsubscribes from the broadcast
type BasicVideoNetwork ¶
type BasicVideoNetwork struct { NetworkNode NetworkNode // contains filtered or unexported fields }
BasicVideoNetwork implements the VideoNetwork interface. It creates a kademlia network using libp2p. It does push-based video delivery, and handles the protocol in the background.
func NewBasicVideoNetwork ¶
func NewBasicVideoNetwork(n *BasicNetworkNode, publicIP string, port int) (*BasicVideoNetwork, error)
NewBasicVideoNetwork creates a libp2p node, handle the basic (push-based) video protocol.
func (*BasicVideoNetwork) Connect ¶
func (n *BasicVideoNetwork) Connect(nodeID string, addrs []string) error
Connect connects a node to the Livepeer network.
func (*BasicVideoNetwork) GetBroadcaster ¶
func (n *BasicVideoNetwork) GetBroadcaster(strmID string) (stream.Broadcaster, error)
GetBroadcaster gets a broadcaster for a streamID. If it doesn't exist, create a new one.
func (*BasicVideoNetwork) GetLocalStreams ¶
func (n *BasicVideoNetwork) GetLocalStreams() []string
func (*BasicVideoNetwork) GetMasterPlaylist ¶
func (n *BasicVideoNetwork) GetMasterPlaylist(p string, manifestID string) (chan *m3u8.MasterPlaylist, error)
GetMasterPlaylist issues a request to the broadcaster for the MasterPlaylist and returns the channel to the playlist. The broadcaster should send the response back as soon as it gets the request.
func (*BasicVideoNetwork) GetNodeID ¶
func (n *BasicVideoNetwork) GetNodeID() string
GetNodeID gets the node id
func (*BasicVideoNetwork) GetNodeStatus ¶
func (n *BasicVideoNetwork) GetNodeStatus(nodeID string) (chan *lpnet.NodeStatus, error)
func (*BasicVideoNetwork) GetSubscriber ¶
func (n *BasicVideoNetwork) GetSubscriber(strmID string) (stream.Subscriber, error)
GetSubscriber gets a subscriber for a streamID. If it doesn't exist, create a new one.
func (*BasicVideoNetwork) NewRelayer ¶
func (n *BasicVideoNetwork) NewRelayer(strmID string, opcode Opcode) *BasicRelayer
NewRelayer creates a new relayer.
func (*BasicVideoNetwork) Ping ¶
func (n *BasicVideoNetwork) Ping(nid string) (chan struct{}, error)
func (*BasicVideoNetwork) ReceivedTranscodeResponse ¶
func (n *BasicVideoNetwork) ReceivedTranscodeResponse(strmID string, gotResult func(transcodeResult map[string]string))
ReceivedTranscodeResponse sends a request and registers the callback for when the broadcaster receives transcode results.
func (*BasicVideoNetwork) SendTranscodeResponse ¶
func (n *BasicVideoNetwork) SendTranscodeResponse(broadcaster string, strmID string, transcodedVideos map[string]string) error
SendTranscodeResponse sends the transcode result to the broadcast node.
func (*BasicVideoNetwork) SetBroadcaster ¶
func (n *BasicVideoNetwork) SetBroadcaster(strmID string, b *BasicBroadcaster)
func (*BasicVideoNetwork) SetSubscriber ¶
func (n *BasicVideoNetwork) SetSubscriber(strmID string, s *BasicSubscriber)
func (*BasicVideoNetwork) SetupProtocol ¶
func (n *BasicVideoNetwork) SetupProtocol() error
SetupProtocol sets up the protocol so we can handle incoming messages
func (*BasicVideoNetwork) String ¶
func (n *BasicVideoNetwork) String() string
func (*BasicVideoNetwork) TranscodeSub ¶
func (n *BasicVideoNetwork) TranscodeSub(ctx context.Context, strmID string, gotData func(seqNo uint64, data []byte, eof bool)) error
SendTranscodeSub requests a transcoder subscription from the broadcast node.
func (*BasicVideoNetwork) UpdateMasterPlaylist ¶
func (n *BasicVideoNetwork) UpdateMasterPlaylist(strmID string, mpl *m3u8.MasterPlaylist) error
UpdateMasterPlaylist updates the copy of the master playlist so any node can request it.
type CancelSubMsg ¶
type CancelSubMsg struct {
StrmID string
}
type FinishStreamMsg ¶
type FinishStreamMsg struct {
StrmID string
}
type GetMasterPlaylistReqMsg ¶
type GetMasterPlaylistReqMsg struct {
ManifestID string
}
type LocalOutStream ¶
type LocalOutStream struct {
// contains filtered or unexported fields
}
func NewLocalOutStream ¶
func NewLocalOutStream(s *BasicSubscriber) *LocalOutStream
func (*LocalOutStream) GetRemotePeer ¶
func (bs *LocalOutStream) GetRemotePeer() peer.ID
func (*LocalOutStream) SendMessage ¶
func (bs *LocalOutStream) SendMessage(opCode Opcode, data interface{}) error
type MasterPlaylistDataMsg ¶
type Msg ¶
type Msg struct { Op Opcode Data interface{} }
func (Msg) MarshalJSON ¶
func (*Msg) UnmarshalJSON ¶
type NetworkNode ¶
type NetworkNode interface { ID() peer.ID Host() host.Host GetOutStream(pid peer.ID) *BasicOutStream RefreshOutStream(pid peer.ID) *BasicOutStream RemoveStream(pid peer.ID) GetPeers() []peer.ID GetPeerInfo(peer.ID) peerstore.PeerInfo Connect(context.Context, peerstore.PeerInfo) error AddPeer(peerstore.PeerInfo, time.Duration) RemovePeer(peer.ID) ClosestLocalPeers(strmID string) ([]peer.ID, error) GetDHT() *kad.IpfsDHT SetStreamHandler(pid protocol.ID, handler inet.StreamHandler) SetSignFun(sign func(data []byte) ([]byte, error)) Sign(data []byte) ([]byte, error) SetVerifyTranscoderSig(verify func(data []byte, sig []byte, strmID string) bool) VerifyTranscoderSig(data []byte, sig []byte, strmID string) bool }
type NodeStatusDataMsg ¶
type NodeStatusReqMsg ¶
type NodeStatusReqMsg struct {
NodeID string
}
type PeerCache ¶
type PingDataMsg ¶
type PingDataMsg string
type PongDataMsg ¶
type PongDataMsg string
type StreamDataMsg ¶
type TranscodeResponseMsg ¶
type TranscodeSubMsg ¶
func (TranscodeSubMsg) BytesForSigning ¶
func (ts TranscodeSubMsg) BytesForSigning() []byte
func (*TranscodeSubMsg) GobDecode ¶
func (ts *TranscodeSubMsg) GobDecode(data []byte) error
func (TranscodeSubMsg) GobEncode ¶
func (ts TranscodeSubMsg) GobEncode() ([]byte, error)
type TranscodeSubMsg_b ¶
struct that can be handled by gob; multiaddr can't