From 7d608a0dc0b6818fd82b73dfab609ef94ce82d78 Mon Sep 17 00:00:00 2001 From: zeim839 Date: Thu, 26 May 2022 18:57:03 -0400 Subject: [PATCH 1/7] p2p/server.go: implement DiscAddr config option --- p2p/server.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/p2p/server.go b/p2p/server.go index 898201f8f7fc2..2cb1cb6bfbf4d 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -136,6 +136,10 @@ type Config struct { // the server is started. ListenAddr string + // If DiscAddr is set to a non-nil value, the server will use ListenAddr + // for TCP and DiscAddr for the UDP discovery protocol. + DiscAddr string + // If set to a non-nil value, the given NAT port mapper // is used to make the listening port available to the // Internet. @@ -549,7 +553,15 @@ func (srv *Server) setupDiscovery() error { return nil } - addr, err := net.ResolveUDPAddr("udp", srv.ListenAddr) + listenAddr := srv.ListenAddr + + // Use an alternate listening address for UDP if + // a custom discovery address is configured. + if (srv.DiscAddr != "") { + listenAddr = srv.DiscAddr + } + + addr, err := net.ResolveUDPAddr("udp", listenAddr) if err != nil { return err } From 876a93665502eaae7438d3975f49d43dbccff53b Mon Sep 17 00:00:00 2001 From: zeim839 Date: Thu, 26 May 2022 18:59:09 -0400 Subject: [PATCH 2/7] cmd/utils/flags.go: add flag to modify UDP addr. --- cmd/utils/flags.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 5cebaba43ecfd..13fd933f11bd8 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -799,6 +799,12 @@ var ( Value: "", Category: flags.NetworkingCategory, } + DiscPortFlag = &cli.IntFlag{ + Name: "discport", + Usage: "Use a custom UDP port for P2P discovery", + Value: 30303, + Category: flags.NetworkingCategory, + } NodeKeyFileFlag = &cli.StringFlag{ Name: "nodekey", Usage: "P2P node key file", @@ -1116,12 +1122,15 @@ func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) { } } -// setListenAddress creates a TCP listening address string from set command -// line flags. +// setListenAddress creates TCP/UDP listening address strings from set command +// line flags func setListenAddress(ctx *cli.Context, cfg *p2p.Config) { if ctx.IsSet(ListenPortFlag.Name) { cfg.ListenAddr = fmt.Sprintf(":%d", ctx.Int(ListenPortFlag.Name)) } + if ctx.GlobalIsSet(DiscPortFlag.Name) { + cfg.DiscAddr = fmt.Sprintf(":%d", ctx.GlobalInt(DiscPortFlag.Name)) + } } // setNAT creates a port mapper from command line flags. From 05afa2e8cb04895fcfaabc07b3a7e893de2e029a Mon Sep 17 00:00:00 2001 From: zeim839 Date: Thu, 26 May 2022 18:59:34 -0400 Subject: [PATCH 3/7] cmd/geth/main.go: add utils.DiscPortFlag --- cmd/geth/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 1ae7116eda79a..ec4fa58804956 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -119,6 +119,7 @@ var ( utils.CachePreimagesFlag, utils.FDLimitFlag, utils.ListenPortFlag, + utils.DiscPortFlag, utils.MaxPeersFlag, utils.MaxPendingPeersFlag, utils.MiningEnabledFlag, From 70ae2039c5d87a9093562627db0c6831887a474c Mon Sep 17 00:00:00 2001 From: zeim839 Date: Sat, 28 May 2022 12:10:25 -0400 Subject: [PATCH 4/7] resolve goimports CI issue --- cmd/utils/flags.go | 6 ++++++ p2p/server.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 13fd933f11bd8..d049f717f4c48 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -805,6 +805,12 @@ var ( Value: 30303, Category: flags.NetworkingCategory, } + DiscPortFlag = &cli.IntFlag{ + Name: "discport", + Usage: "Use a custom UDP port for P2P discovery", + Value: 30303, + Category: flags.NetworkingCategory, + } NodeKeyFileFlag = &cli.StringFlag{ Name: "nodekey", Usage: "P2P node key file", diff --git a/p2p/server.go b/p2p/server.go index 2cb1cb6bfbf4d..19f7935ffcaeb 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -557,7 +557,7 @@ func (srv *Server) setupDiscovery() error { // Use an alternate listening address for UDP if // a custom discovery address is configured. - if (srv.DiscAddr != "") { + if srv.DiscAddr != "" { listenAddr = srv.DiscAddr } From a503a6c81b861707aceb205bb18d2e8beb17b279 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 28 Jun 2022 13:59:52 +0200 Subject: [PATCH 5/7] cmd/utils: remove duplicate definition --- cmd/utils/flags.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index d049f717f4c48..13fd933f11bd8 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -805,12 +805,6 @@ var ( Value: 30303, Category: flags.NetworkingCategory, } - DiscPortFlag = &cli.IntFlag{ - Name: "discport", - Usage: "Use a custom UDP port for P2P discovery", - Value: 30303, - Category: flags.NetworkingCategory, - } NodeKeyFileFlag = &cli.StringFlag{ Name: "nodekey", Usage: "P2P node key file", From ff45c0d57acd72aee57c5e265bc679363a7595fe Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 28 Jun 2022 14:00:41 +0200 Subject: [PATCH 6/7] cmd/utils: update for cli/v2 --- cmd/utils/flags.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 13fd933f11bd8..a469ea18f4f2d 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -1128,8 +1128,8 @@ func setListenAddress(ctx *cli.Context, cfg *p2p.Config) { if ctx.IsSet(ListenPortFlag.Name) { cfg.ListenAddr = fmt.Sprintf(":%d", ctx.Int(ListenPortFlag.Name)) } - if ctx.GlobalIsSet(DiscPortFlag.Name) { - cfg.DiscAddr = fmt.Sprintf(":%d", ctx.GlobalInt(DiscPortFlag.Name)) + if ctx.IsSet(DiscPortFlag.Name) { + cfg.DiscAddr = fmt.Sprintf(":%d", ctx.Int(DiscPortFlag.Name)) } } From d40a780db5dae7e4be31f190f22ed36c2018e007 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 28 Jun 2022 14:07:27 +0200 Subject: [PATCH 7/7] cmd/utils: rename discovery port flag --- cmd/geth/main.go | 2 +- cmd/utils/flags.go | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/geth/main.go b/cmd/geth/main.go index ec4fa58804956..b0a849a3ba6a8 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -119,7 +119,7 @@ var ( utils.CachePreimagesFlag, utils.FDLimitFlag, utils.ListenPortFlag, - utils.DiscPortFlag, + utils.DiscoveryPortFlag, utils.MaxPeersFlag, utils.MaxPendingPeersFlag, utils.MiningEnabledFlag, diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index a469ea18f4f2d..ce116b574643e 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -799,12 +799,6 @@ var ( Value: "", Category: flags.NetworkingCategory, } - DiscPortFlag = &cli.IntFlag{ - Name: "discport", - Usage: "Use a custom UDP port for P2P discovery", - Value: 30303, - Category: flags.NetworkingCategory, - } NodeKeyFileFlag = &cli.StringFlag{ Name: "nodekey", Usage: "P2P node key file", @@ -841,6 +835,12 @@ var ( Usage: "Sets DNS discovery entry points (use \"\" to disable DNS)", Category: flags.NetworkingCategory, } + DiscoveryPortFlag = &cli.IntFlag{ + Name: "discovery.port", + Usage: "Use a custom UDP port for P2P discovery", + Value: 30303, + Category: flags.NetworkingCategory, + } // Console JSpathFlag = &flags.DirectoryFlag{ @@ -1128,8 +1128,8 @@ func setListenAddress(ctx *cli.Context, cfg *p2p.Config) { if ctx.IsSet(ListenPortFlag.Name) { cfg.ListenAddr = fmt.Sprintf(":%d", ctx.Int(ListenPortFlag.Name)) } - if ctx.IsSet(DiscPortFlag.Name) { - cfg.DiscAddr = fmt.Sprintf(":%d", ctx.Int(DiscPortFlag.Name)) + if ctx.IsSet(DiscoveryPortFlag.Name) { + cfg.DiscAddr = fmt.Sprintf(":%d", ctx.Int(DiscoveryPortFlag.Name)) } }