From 301499d134fabb58059b90d7bb8bfbcbf50424ba Mon Sep 17 00:00:00 2001 From: terence tsao Date: Wed, 28 Oct 2020 22:27:30 -0700 Subject: [PATCH] Fill in blocks to fork choice store during init (#7665) * Fill in blocks to fork choice store during init * Use format option * Use format option * Use correct head block. Thanks Nishant Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> --- beacon-chain/blockchain/service.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/beacon-chain/blockchain/service.go b/beacon-chain/blockchain/service.go index ba459aa44a..15dcb4d883 100644 --- a/beacon-chain/blockchain/service.go +++ b/beacon-chain/blockchain/service.go @@ -34,6 +34,7 @@ import ( "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" "github.com/prysmaticlabs/prysm/shared/slotutil" + "github.com/sirupsen/logrus" "go.opencensus.io/trace" ) @@ -199,6 +200,19 @@ func (s *Service) Start() { s.prevFinalizedCheckpt = stateTrie.CopyCheckpoint(finalizedCheckpoint) s.resumeForkChoice(justifiedCheckpoint, finalizedCheckpoint) + ss, err := helpers.StartSlot(s.finalizedCheckpt.Epoch) + if err != nil { + log.Fatalf("Could not get start slot of finalized epoch: %v", err) + } + h := s.headBlock().Block + log.WithFields(logrus.Fields{ + "startSlot": ss, + "endSlot": h.Slot, + }).Info("Loading blocks to fork choice store, this may take a while.") + if err := s.fillInForkChoiceMissingBlocks(s.ctx, h, s.justifiedCheckpt, s.finalizedCheckpt); err != nil { + log.Fatalf("Could not fill in fork choice store missing blocks: %v", err) + } + if err := s.VerifyWeakSubjectivityRoot(s.ctx); err != nil { // Exit run time if the node failed to verify weak subjectivity checkpoint. log.Fatalf("Could not verify weak subjectivity checkpoint: %v", err)