eth/downloader: add syncmode in events

This commit is contained in:
Felix Lange 2026-04-29 16:08:46 +02:00
parent 714974e32a
commit 07e0168087
2 changed files with 9 additions and 5 deletions

View file

@ -437,17 +437,17 @@ func (d *Downloader) SubscribeSyncEvents(ch chan<- SyncEvent) event.Subscription
// syncToHead starts a block synchronization based on the hash chain from
// the specified head hash.
func (d *Downloader) syncToHead() (err error) {
d.feed.Send(SyncEvent{Type: SyncStarted})
mode := d.getMode()
d.feed.Send(SyncEvent{Type: SyncStarted, Mode: mode})
defer func() {
// reset on error
if err != nil {
d.feed.Send(SyncEvent{Type: SyncFailed, Err: err})
d.feed.Send(SyncEvent{Type: SyncFailed, Mode: mode, Err: err})
} else {
latest := d.blockchain.CurrentHeader()
d.feed.Send(SyncEvent{Type: SyncCompleted, Latest: latest})
d.feed.Send(SyncEvent{Type: SyncCompleted, Mode: mode, Latest: latest})
}
}()
mode := d.getMode()
log.Debug("Backfilling with the network", "mode", mode)
defer func(start time.Time) {

View file

@ -16,7 +16,10 @@
package downloader
import "github.com/ethereum/go-ethereum/core/types"
import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/eth/ethconfig"
)
// SyncEventType represents the type of sync event
type SyncEventType int
@ -30,6 +33,7 @@ const (
// SyncEvent represents a downloader synchronization event
type SyncEvent struct {
Type SyncEventType
Mode ethconfig.SyncMode
Err error // Set when Type is SyncFailed
Latest *types.Header // Set when Type is SyncCompleted
}