waku

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2022 License: MIT Imports: 42 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Execute

func Execute(options Options)

Execute starts a go-waku node with settings determined by the Options parameter

Types

type DNSDiscoveryOptions

type DNSDiscoveryOptions struct {
	Enable     bool
	URLs       cli.StringSlice
	Nameserver string
}

DNSDiscoveryOptions are settings used for enabling DNS-based discovery protocol that stores merkle trees in DNS records which contain connection information for nodes. It's very useful for bootstrapping a p2p network.

type DiscV5Options

type DiscV5Options struct {
	Enable     bool
	Nodes      cli.StringSlice
	Port       int
	AutoUpdate bool
}

DiscV5Options are settings to enable a modified version of Ethereum’s Node Discovery Protocol v5 as a means for ambient node discovery.

type FilterOptions

type FilterOptions struct {
	Enable          bool
	DisableFullNode bool
	Nodes           []multiaddr.Multiaddr
	Timeout         time.Duration
}

FilterOptions are settings used to enable filter protocol. This is a protocol that enables subscribing to messages that a peer receives. This is a more lightweight version of WakuRelay specifically designed for bandwidth restricted devices.

type LightpushOptions

type LightpushOptions struct {
	Enable bool
	Nodes  []multiaddr.Multiaddr
}

LightpushOptions are settings used to enable the lightpush protocol. This is a lightweight protocol used to avoid having to run the relay protocol which is more resource intensive. With this protocol a message is pushed to a peer that supports both the lightpush protocol and relay protocol. That peer will broadcast the message and return a confirmation that the message was broadcasted

type MetricsOptions

type MetricsOptions struct {
	Enable  bool
	Address string
	Port    int
}

MetricsOptions are settings used to start a prometheus server for obtaining useful node metrics to monitor the health of behavior of the go-waku node.

type Options

type Options struct {
	Port             int
	Address          string
	Dns4DomainName   string
	NodeKey          *ecdsa.PrivateKey
	KeyFile          string
	KeyPasswd        string
	GenerateKey      bool
	Overwrite        bool
	StaticNodes      []multiaddr.Multiaddr
	KeepAlive        time.Duration
	UseDB            bool
	DBPath           string
	AdvertiseAddress string
	Version          bool // TODO: use vflag from urcli
	ShowAddresses    bool
	LogLevel         string
	LogEncoding      string
	NAT              string
	PersistPeers     bool

	Websocket        WSOptions
	Relay            RelayOptions
	Store            StoreOptions
	Swap             SwapOptions
	Filter           FilterOptions
	LightPush        LightpushOptions
	RLNRelay         RLNRelayOptions
	DiscV5           DiscV5Options
	Rendezvous       RendezvousOptions
	RendezvousServer RendezvousServerOptions
	DNSDiscovery     DNSDiscoveryOptions
	Metrics          MetricsOptions
	RPCServer        RPCServerOptions
	RESTServer       RESTServerOptions
}

Options contains all the available features and settings that can be configured via flags when executing go-waku as a service.

type RESTServerOptions added in v0.2.0

type RESTServerOptions struct {
	Enable             bool
	Port               int
	Address            string
	Admin              bool
	Private            bool
	RelayCacheCapacity int
}

RESTServerOptions are settings used to start a rest http server

type RLNRelayOptions added in v0.2.0

type RLNRelayOptions struct {
	Enable                    bool
	CredentialsPath           string
	MembershipIndex           int
	PubsubTopic               string
	ContentTopic              string
	Dynamic                   bool
	IDKey                     string
	IDCommitment              string
	ETHPrivateKey             *ecdsa.PrivateKey
	ETHClientAddress          string
	MembershipContractAddress common.Address
}

type RPCServerOptions

type RPCServerOptions struct {
	Enable  bool
	Port    int
	Address string
	Admin   bool
	Private bool
}

RPCServerOptions are settings used to start a json rpc server

type RelayOptions

type RelayOptions struct {
	Enable                 bool
	Topics                 cli.StringSlice
	PeerExchange           bool
	MinRelayPeersToPublish int
}

RelayOptions are settings to enable the relay protocol which is a pubsub approach to peer-to-peer messaging with a strong focus on privacy, censorship-resistance, security and scalability.

type RendezvousOptions

type RendezvousOptions struct {
	Enable bool
	Nodes  []multiaddr.Multiaddr
}

RendezvousOptions are settings for enabling the rendezvous protocol for discovering new nodes

type RendezvousServerOptions

type RendezvousServerOptions struct {
	Enable bool
	DBPath string
}

RendezvousServerOptions are settings to enable the waku node to act as a rendezvous server

type StoreOptions

type StoreOptions struct {
	Enable               bool
	PersistMessages      bool
	ShouldResume         bool
	RetentionTime        time.Duration
	RetentionMaxMessages int
	Nodes                []multiaddr.Multiaddr
}

StoreOptions are settings used for enabling the store protocol, used to retrieve message history from other nodes as well as acting as a store node and provide message history to nodes that ask for it.

type SwapOptions

type SwapOptions struct {
	Enable              bool
	Mode                int
	PaymentThreshold    int
	DisconnectThreshold int
}

SwapOptions are settings used for configuring the swap protocol

type WSOptions

type WSOptions struct {
	Enable   bool
	WSPort   int
	WSSPort  int
	Address  string
	Secure   bool
	KeyPath  string
	CertPath string
}

WSOptions are settings used for enabling websockets and secure websockets support

Jump to

Keyboard shortcuts

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