add support for custom p2p node listen maddrs and dht announce maddrs (#799)

This commit is contained in:
mintyleaf
2024-11-18 17:58:34 +04:00
committed by GitHub
parent dc85272377
commit adcf68b833
2 changed files with 24 additions and 0 deletions

View File

@@ -45,6 +45,16 @@ var CommonFlags []cli.Flag = []cli.Flag{
Usage: "Specify a path to a edgevpn config file",
EnvVars: []string{"EDGEVPNCONFIG"},
},
&cli.StringSliceFlag{
Name: "listen-maddrs",
Usage: "Override default 0.0.0.0 listen multiaddresses",
EnvVars: []string{"EDGEVPNLISTENMADDRS"},
},
&cli.StringSliceFlag{
Name: "dht-announce-maddrs",
Usage: "Override listen-maddrs on DHT announce",
EnvVars: []string{"EDGEVPNDHTANNOUNCEMADDRS"},
},
&cli.StringFlag{
Name: "timeout",
Usage: "Specify a default timeout for connection stream",
@@ -407,6 +417,8 @@ func ConfigFromContext(c *cli.Context) *config.Config {
return &config.Config{
NetworkConfig: c.String("config"),
NetworkToken: c.String("token"),
ListenMaddrs: (c.StringSlice("listen-maddrs")),
DHTAnnounceMaddrs: stringsToMultiAddr(c.StringSlice("dht-announce-maddrs")),
Address: c.String("address"),
Router: c.String("router"),
Interface: c.String("interface"),

View File

@@ -47,6 +47,8 @@ import (
type Config struct {
NetworkConfig, NetworkToken string
Address string
ListenMaddrs []string
DHTAnnounceMaddrs []multiaddr.Multiaddr
Router string
Interface string
Libp2pLogLevel, LogLevel string
@@ -204,10 +206,20 @@ func (c Config) ToOpts(l *logger.Logger) ([]node.Option, []vpn.Option, error) {
if c.LowProfile {
dhtOpts = append(dhtOpts, dht.BucketSize(20))
}
if len(c.DHTAnnounceMaddrs) > 0 {
dhtOpts = append(dhtOpts, dht.AddressFilter(
func(m []multiaddr.Multiaddr) []multiaddr.Multiaddr {
return c.DHTAnnounceMaddrs
},
),
)
}
d := discovery.NewDHT(dhtOpts...)
m := &discovery.MDNS{}
opts := []node.Option{
node.ListenAddresses(c.ListenMaddrs...),
node.WithDiscoveryInterval(c.Discovery.Interval),
node.WithLedgerAnnounceTime(c.Ledger.AnnounceInterval),
node.WithLedgerInterval(c.Ledger.SyncInterval),