From 1fa7e70da47d87e71da3138e74b8faa4a2ba977f Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Wed, 16 Apr 2025 17:08:31 +0200 Subject: [PATCH] eth/protocols/eth: put latest snap block in handshake --- eth/protocols/eth/handshake.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/eth/protocols/eth/handshake.go b/eth/protocols/eth/handshake.go index 1922db15b4..14d0c4d93f 100644 --- a/eth/protocols/eth/handshake.go +++ b/eth/protocols/eth/handshake.go @@ -96,10 +96,12 @@ func (p *Peer) handshake69(networkID uint64, chain *core.BlockChain) error { var ( genesis = chain.Genesis() latest = chain.CurrentBlock() + latestSnap = chain.CurrentSnapBlock() forkID = forkid.NewID(chain.Config(), genesis, latest.Number.Uint64(), latest.Time) forkFilter = forkid.NewFilter(chain) earliest, _ = chain.HistoryPruningCutoff() ) + errc := make(chan error, 2) go func() { pkt := &StatusPacket69{ @@ -108,8 +110,13 @@ func (p *Peer) handshake69(networkID uint64, chain *core.BlockChain) error { Genesis: genesis.Hash(), ForkID: forkID, EarliestBlock: earliest, - LatestBlock: latest.Number.Uint64(), - LatestBlockHash: latest.Hash(), + } + if latestSnap != nil && latestSnap.Number.Uint64() > latest.Number.Uint64() { + pkt.LatestBlock = latestSnap.Number.Uint64() + pkt.LatestBlockHash = latestSnap.Hash() + } else { + pkt.LatestBlock = latest.Number.Uint64() + pkt.LatestBlockHash = latest.Hash() } errc <- p2p.Send(p.rw, StatusMsg, pkt) }()