From 70dcab9be1bfd8ab4bbe28c3e35e6e5a758dafb7 Mon Sep 17 00:00:00 2001 From: rauljordan Date: Wed, 8 Apr 2020 14:18:55 -0500 Subject: [PATCH 1/6] pregenesis healthz check: --- beacon-chain/p2p/service.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/beacon-chain/p2p/service.go b/beacon-chain/p2p/service.go index f2fd6caacd3c..863d7439fb63 100644 --- a/beacon-chain/p2p/service.go +++ b/beacon-chain/p2p/service.go @@ -78,6 +78,7 @@ type Service struct { metaData *pb.MetaData stateNotifier statefeed.Notifier pingMethod func(ctx context.Context, id peer.ID) error + isPreGenesis bool // Variable determining if the chain is pre-genesis. } // NewService initializes a new p2p service compatible with shared.Service interface. No @@ -98,6 +99,7 @@ func NewService(cfg *Config) (*Service, error) { cancel: cancel, cfg: cfg, exclusionList: cache, + isPreGenesis: true, } dv5Nodes, kadDHTNodes := parseBootStrapAddrs(s.cfg.BootstrapNodeAddr) @@ -181,8 +183,10 @@ func (s *Service) Start() { if genesisState != nil { s.genesisTime = time.Unix(int64(genesisState.GenesisTime()), 0) s.genesisValidatorsRoot = genesisState.GenesisValidatorRoot() + s.isPreGenesis = false } else { s.awaitStateInitialized() + s.isPreGenesis = false } var peersToWatch []string @@ -295,6 +299,9 @@ func (s *Service) Stop() error { // Status of the p2p service. Will return an error if the service is considered unhealthy to // indicate that this node should not serve traffic until the issue has been resolved. func (s *Service) Status() error { + if s.isPreGenesis { + return nil + } if !s.started { return errors.New("not running") } From 2b7dd83ea8cb1b1de92395699447f36ca1efd3f4 Mon Sep 17 00:00:00 2001 From: rauljordan Date: Wed, 8 Apr 2020 14:19:49 -0500 Subject: [PATCH 2/6] optimal --- beacon-chain/p2p/service.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beacon-chain/p2p/service.go b/beacon-chain/p2p/service.go index 863d7439fb63..bda8352b362d 100644 --- a/beacon-chain/p2p/service.go +++ b/beacon-chain/p2p/service.go @@ -67,6 +67,7 @@ type Service struct { cfg *Config startupErr error dv5Listener Listener + isPreGenesis bool // Variable determining if the chain is pre-genesis. host host.Host pubsub *pubsub.PubSub exclusionList *ristretto.Cache @@ -78,7 +79,6 @@ type Service struct { metaData *pb.MetaData stateNotifier statefeed.Notifier pingMethod func(ctx context.Context, id peer.ID) error - isPreGenesis bool // Variable determining if the chain is pre-genesis. } // NewService initializes a new p2p service compatible with shared.Service interface. No From ef20de7c59f66f35f8adbdd9265c34ac2ee17b2f Mon Sep 17 00:00:00 2001 From: rauljordan Date: Wed, 8 Apr 2020 14:22:45 -0500 Subject: [PATCH 3/6] right order --- beacon-chain/p2p/service.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/beacon-chain/p2p/service.go b/beacon-chain/p2p/service.go index bda8352b362d..bca6c36bb1a4 100644 --- a/beacon-chain/p2p/service.go +++ b/beacon-chain/p2p/service.go @@ -60,25 +60,25 @@ const maxBadResponses = 3 // Service for managing peer to peer (p2p) networking. type Service struct { - beaconDB db.Database - ctx context.Context - cancel context.CancelFunc started bool + isPreGenesis bool // Variable determining if the chain is pre-genesis. + pingMethod func(ctx context.Context, id peer.ID) error + cancel context.CancelFunc cfg *Config - startupErr error + peers *peers.Status + dht *kaddht.IpfsDHT + privKey *ecdsa.PrivateKey + exclusionList *ristretto.Cache + metaData *pb.MetaData + pubsub *pubsub.PubSub + beaconDB db.Database dv5Listener Listener - isPreGenesis bool // Variable determining if the chain is pre-genesis. + startupErr error + stateNotifier statefeed.Notifier + ctx context.Context host host.Host - pubsub *pubsub.PubSub - exclusionList *ristretto.Cache - privKey *ecdsa.PrivateKey - dht *kaddht.IpfsDHT - peers *peers.Status genesisTime time.Time genesisValidatorsRoot []byte - metaData *pb.MetaData - stateNotifier statefeed.Notifier - pingMethod func(ctx context.Context, id peer.ID) error } // NewService initializes a new p2p service compatible with shared.Service interface. No From 08994cc0ca29a748717582961d303e54731ed09c Mon Sep 17 00:00:00 2001 From: Raul Jordan Date: Wed, 8 Apr 2020 14:25:22 -0500 Subject: [PATCH 4/6] Update beacon-chain/p2p/service.go Co-Authored-By: Preston Van Loon --- beacon-chain/p2p/service.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/beacon-chain/p2p/service.go b/beacon-chain/p2p/service.go index bca6c36bb1a4..2794fbf5de83 100644 --- a/beacon-chain/p2p/service.go +++ b/beacon-chain/p2p/service.go @@ -183,11 +183,10 @@ func (s *Service) Start() { if genesisState != nil { s.genesisTime = time.Unix(int64(genesisState.GenesisTime()), 0) s.genesisValidatorsRoot = genesisState.GenesisValidatorRoot() - s.isPreGenesis = false } else { s.awaitStateInitialized() - s.isPreGenesis = false } + s.isPreGenesis = false var peersToWatch []string if s.cfg.RelayNodeAddr != "" { From 673d5432e4566349815ede6ec01a7e807603fcee Mon Sep 17 00:00:00 2001 From: Raul Jordan Date: Wed, 8 Apr 2020 14:25:37 -0500 Subject: [PATCH 5/6] Update beacon-chain/p2p/service.go Co-Authored-By: Preston Van Loon --- beacon-chain/p2p/service.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/beacon-chain/p2p/service.go b/beacon-chain/p2p/service.go index 2794fbf5de83..e2986c2b92b6 100644 --- a/beacon-chain/p2p/service.go +++ b/beacon-chain/p2p/service.go @@ -304,6 +304,9 @@ func (s *Service) Status() error { if !s.started { return errors.New("not running") } + if s.startupErr != nil { + return s.startupErr + } return nil } From 22eb7394b261878d44aec700ec8cda842adf3fe1 Mon Sep 17 00:00:00 2001 From: rauljordan Date: Wed, 8 Apr 2020 14:25:59 -0500 Subject: [PATCH 6/6] no comment --- beacon-chain/p2p/service.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beacon-chain/p2p/service.go b/beacon-chain/p2p/service.go index e2986c2b92b6..ce593e53baf8 100644 --- a/beacon-chain/p2p/service.go +++ b/beacon-chain/p2p/service.go @@ -61,7 +61,7 @@ const maxBadResponses = 3 // Service for managing peer to peer (p2p) networking. type Service struct { started bool - isPreGenesis bool // Variable determining if the chain is pre-genesis. + isPreGenesis bool pingMethod func(ctx context.Context, id peer.ID) error cancel context.CancelFunc cfg *Config