mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 15:37:56 -05:00
Fix Bootnode Again (#5473)
* 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
This commit is contained in:
@@ -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",
|
||||
@@ -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",
|
||||
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
@@ -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())
|
||||
@@ -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,
|
||||
@@ -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)
|
||||
@@ -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},
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user