eth: polish

This commit is contained in:
Gary Rong 2025-06-18 14:31:38 +08:00
parent a6ba71620a
commit 13bd2b4371
2 changed files with 4 additions and 3 deletions

View file

@ -283,7 +283,7 @@ func (api *ConsensusAPI) forkchoiceUpdated(update engine.ForkchoiceStateV1, payl
// that should be fixed, not papered over. // that should be fixed, not papered over.
header := api.remoteBlocks.get(update.HeadBlockHash) header := api.remoteBlocks.get(update.HeadBlockHash)
if header == nil { if header == nil {
log.Warn("Forkchoice requested unknown head, trying to retrieve it from a random peer", "hash", update.HeadBlockHash) log.Warn("Forkchoice requested unknown head, trying to retrieve from network", "hash", update.HeadBlockHash)
retrievedHead, err := api.eth.Downloader().GetHeader(update.HeadBlockHash) retrievedHead, err := api.eth.Downloader().GetHeader(update.HeadBlockHash)
if err != nil { if err != nil {
log.Warn("Could not retrieve unknown head from peers") log.Warn("Could not retrieve unknown head from peers")

View file

@ -64,20 +64,21 @@ func (d *Downloader) GetHeader(hash common.Hash) (*types.Header, error) {
// available due to fresh startup // available due to fresh startup
d.peers.lock.RLock() d.peers.lock.RLock()
defer d.peers.lock.RUnlock() defer d.peers.lock.RUnlock()
for _, peer := range d.peers.peers { for _, peer := range d.peers.peers {
if peer == nil { if peer == nil {
return nil, errors.New("could not find peer") return nil, errors.New("could not find peer")
} }
// Found a peer, attempt to retrieve the header whilst blocking and // Found a peer, attempt to retrieve the header whilst blocking and
// retry if it fails for whatever reason // retry if it fails for whatever reason
log.Debug("Attempting to retrieve sync target", "peer", peer.id) log.Debug("Attempting to retrieve sync target", "peer", peer.id, "hash", hash)
headers, metas, err := d.fetchHeadersByHash(peer, hash, 1, 0, false) headers, metas, err := d.fetchHeadersByHash(peer, hash, 1, 0, false)
if err != nil || len(headers) != 1 { if err != nil || len(headers) != 1 {
continue continue
} }
// Head header retrieved, if the hash matches, start the actual sync // Head header retrieved, if the hash matches, start the actual sync
if metas[0] != hash { if metas[0] != hash {
log.Warn("Received invalid sync target", "want", hash, "have", metas[0]) log.Warn("Received invalid sync target", "peer", peer.id, "want", hash, "have", metas[0])
continue continue
} }
return headers[0], nil return headers[0], nil