Documentation ¶
Index ¶
- Constants
- Variables
- type ContentFilter
- type ContentTopicSet
- type FilterError
- type FilterParameters
- type FilterSubscribeOption
- func DefaultSubscriptionOptions() []FilterSubscribeOption
- func WithAutomaticPeerSelection(fromThesePeers ...peer.ID) FilterSubscribeOption
- func WithAutomaticRequestId() FilterSubscribeOption
- func WithFastestPeerSelection(ctx context.Context, fromThesePeers ...peer.ID) FilterSubscribeOption
- func WithPeer(p peer.ID) FilterSubscribeOption
- func WithRequestId(requestId []byte) FilterSubscribeOption
- type FilterSubscribeParameters
- type FilterUnsubscribeOption
- type FilterUnsubscribeParameters
- type Option
- type PeerSet
- type PeerSubscription
- type PubsubTopics
- type SubscribersMap
- func (sub *SubscribersMap) Clear()
- func (sub *SubscribersMap) Count() int
- func (sub *SubscribersMap) Delete(peerID peer.ID, pubsubTopic string, contentTopics []string) error
- func (sub *SubscribersMap) DeleteAll(peerID peer.ID) error
- func (sub *SubscribersMap) FlagAsFailure(peerID peer.ID)
- func (sub *SubscribersMap) FlagAsSuccess(peerID peer.ID)
- func (sub *SubscribersMap) Get(peerID peer.ID) (PubsubTopics, bool)
- func (sub *SubscribersMap) Has(peerID peer.ID) bool
- func (sub *SubscribersMap) IsFailedPeer(peerID peer.ID) bool
- func (sub *SubscribersMap) Items(pubsubTopic string, contentTopic string) <-chan peer.ID
- func (sub *SubscribersMap) RemoveAll()
- func (sub *SubscribersMap) Set(peerID peer.ID, pubsubTopic string, contentTopics []string)
- type SubscriptionDetails
- type SubscriptionSet
- type SubscriptionsMap
- func (sub *SubscriptionsMap) Clear()
- func (sub *SubscriptionsMap) Delete(subscription *SubscriptionDetails) error
- func (sub *SubscriptionsMap) Has(peerID peer.ID, topic string, contentTopics ...string) bool
- func (sub *SubscriptionsMap) IsSubscribedTo(peerID peer.ID) bool
- func (sub *SubscriptionsMap) NewSubscription(peerID peer.ID, topic string, contentTopics []string) *SubscriptionDetails
- func (sub *SubscriptionsMap) Notify(peerID peer.ID, envelope *protocol.Envelope)
- type WakuFilterFullNode
- type WakuFilterLightnode
- func (wf *WakuFilterLightnode) FilterSubscription(peerID peer.ID, contentFilter ContentFilter) (*SubscriptionDetails, error)
- func (wf *WakuFilterLightnode) IsSubscriptionAlive(ctx context.Context, subscription *SubscriptionDetails) error
- func (wf *WakuFilterLightnode) Ping(ctx context.Context, peerID peer.ID) error
- func (wf *WakuFilterLightnode) SetHost(h host.Host)
- func (wf *WakuFilterLightnode) Start(ctx context.Context) error
- func (wf *WakuFilterLightnode) Stop()
- func (wf *WakuFilterLightnode) Subscribe(ctx context.Context, contentFilter ContentFilter, ...) (*SubscriptionDetails, error)
- func (wf *WakuFilterLightnode) Subscriptions() []*SubscriptionDetails
- func (wf *WakuFilterLightnode) Unsubscribe(ctx context.Context, contentFilter ContentFilter, ...) (<-chan WakuFilterPushResult, error)
- func (wf *WakuFilterLightnode) UnsubscribeAll(ctx context.Context, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)
- func (wf *WakuFilterLightnode) UnsubscribeWithSubscription(ctx context.Context, sub *SubscriptionDetails, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)
- type WakuFilterPushResult
Constants ¶
const DefaultMaxSubscriptions = 1000
const FilterPushID_v20beta1 = libp2pProtocol.ID("/vac/waku/filter-push/2.0.0-beta1")
FilterPushID_v20beta1 is the current Waku Filter protocol identifier used to allow filter service nodes to push messages matching registered subscriptions to this client.
const FilterSubscribeID_v20beta1 = libp2pProtocol.ID("/vac/waku/filter-subscribe/2.0.0-beta1")
FilterSubscribeID_v20beta1 is the current Waku Filter protocol identifier for servers to allow filter clients to subscribe, modify, refresh and unsubscribe a desired set of filter criteria
const MaxContentTopicsPerRequest = 30
const MaxCriteriaPerSubscription = 1000
const MessagePushTimeout = 20 * time.Second
Variables ¶
var (
ErrNoPeersAvailable = errors.New("no suitable remote peers")
)
var ErrNotFound = errors.New("not found")
Functions ¶
This section is empty.
Types ¶
type ContentFilter ¶
type ContentTopicSet ¶ added in v0.6.0
type ContentTopicSet map[string]struct{}
type FilterError ¶ added in v0.6.0
func NewFilterError ¶ added in v0.6.0
func NewFilterError(code int, message string) FilterError
func (*FilterError) Error ¶ added in v0.6.0
func (e *FilterError) Error() string
type FilterParameters ¶
type FilterSubscribeOption ¶
type FilterSubscribeOption func(*FilterSubscribeParameters)
func DefaultSubscriptionOptions ¶ added in v0.6.0
func DefaultSubscriptionOptions() []FilterSubscribeOption
func WithAutomaticPeerSelection ¶
func WithAutomaticPeerSelection(fromThesePeers ...peer.ID) FilterSubscribeOption
WithAutomaticPeerSelection is an option used to randomly select a peer from the peer store. If a list of specific peers is passed, the peer will be chosen from that list assuming it supports the chosen protocol, otherwise it will chose a peer from the node peerstore
func WithAutomaticRequestId ¶ added in v0.6.0
func WithAutomaticRequestId() FilterSubscribeOption
func WithFastestPeerSelection ¶
func WithFastestPeerSelection(ctx context.Context, fromThesePeers ...peer.ID) FilterSubscribeOption
WithFastestPeerSelection is an option used to select a peer from the peer store with the lowest ping If a list of specific peers is passed, the peer will be chosen from that list assuming it supports the chosen protocol, otherwise it will chose a peer from the node peerstore
func WithPeer ¶
func WithPeer(p peer.ID) FilterSubscribeOption
func WithRequestId ¶ added in v0.6.0
func WithRequestId(requestId []byte) FilterSubscribeOption
type FilterSubscribeParameters ¶
type FilterSubscribeParameters struct {
// contains filtered or unexported fields
}
type FilterUnsubscribeOption ¶ added in v0.6.0
type FilterUnsubscribeOption func(*FilterUnsubscribeParameters)
func AutomaticRequestId ¶ added in v0.6.0
func AutomaticRequestId() FilterUnsubscribeOption
func DefaultUnsubscribeOptions ¶ added in v0.6.0
func DefaultUnsubscribeOptions() []FilterUnsubscribeOption
func Peer ¶ added in v0.6.0
func Peer(p peer.ID) FilterUnsubscribeOption
func RequestID ¶ added in v0.6.0
func RequestID(requestId []byte) FilterUnsubscribeOption
func UnsubscribeAll ¶ added in v0.6.0
func UnsubscribeAll() FilterUnsubscribeOption
type FilterUnsubscribeParameters ¶ added in v0.6.0
type FilterUnsubscribeParameters struct {
// contains filtered or unexported fields
}
type Option ¶
type Option func(*FilterParameters)
func DefaultOptions ¶
func DefaultOptions() []Option
func WithMaxSubscribers ¶ added in v0.6.0
func WithTimeout ¶
type PeerSubscription ¶ added in v0.6.0
type PeerSubscription struct {
// contains filtered or unexported fields
}
type PubsubTopics ¶ added in v0.6.0
type PubsubTopics map[string]ContentTopicSet // pubsubTopic => contentTopics
type SubscribersMap ¶ added in v0.6.0
func NewSubscribersMap ¶ added in v0.6.0
func NewSubscribersMap(timeout time.Duration) *SubscribersMap
func (*SubscribersMap) Clear ¶ added in v0.6.0
func (sub *SubscribersMap) Clear()
func (*SubscribersMap) Count ¶ added in v0.6.0
func (sub *SubscribersMap) Count() int
func (*SubscribersMap) DeleteAll ¶ added in v0.6.0
func (sub *SubscribersMap) DeleteAll(peerID peer.ID) error
func (*SubscribersMap) FlagAsFailure ¶ added in v0.6.0
func (sub *SubscribersMap) FlagAsFailure(peerID peer.ID)
func (*SubscribersMap) FlagAsSuccess ¶ added in v0.6.0
func (sub *SubscribersMap) FlagAsSuccess(peerID peer.ID)
func (*SubscribersMap) Get ¶ added in v0.6.0
func (sub *SubscribersMap) Get(peerID peer.ID) (PubsubTopics, bool)
func (*SubscribersMap) IsFailedPeer ¶ added in v0.6.0
func (sub *SubscribersMap) IsFailedPeer(peerID peer.ID) bool
func (*SubscribersMap) Items ¶ added in v0.6.0
func (sub *SubscribersMap) Items(pubsubTopic string, contentTopic string) <-chan peer.ID
func (*SubscribersMap) RemoveAll ¶ added in v0.6.0
func (sub *SubscribersMap) RemoveAll()
type SubscriptionDetails ¶ added in v0.6.0
type SubscriptionDetails struct { sync.RWMutex ID string Closed bool PeerID peer.ID PubsubTopic string ContentTopics map[string]struct{} C chan *protocol.Envelope // contains filtered or unexported fields }
func (*SubscriptionDetails) Add ¶ added in v0.6.0
func (s *SubscriptionDetails) Add(contentTopics ...string)
func (*SubscriptionDetails) Clone ¶ added in v0.6.0
func (s *SubscriptionDetails) Clone() *SubscriptionDetails
func (*SubscriptionDetails) Close ¶ added in v0.6.0
func (s *SubscriptionDetails) Close() error
func (*SubscriptionDetails) MarshalJSON ¶ added in v0.7.0
func (s *SubscriptionDetails) MarshalJSON() ([]byte, error)
func (*SubscriptionDetails) Remove ¶ added in v0.6.0
func (s *SubscriptionDetails) Remove(contentTopics ...string)
type SubscriptionSet ¶ added in v0.6.0
type SubscriptionSet map[string]*SubscriptionDetails
type SubscriptionsMap ¶ added in v0.6.0
func NewSubscriptionMap ¶ added in v0.6.0
func NewSubscriptionMap(logger *zap.Logger) *SubscriptionsMap
func (*SubscriptionsMap) Clear ¶ added in v0.6.0
func (sub *SubscriptionsMap) Clear()
func (*SubscriptionsMap) Delete ¶ added in v0.6.0
func (sub *SubscriptionsMap) Delete(subscription *SubscriptionDetails) error
func (*SubscriptionsMap) IsSubscribedTo ¶ added in v0.6.0
func (sub *SubscriptionsMap) IsSubscribedTo(peerID peer.ID) bool
func (*SubscriptionsMap) NewSubscription ¶ added in v0.6.0
func (sub *SubscriptionsMap) NewSubscription(peerID peer.ID, topic string, contentTopics []string) *SubscriptionDetails
type WakuFilterFullNode ¶ added in v0.6.0
type WakuFilterFullNode struct {
// contains filtered or unexported fields
}
func NewWakuFilterFullnode ¶ added in v0.6.0
func NewWakuFilterFullnode(timesource timesource.Timesource, log *zap.Logger, opts ...Option) *WakuFilterFullNode
NewWakuFilterFullnode returns a new instance of Waku Filter struct setup according to the chosen parameter and options
func (*WakuFilterFullNode) SetHost ¶ added in v0.6.0
func (wf *WakuFilterFullNode) SetHost(h host.Host)
Sets the host to be able to mount or consume a protocol
func (*WakuFilterFullNode) Start ¶ added in v0.6.0
func (wf *WakuFilterFullNode) Start(ctx context.Context, sub relay.Subscription) error
func (*WakuFilterFullNode) Stop ¶ added in v0.6.0
func (wf *WakuFilterFullNode) Stop()
Stop unmounts the filter protocol
type WakuFilterLightnode ¶ added in v0.6.0
type WakuFilterLightnode struct {
// contains filtered or unexported fields
}
func NewWakuFilterLightnode ¶ added in v0.6.0
func NewWakuFilterLightnode(broadcaster relay.Broadcaster, timesource timesource.Timesource, log *zap.Logger) *WakuFilterLightnode
NewWakuRelay returns a new instance of Waku Filter struct setup according to the chosen parameter and options
func (*WakuFilterLightnode) FilterSubscription ¶ added in v0.6.0
func (wf *WakuFilterLightnode) FilterSubscription(peerID peer.ID, contentFilter ContentFilter) (*SubscriptionDetails, error)
FilterSubscription is used to obtain an object from which you could receive messages received via filter protocol
func (*WakuFilterLightnode) IsSubscriptionAlive ¶ added in v0.6.0
func (wf *WakuFilterLightnode) IsSubscriptionAlive(ctx context.Context, subscription *SubscriptionDetails) error
func (*WakuFilterLightnode) SetHost ¶ added in v0.6.0
func (wf *WakuFilterLightnode) SetHost(h host.Host)
Sets the host to be able to mount or consume a protocol
func (*WakuFilterLightnode) Start ¶ added in v0.6.0
func (wf *WakuFilterLightnode) Start(ctx context.Context) error
func (*WakuFilterLightnode) Stop ¶ added in v0.6.0
func (wf *WakuFilterLightnode) Stop()
Stop unmounts the filter protocol
func (*WakuFilterLightnode) Subscribe ¶ added in v0.6.0
func (wf *WakuFilterLightnode) Subscribe(ctx context.Context, contentFilter ContentFilter, opts ...FilterSubscribeOption) (*SubscriptionDetails, error)
Subscribe setups a subscription to receive messages that match a specific content filter
func (*WakuFilterLightnode) Subscriptions ¶ added in v0.6.0
func (wf *WakuFilterLightnode) Subscriptions() []*SubscriptionDetails
func (*WakuFilterLightnode) Unsubscribe ¶ added in v0.6.0
func (wf *WakuFilterLightnode) Unsubscribe(ctx context.Context, contentFilter ContentFilter, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)
Unsubscribe is used to stop receiving messages from a peer that match a content filter
func (*WakuFilterLightnode) UnsubscribeAll ¶ added in v0.6.0
func (wf *WakuFilterLightnode) UnsubscribeAll(ctx context.Context, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)
UnsubscribeAll is used to stop receiving messages from peer(s). It does not close subscriptions
func (*WakuFilterLightnode) UnsubscribeWithSubscription ¶ added in v0.6.0
func (wf *WakuFilterLightnode) UnsubscribeWithSubscription(ctx context.Context, sub *SubscriptionDetails, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)
Unsubscribe is used to stop receiving messages from a peer that match a content filter