File tree Expand file tree Collapse file tree 3 files changed +15
-0
lines changed Expand file tree Collapse file tree 3 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -43,6 +43,7 @@ func (c *Config) Init() {
43
43
type Config struct {
44
44
P2PKey * keys.Libp2pPrivate `shconfig:",required"`
45
45
ListenAddresses []* address.P2PAddress
46
+ AdvertiseAddresses []* address.P2PAddress `comment:"Optional, addresses to be advertised to other peers instead of auto-detected ones."`
46
47
CustomBootstrapAddresses []* address.P2PAddress `comment:"Overwrite p2p boostrap nodes"`
47
48
Environment env.Environment
48
49
DiscoveryNamespace string `shconfig:",required" comment:"Must be unique for each instance id."`
Original file line number Diff line number Diff line change @@ -88,8 +88,13 @@ func New(config *Config) (*P2PMessaging, error) {
88
88
for _ , addr := range config .ListenAddresses {
89
89
listenAddresses = append (listenAddresses , addr .Multiaddr )
90
90
}
91
+ advertiseAddresses := []multiaddr.Multiaddr {}
92
+ for _ , addr := range config .AdvertiseAddresses {
93
+ advertiseAddresses = append (advertiseAddresses , addr .Multiaddr )
94
+ }
91
95
cfg := & p2pNodeConfig {
92
96
ListenAddrs : listenAddresses ,
97
+ AdvertiseAddrs : advertiseAddresses ,
93
98
PrivKey : * config .P2PKey ,
94
99
Environment : config .Environment ,
95
100
DiscoveryNamespace : config .DiscoveryNamespace ,
Original file line number Diff line number Diff line change @@ -64,6 +64,7 @@ type P2PNode struct {
64
64
65
65
type p2pNodeConfig struct {
66
66
ListenAddrs []multiaddr.Multiaddr
67
+ AdvertiseAddrs []multiaddr.Multiaddr
67
68
BootstrapPeers []peer.AddrInfo
68
69
PrivKey keys.Libp2pPrivate
69
70
Environment env.Environment
@@ -216,6 +217,14 @@ func createHost(
216
217
// Attempt to open ports using uPNP for NATed hosts.
217
218
libp2p .NATPortMap (),
218
219
)
220
+ if len (config .AdvertiseAddrs ) > 0 {
221
+ // If advertise addresses are set, only advertise those
222
+ options = append (options ,
223
+ libp2p .AddrsFactory (func (addrs []multiaddr.Multiaddr ) []multiaddr.Multiaddr {
224
+ return config .AdvertiseAddrs
225
+ }),
226
+ )
227
+ }
219
228
if len (config .BootstrapPeers ) > 0 {
220
229
options = append (options ,
221
230
libp2p .EnableAutoRelayWithStaticRelays (config .BootstrapPeers ),
You can’t perform that action at this time.
0 commit comments