aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2019-05-13 20:28:01 +0800
committerGitHub <noreply@github.com>2019-05-13 20:28:01 +0800
commit9effd642901e13765dcc1396392ba55a18f66ccf (patch)
tree57355cff7ea6c5efbb5702c6e62ec7b698d4ff15 /cmd
parent40cdcf8c47ff094775aca08fd5d94051f9cf1dbb (diff)
downloadgo-tangerine-9effd642901e13765dcc1396392ba55a18f66ccf.tar
go-tangerine-9effd642901e13765dcc1396392ba55a18f66ccf.tar.gz
go-tangerine-9effd642901e13765dcc1396392ba55a18f66ccf.tar.bz2
go-tangerine-9effd642901e13765dcc1396392ba55a18f66ccf.tar.lz
go-tangerine-9effd642901e13765dcc1396392ba55a18f66ccf.tar.xz
go-tangerine-9effd642901e13765dcc1396392ba55a18f66ccf.tar.zst
go-tangerine-9effd642901e13765dcc1396392ba55a18f66ccf.zip
core, eth, trie: bloom filter for trie node dedup during fast sync (#19489)
* core, eth, trie: bloom filter for trie node dedup during fast sync * eth/downloader, trie: address review comments * core, ethdb, trie: restart fast-sync bloom construction now and again * eth/downloader: initialize fast sync bloom on startup * eth: reenable eth/62 until we properly remove it
Diffstat (limited to 'cmd')
-rw-r--r--cmd/geth/chaincmd.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go
index 21e4017fa..582f0b768 100644
--- a/cmd/geth/chaincmd.go
+++ b/cmd/geth/chaincmd.go
@@ -35,6 +35,7 @@ import (
"github.com/ethereum/go-ethereum/eth/downloader"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/log"
+ "github.com/ethereum/go-ethereum/trie"
"gopkg.in/urfave/cli.v1"
)
@@ -375,11 +376,16 @@ func copyDb(ctx *cli.Context) error {
defer stack.Close()
chain, chainDb := utils.MakeChain(ctx, stack)
- syncmode := *utils.GlobalTextMarshaler(ctx, utils.SyncModeFlag.Name).(*downloader.SyncMode)
- dl := downloader.New(syncmode, 0, chainDb, new(event.TypeMux), chain, nil, nil)
+ syncMode := *utils.GlobalTextMarshaler(ctx, utils.SyncModeFlag.Name).(*downloader.SyncMode)
+
+ var syncBloom *trie.SyncBloom
+ if syncMode == downloader.FastSync {
+ syncBloom = trie.NewSyncBloom(uint64(ctx.GlobalInt(utils.CacheFlag.Name)/2), chainDb)
+ }
+ dl := downloader.New(0, chainDb, syncBloom, new(event.TypeMux), chain, nil, nil)
// Create a source peer to satisfy downloader requests from
- db, err := rawdb.NewLevelDBDatabase(ctx.Args().First(), ctx.GlobalInt(utils.CacheFlag.Name), 256, "")
+ db, err := rawdb.NewLevelDBDatabase(ctx.Args().First(), ctx.GlobalInt(utils.CacheFlag.Name)/2, 256, "")
if err != nil {
return err
}
@@ -395,7 +401,7 @@ func copyDb(ctx *cli.Context) error {
start := time.Now()
currentHeader := hc.CurrentHeader()
- if err = dl.Synchronise("local", currentHeader.Hash(), hc.GetTd(currentHeader.Hash(), currentHeader.Number.Uint64()), syncmode); err != nil {
+ if err = dl.Synchronise("local", currentHeader.Hash(), hc.GetTd(currentHeader.Hash(), currentHeader.Number.Uint64()), syncMode); err != nil {
return err
}
for dl.Synchronising() {