From 36fb59d699524c9bb89f1785b8e1cc84154f7fec Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Tue, 7 Mar 2017 18:28:43 +0100 Subject: [PATCH] main,import: Add --nocompaction flag + multiple import files --- cmd/geth/chaincmd.go | 20 +++++++++++++++++--- cmd/geth/main.go | 1 + 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go index 784692261f..6ff5c2cc06 100644 --- a/cmd/geth/chaincmd.go +++ b/cmd/geth/chaincmd.go @@ -122,7 +122,7 @@ func initGenesis(ctx *cli.Context) error { } func importChain(ctx *cli.Context) error { - if len(ctx.Args()) != 1 { + if len(ctx.Args()) < 1 { utils.Fatalf("This command requires an argument.") } stack := makeFullNode(ctx) @@ -146,9 +146,19 @@ func importChain(ctx *cli.Context) error { }() // Import the chain start := time.Now() - if err := utils.ImportChain(chain, ctx.Args().First()); err != nil { - utils.Fatalf("Import error: %v", err) + + if len(ctx.Args()) == 1 { + if err := utils.ImportChain(chain, ctx.Args().First()); err != nil { + utils.Fatalf("Import error: %v", err) + } + } else { + for _, arg := range ctx.Args() { + if err := utils.ImportChain(chain, arg); err != nil { + log.Error("Import error", "err", err) + } + } } + fmt.Printf("Import done in %v.\n\n", time.Since(start)) // Output pre-compaction stats mostly to see the import trashing @@ -171,6 +181,10 @@ func importChain(ctx *cli.Context) error { fmt.Printf("Allocations: %.3f million\n", float64(mem.Mallocs)/1000000) fmt.Printf("GC pause: %v\n\n", time.Duration(mem.PauseTotalNs)) + if ctx.GlobalIsSet(utils.NoCompactionFlag.Name) { + return nil + } + // Compact the entire database to more accurately measure disk io and print the stats start = time.Now() fmt.Println("Compacting entire database...") diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 79893cc04d..1f6f2bb295 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -140,6 +140,7 @@ func init() { utils.EthStatsURLFlag, utils.MetricsEnabledFlag, utils.FakePoWFlag, + utils.NoCompactionFlag, utils.SolcPathFlag, utils.GpoMinGasPriceFlag, utils.GpoMaxGasPriceFlag,