-
Notifications
You must be signed in to change notification settings - Fork 14
/
swarm.go
81 lines (68 loc) · 2.32 KB
/
swarm.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package config
type SwarmConfig struct {
// AddrFilters specifies a set libp2p addresses that we should never
// dial or receive connections from.
AddrFilters []string
// DisableBandwidthMetrics disables recording of bandwidth metrics for a
// slight reduction in memory usage. You probably don't need to set this
// flag.
DisableBandwidthMetrics bool
// DisableNatPortMap turns off NAT port mapping (UPnP, etc.).
DisableNatPortMap bool
// DisableRelay explicitly disables the relay transport.
//
// Deprecated: This flag is deprecated and is overridden by
// `Transports.Relay` if specified.
DisableRelay bool `json:",omitempty"`
// EnableRelayHop makes this node act as a public relay, relaying
// traffic between other nodes.
EnableRelayHop bool
SwarmKey string
// EnableAutoRelay enables the "auto relay" feature.
//
// When both EnableAutoRelay and EnableRelayHop are set, this go-ipfs node
// will advertise itself as a public relay. Otherwise it will find and use
// advertised public relays when it determines that it's not reachable
// from the public internet.
EnableAutoRelay bool
// Transports contains flags to enable/disable libp2p transports.
Transports Transports
// ConnMgr configures the connection manager.
ConnMgr ConnMgr
}
type Transports struct {
// Network specifies the base transports we'll use for dialing. To
// listen on a transport, add the transport to your Addresses.Swarm.
Network struct {
// All default to on.
QUIC Flag `json:",omitempty"`
TCP Flag `json:",omitempty"`
Websocket Flag `json:",omitempty"`
Relay Flag `json:",omitempty"`
}
// Security specifies the transports used to encrypt insecure network
// transports.
Security struct {
// Defaults to 100.
TLS Priority `json:",omitempty"`
// Defaults to 200.
SECIO Priority `json:",omitempty"`
// Defaults to 300.
Noise Priority `json:",omitempty"`
}
// Multiplexers specifies the transports used to multiplex multiple
// connections over a single duplex connection.
Multiplexers struct {
// Defaults to 100.
Yamux Priority `json:",omitempty"`
// Defaults to 200.
Mplex Priority `json:",omitempty"`
}
}
// ConnMgr defines configuration options for the libp2p connection manager
type ConnMgr struct {
Type string
LowWater int
HighWater int
GracePeriod string
}