mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-22 20:56:42 +00:00
eth/syncer: use current head instead
This commit is contained in:
parent
22a5129867
commit
2b9c350060
1 changed files with 18 additions and 14 deletions
|
|
@ -138,20 +138,6 @@ func (s *Syncer) run() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the finalized and safe markers relative to the sync target.
|
|
||||||
// The finalized marker is set two epochs behind the target,
|
|
||||||
// and the safe marker is set one epoch behind the target.
|
|
||||||
if header := s.backend.BlockChain().GetHeaderByNumber(target.Number.Uint64() - params.EpochLength*2); header != nil {
|
|
||||||
if final := s.backend.BlockChain().CurrentFinalBlock(); final == nil || final.Number.Cmp(header.Number) < 0 {
|
|
||||||
s.backend.BlockChain().SetFinalized(header)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if header := s.backend.BlockChain().GetHeaderByNumber(target.Number.Uint64() - params.EpochLength); header != nil {
|
|
||||||
if safe := s.backend.BlockChain().CurrentSafeBlock(); safe == nil || safe.Number.Cmp(header.Number) < 0 {
|
|
||||||
s.backend.BlockChain().SetSafe(header)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Terminate the node if the target has been reached
|
// Terminate the node if the target has been reached
|
||||||
if s.exitWhenSynced {
|
if s.exitWhenSynced {
|
||||||
if block := s.backend.BlockChain().GetBlockByHash(target.Hash()); block != nil {
|
if block := s.backend.BlockChain().GetBlockByHash(target.Hash()); block != nil {
|
||||||
|
|
@ -161,6 +147,24 @@ func (s *Syncer) run() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the finalized and safe markers relative to the current head.
|
||||||
|
// The finalized marker is set two epochs behind the target,
|
||||||
|
// and the safe marker is set one epoch behind the target.
|
||||||
|
head := s.backend.BlockChain().CurrentHeader()
|
||||||
|
if head == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if header := s.backend.BlockChain().GetHeaderByNumber(head.Number.Uint64() - params.EpochLength*2); header != nil {
|
||||||
|
if final := s.backend.BlockChain().CurrentFinalBlock(); final == nil || final.Number.Cmp(header.Number) < 0 {
|
||||||
|
s.backend.BlockChain().SetFinalized(header)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if header := s.backend.BlockChain().GetHeaderByNumber(head.Number.Uint64() - params.EpochLength); header != nil {
|
||||||
|
if safe := s.backend.BlockChain().CurrentSafeBlock(); safe == nil || safe.Number.Cmp(header.Number) < 0 {
|
||||||
|
s.backend.BlockChain().SetSafe(header)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case <-s.closed:
|
case <-s.closed:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue