aboutsummaryrefslogtreecommitdiffstats
path: root/eth/downloader
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2018-03-03 07:52:39 +0800
committerFelix Lange <fjl@users.noreply.github.com>2018-03-03 07:52:39 +0800
commitca64a122d33008c155c35a9d0e78cfbcafb1820a (patch)
treed82ca9f07ba8eadd116d08861e96c3283b1b76e4 /eth/downloader
parent12f4d284114a719e9a0779933e8770c352ed1767 (diff)
downloaddexon-ca64a122d33008c155c35a9d0e78cfbcafb1820a.tar.gz
dexon-ca64a122d33008c155c35a9d0e78cfbcafb1820a.tar.zst
dexon-ca64a122d33008c155c35a9d0e78cfbcafb1820a.zip
eth/downloader: save and load trie sync progress (#16224)
Diffstat (limited to 'eth/downloader')
-rw-r--r--eth/downloader/downloader.go6
-rw-r--r--eth/downloader/statesync.go4
2 files changed, 9 insertions, 1 deletions
diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go
index d13247766..70febf4cb 100644
--- a/eth/downloader/downloader.go
+++ b/eth/downloader/downloader.go
@@ -27,6 +27,7 @@ import (
ethereum "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/event"
@@ -221,7 +222,10 @@ func New(mode SyncMode, stateDb ethdb.Database, mux *event.TypeMux, chain BlockC
quitCh: make(chan struct{}),
stateCh: make(chan dataPack),
stateSyncStart: make(chan *stateSync),
- trackStateReq: make(chan *stateReq),
+ syncStatsState: stateSyncStats{
+ processed: core.GetTrieSyncProgress(stateDb),
+ },
+ trackStateReq: make(chan *stateReq),
}
go dl.qosTuner()
go dl.stateFetcher()
diff --git a/eth/downloader/statesync.go b/eth/downloader/statesync.go
index 9cc65a208..ee6c7b491 100644
--- a/eth/downloader/statesync.go
+++ b/eth/downloader/statesync.go
@@ -23,6 +23,7 @@ import (
"time"
"github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/crypto/sha3"
"github.com/ethereum/go-ethereum/ethdb"
@@ -466,4 +467,7 @@ func (s *stateSync) updateStats(written, duplicate, unexpected int, duration tim
if written > 0 || duplicate > 0 || unexpected > 0 {
log.Info("Imported new state entries", "count", written, "elapsed", common.PrettyDuration(duration), "processed", s.d.syncStatsState.processed, "pending", s.d.syncStatsState.pending, "retry", len(s.tasks), "duplicate", s.d.syncStatsState.duplicate, "unexpected", s.d.syncStatsState.unexpected)
}
+ if written > 0 {
+ core.WriteTrieSyncProgress(s.d.stateDB, s.d.syncStatsState.processed)
+ }
}