mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 21:07:18 +00:00
Update forkchoice justified on init sync (#10801)
* Update forkchoice justified on init sync * handle err * add regression test Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
This commit is contained in:
parent
2cc62cdf40
commit
8f18920ac7
@ -518,6 +518,9 @@ func (s *Service) handleBlockAfterBatchVerify(ctx context.Context, signed interf
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
s.store.SetFinalizedCheckptAndPayloadHash(fCheckpoint, h)
|
s.store.SetFinalizedCheckptAndPayloadHash(fCheckpoint, h)
|
||||||
|
if err := s.cfg.ForkChoiceStore.UpdateFinalizedCheckpoint(fCheckpoint); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := s.cfg.ForkChoiceStore.Prune(ctx, bytesutil.ToBytes32(fCheckpoint.Root)); err != nil {
|
if err := s.cfg.ForkChoiceStore.Prune(ctx, bytesutil.ToBytes32(fCheckpoint.Root)); err != nil {
|
||||||
return errors.Wrap(err, "could not prune proto array fork choice nodes")
|
return errors.Wrap(err, "could not prune proto array fork choice nodes")
|
||||||
}
|
}
|
||||||
|
@ -242,8 +242,7 @@ func (s *Service) updateJustifiedInitSync(ctx context.Context, cp *ethpb.Checkpo
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
s.store.SetJustifiedCheckptAndPayloadHash(cp, h)
|
s.store.SetJustifiedCheckptAndPayloadHash(cp, h)
|
||||||
|
return s.cfg.ForkChoiceStore.UpdateJustifiedCheckpoint(cp)
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) updateFinalized(ctx context.Context, cp *ethpb.Checkpoint) error {
|
func (s *Service) updateFinalized(ctx context.Context, cp *ethpb.Checkpoint) error {
|
||||||
|
@ -305,7 +305,7 @@ func TestStore_OnBlockBatch_ProtoArray(t *testing.T) {
|
|||||||
var blks []interfaces.SignedBeaconBlock
|
var blks []interfaces.SignedBeaconBlock
|
||||||
var blkRoots [][32]byte
|
var blkRoots [][32]byte
|
||||||
var firstState state.BeaconState
|
var firstState state.BeaconState
|
||||||
for i := 1; i < 10; i++ {
|
for i := 1; i < 97; i++ {
|
||||||
b, err := util.GenerateFullBlock(bState, keys, util.DefaultBlockGenConfig(), types.Slot(i))
|
b, err := util.GenerateFullBlock(bState, keys, util.DefaultBlockGenConfig(), types.Slot(i))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
wsb, err := wrapper.WrappedSignedBeaconBlock(b)
|
wsb, err := wrapper.WrappedSignedBeaconBlock(b)
|
||||||
@ -335,6 +335,11 @@ func TestStore_OnBlockBatch_ProtoArray(t *testing.T) {
|
|||||||
require.ErrorIs(t, errWrongBlockCount, err)
|
require.ErrorIs(t, errWrongBlockCount, err)
|
||||||
err = service.onBlockBatch(ctx, blks[1:], blkRoots[1:])
|
err = service.onBlockBatch(ctx, blks[1:], blkRoots[1:])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
jcp, err := service.store.JustifiedCheckpt()
|
||||||
|
require.NoError(t, err)
|
||||||
|
jroot := bytesutil.ToBytes32(jcp.Root)
|
||||||
|
require.Equal(t, blkRoots[63], jroot)
|
||||||
|
require.Equal(t, types.Epoch(2), service.cfg.ForkChoiceStore.JustifiedEpoch())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestStore_OnBlockBatch_DoublyLinkedTree(t *testing.T) {
|
func TestStore_OnBlockBatch_DoublyLinkedTree(t *testing.T) {
|
||||||
@ -370,7 +375,7 @@ func TestStore_OnBlockBatch_DoublyLinkedTree(t *testing.T) {
|
|||||||
var blks []interfaces.SignedBeaconBlock
|
var blks []interfaces.SignedBeaconBlock
|
||||||
var blkRoots [][32]byte
|
var blkRoots [][32]byte
|
||||||
var firstState state.BeaconState
|
var firstState state.BeaconState
|
||||||
for i := 1; i < 10; i++ {
|
for i := 1; i < 97; i++ {
|
||||||
b, err := util.GenerateFullBlock(bState, keys, util.DefaultBlockGenConfig(), types.Slot(i))
|
b, err := util.GenerateFullBlock(bState, keys, util.DefaultBlockGenConfig(), types.Slot(i))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
wsb, err = wrapper.WrappedSignedBeaconBlock(b)
|
wsb, err = wrapper.WrappedSignedBeaconBlock(b)
|
||||||
@ -400,6 +405,11 @@ func TestStore_OnBlockBatch_DoublyLinkedTree(t *testing.T) {
|
|||||||
require.ErrorIs(t, errWrongBlockCount, err)
|
require.ErrorIs(t, errWrongBlockCount, err)
|
||||||
err = service.onBlockBatch(ctx, blks[1:], blkRoots[1:])
|
err = service.onBlockBatch(ctx, blks[1:], blkRoots[1:])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
jcp, err := service.store.JustifiedCheckpt()
|
||||||
|
require.NoError(t, err)
|
||||||
|
jroot := bytesutil.ToBytes32(jcp.Root)
|
||||||
|
require.Equal(t, blkRoots[63], jroot)
|
||||||
|
require.Equal(t, types.Epoch(2), service.cfg.ForkChoiceStore.JustifiedEpoch())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestStore_OnBlockBatch_NotifyNewPayload(t *testing.T) {
|
func TestStore_OnBlockBatch_NotifyNewPayload(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user