From d681232fe650e13b98792b6f261dbe854242f374 Mon Sep 17 00:00:00 2001 From: Potuz Date: Fri, 12 Sep 2025 10:58:00 -0300 Subject: [PATCH] Fix setup forkchoice (#15684) * Insert the head block to forkchoice * Add test * Rename file * add changelog * Remove test --- beacon-chain/blockchain/BUILD.bazel | 2 +- .../blockchain/{setup_forchoice.go => setup_forkchoice.go} | 5 ++++- beacon-chain/blockchain/setup_forkchoice_test.go | 2 +- changelog/potuz_fix_forkchoice_startup.md | 3 +++ 4 files changed, 9 insertions(+), 3 deletions(-) rename beacon-chain/blockchain/{setup_forchoice.go => setup_forkchoice.go} (96%) create mode 100644 changelog/potuz_fix_forkchoice_startup.md diff --git a/beacon-chain/blockchain/BUILD.bazel b/beacon-chain/blockchain/BUILD.bazel index a520194c97..c79f65f95f 100644 --- a/beacon-chain/blockchain/BUILD.bazel +++ b/beacon-chain/blockchain/BUILD.bazel @@ -27,7 +27,7 @@ go_library( "receive_block.go", "receive_data_column.go", "service.go", - "setup_forchoice.go", + "setup_forkchoice.go", "tracked_proposer.go", "weak_subjectivity_checks.go", ], diff --git a/beacon-chain/blockchain/setup_forchoice.go b/beacon-chain/blockchain/setup_forkchoice.go similarity index 96% rename from beacon-chain/blockchain/setup_forchoice.go rename to beacon-chain/blockchain/setup_forkchoice.go index 5171935d2d..0761fd707a 100644 --- a/beacon-chain/blockchain/setup_forchoice.go +++ b/beacon-chain/blockchain/setup_forkchoice.go @@ -78,7 +78,10 @@ func (s *Service) setupForkchoiceTree(st state.BeaconState) error { } s.cfg.ForkChoiceStore.Lock() defer s.cfg.ForkChoiceStore.Unlock() - return s.cfg.ForkChoiceStore.InsertChain(s.ctx, chain) + if err := s.cfg.ForkChoiceStore.InsertChain(s.ctx, chain); err != nil { + return errors.Wrap(err, "could not insert forkchoice chain") + } + return s.cfg.ForkChoiceStore.InsertNode(s.ctx, st, chain[0].Block) } func (s *Service) buildForkchoiceChain(ctx context.Context, head interfaces.ReadOnlySignedBeaconBlock) ([]*forkchoicetypes.BlockAndCheckpoints, error) { diff --git a/beacon-chain/blockchain/setup_forkchoice_test.go b/beacon-chain/blockchain/setup_forkchoice_test.go index 62cfea7657..481bb074fb 100644 --- a/beacon-chain/blockchain/setup_forkchoice_test.go +++ b/beacon-chain/blockchain/setup_forkchoice_test.go @@ -124,5 +124,5 @@ func Test_setupForkchoiceTree_Head(t *testing.T) { require.NotEqual(t, fRoot, root) require.Equal(t, root, service.startupHeadRoot()) require.NoError(t, service.setupForkchoiceTree(st)) - require.Equal(t, 2, service.cfg.ForkChoiceStore.NodeCount()) + require.Equal(t, 3, service.cfg.ForkChoiceStore.NodeCount()) } diff --git a/changelog/potuz_fix_forkchoice_startup.md b/changelog/potuz_fix_forkchoice_startup.md new file mode 100644 index 0000000000..eace33d3ec --- /dev/null +++ b/changelog/potuz_fix_forkchoice_startup.md @@ -0,0 +1,3 @@ +### Fixed + +- Fixed an off-by-one in forkchoice startup.