Skip to content

Commit c11759e

Browse files
authored
Merge pull request #511 from shutter-network/feat/libp2p-advertiseaddr
libp2p: Add advertise addresses config option
2 parents 0421576 + dde80f5 commit c11759e

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

rolling-shutter/p2p/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ func (c *Config) Init() {
4343
type Config struct {
4444
P2PKey *keys.Libp2pPrivate `shconfig:",required"`
4545
ListenAddresses []*address.P2PAddress
46+
AdvertiseAddresses []*address.P2PAddress `comment:"Optional, addresses to be advertised to other peers instead of auto-detected ones."`
4647
CustomBootstrapAddresses []*address.P2PAddress `comment:"Overwrite p2p boostrap nodes"`
4748
Environment env.Environment
4849
DiscoveryNamespace string `shconfig:",required" comment:"Must be unique for each instance id."`

rolling-shutter/p2p/messaging.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,13 @@ func New(config *Config) (*P2PMessaging, error) {
8888
for _, addr := range config.ListenAddresses {
8989
listenAddresses = append(listenAddresses, addr.Multiaddr)
9090
}
91+
advertiseAddresses := []multiaddr.Multiaddr{}
92+
for _, addr := range config.AdvertiseAddresses {
93+
advertiseAddresses = append(advertiseAddresses, addr.Multiaddr)
94+
}
9195
cfg := &p2pNodeConfig{
9296
ListenAddrs: listenAddresses,
97+
AdvertiseAddrs: advertiseAddresses,
9398
PrivKey: *config.P2PKey,
9499
Environment: config.Environment,
95100
DiscoveryNamespace: config.DiscoveryNamespace,

rolling-shutter/p2p/p2p.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ type P2PNode struct {
6464

6565
type p2pNodeConfig struct {
6666
ListenAddrs []multiaddr.Multiaddr
67+
AdvertiseAddrs []multiaddr.Multiaddr
6768
BootstrapPeers []peer.AddrInfo
6869
PrivKey keys.Libp2pPrivate
6970
Environment env.Environment
@@ -216,6 +217,14 @@ func createHost(
216217
// Attempt to open ports using uPNP for NATed hosts.
217218
libp2p.NATPortMap(),
218219
)
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+
}
219228
if len(config.BootstrapPeers) > 0 {
220229
options = append(options,
221230
libp2p.EnableAutoRelayWithStaticRelays(config.BootstrapPeers),

0 commit comments

Comments
 (0)