From 16f28bdca209fed73a0acfb4ea61dd398fc55bbf Mon Sep 17 00:00:00 2001 From: buddh0 Date: Thu, 18 Jul 2024 13:55:32 +0800 Subject: [PATCH] consensus/parlia: modify the offset --- consensus/parlia/parlia.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/consensus/parlia/parlia.go b/consensus/parlia/parlia.go index 8c3db64f87..e33d44965e 100644 --- a/consensus/parlia/parlia.go +++ b/consensus/parlia/parlia.go @@ -742,8 +742,8 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash // If we're at the genesis, snapshot the initial state. Alternatively if we have // piled up more headers than allowed to be reorged (chain reinit from a freezer), // consider the checkpoint trusted and snapshot it. - // even BEP-341 enabled, an offset `p.config.Epoch/2` can ensure getting the right validators. - if number == 0 || (number%p.config.Epoch == p.config.Epoch/2 && (len(headers) > int(params.FullImmutabilityThreshold))) { + // An offset `p.config.Epoch - 1` can ensure getting the right validators. + if number == 0 || ((number+1)%p.config.Epoch == 0 && (len(headers) > int(params.FullImmutabilityThreshold))) { var ( checkpoint *types.Header blockHash common.Hash @@ -754,7 +754,7 @@ func (p *Parlia) snapshot(chain consensus.ChainHeaderReader, number uint64, hash blockHash = checkpoint.Hash() } } else { - checkpoint = chain.GetHeaderByNumber(number - p.config.Epoch/2) + checkpoint = chain.GetHeaderByNumber(number + 1 - p.config.Epoch) blockHeader := chain.GetHeaderByNumber(number) if blockHeader != nil { blockHash = blockHeader.Hash()