Skip to content

Commit

Permalink
Fix Bootnode Again (#5473)
Browse files Browse the repository at this point in the history
* bootnodeFix
* fix again
* remove iputils
* revert changes
* only add fallback
* fix test
* take it outside of func
* fix docker
* Merge branch 'master' into fixBootnodeAgain
* Merge refs/heads/master into fixBootnodeAgain
  • Loading branch information
nisdas authored Apr 18, 2020
1 parent 62213ca commit 9cec33f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
5 changes: 3 additions & 2 deletions tools/bootnode/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ go_library(
visibility = ["//visibility:private"],
deps = [
"//proto/beacon/p2p/v1:go_default_library",
"//shared/iputils:go_default_library",
"//shared/logutil:go_default_library",
"//shared/params:go_default_library",
"//shared/version:go_default_library",
Expand Down Expand Up @@ -47,8 +48,9 @@ go_image(
visibility = ["//visibility:private"],
deps = [
"//proto/beacon/p2p/v1:go_default_library",
"//shared/params:go_default_library",
"//shared/iputils:go_default_library",
"//shared/logutil:go_default_library",
"//shared/params:go_default_library",
"//shared/version:go_default_library",
"@com_github_btcsuite_btcd//btcec:go_default_library",
"@com_github_ethereum_go_ethereum//log:go_default_library",
Expand All @@ -60,7 +62,6 @@ go_image(
"@com_github_ipfs_go_log//:go_default_library",
"@com_github_libp2p_go_libp2p//:go_default_library",
"@com_github_libp2p_go_libp2p_core//crypto:go_default_library",
"@com_github_libp2p_go_libp2p_core//protocol:go_default_library",
"@com_github_libp2p_go_libp2p_kad_dht//:go_default_library",
"@com_github_libp2p_go_libp2p_kad_dht//opts:go_default_library",
"@com_github_multiformats_go_multiaddr//:go_default_library",
Expand Down
24 changes: 13 additions & 11 deletions tools/bootnode/bootnode.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import (
"github.com/prysmaticlabs/go-bitfield"
"github.com/prysmaticlabs/go-ssz"
pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
"github.com/prysmaticlabs/prysm/shared/iputils"
"github.com/prysmaticlabs/prysm/shared/logutil"
"github.com/prysmaticlabs/prysm/shared/params"
"github.com/prysmaticlabs/prysm/shared/version"
Expand Down Expand Up @@ -89,7 +90,11 @@ func main() {
cfg := discover.Config{
PrivateKey: privKey,
}
listener := createListener(defaultIP, *discv5port, cfg)
ipAddr, err := iputils.ExternalIPv4()
if err != nil {
log.Fatal(err)
}
listener := createListener(ipAddr, *discv5port, cfg)

node := listener.Self()
log.Infof("Running bootnode: %s", node.String())
Expand Down Expand Up @@ -157,7 +162,7 @@ func startKademliaDHT(privKey crypto.PrivKey) {
func createListener(ipAddr string, port int, cfg discover.Config) *discover.UDPv5 {
ip := net.ParseIP(ipAddr)
if ip.To4() == nil {
log.Fatalf("IPV4 address not provided instead %s was provided", defaultIP)
log.Fatalf("IPV4 address not provided instead %s was provided", ipAddr)
}
udpAddr := &net.UDPAddr{
IP: ip,
Expand All @@ -167,9 +172,6 @@ func createListener(ipAddr string, port int, cfg discover.Config) *discover.UDPv
if err != nil {
log.Fatal(err)
}
if *externalIP != "" {
ip = net.ParseIP(*externalIP)
}
localNode, err := createLocalNode(cfg.PrivateKey, ip, port)
if err != nil {
log.Fatal(err)
Expand Down Expand Up @@ -206,6 +208,10 @@ func createLocalNode(privKey *ecdsa.PrivateKey, ipAddr net.IP, port int) (*enode
if err != nil {
return nil, errors.Wrap(err, "Could not open node's peer database")
}
external := net.ParseIP(*externalIP)
if *externalIP == "" {
external = ipAddr
}

forkID := &pb.ENRForkID{
CurrentForkDigest: []byte{0, 0, 0, 0},
Expand All @@ -218,14 +224,10 @@ func createLocalNode(privKey *ecdsa.PrivateKey, ipAddr net.IP, port int) (*enode
}

localNode := enode.NewLocalNode(db, privKey)
ipEntry := enr.IP(ipAddr)
udpEntry := enr.UDP(port)
localNode.SetFallbackIP(ipAddr)
localNode.SetFallbackUDP(port)
localNode.Set(ipEntry)
localNode.Set(udpEntry)
localNode.Set(enr.WithEntry("eth2", forkEntry))
localNode.Set(enr.WithEntry("attnets", bitfield.NewBitvector64()))
localNode.SetFallbackIP(external)
localNode.SetFallbackUDP(port)

return localNode, nil
}
Expand Down

0 comments on commit 9cec33f

Please sign in to comment.