forked from cerc-io/plugeth
* cmd/geth: add --nocompaction flag + multiple import files
* main,import: Add --nocompaction flag + multiple import files * geth/import: documentation * import: Added more info to err message * fix :P
This commit is contained in:
parent
4c6f4e569e
commit
544247c918
@ -54,10 +54,13 @@ participating.
|
|||||||
Action: importChain,
|
Action: importChain,
|
||||||
Name: "import",
|
Name: "import",
|
||||||
Usage: "Import a blockchain file",
|
Usage: "Import a blockchain file",
|
||||||
ArgsUsage: "<filename>",
|
ArgsUsage: "<filename> (<filename 2> ... <filename N>) ",
|
||||||
Category: "BLOCKCHAIN COMMANDS",
|
Category: "BLOCKCHAIN COMMANDS",
|
||||||
Description: `
|
Description: `
|
||||||
TODO: Please write this
|
The import command imports blocks from an RLP-encoded form. The form can be one file
|
||||||
|
with several RLP-encoded blocks, or several files can be used.
|
||||||
|
If only one file is used, import error will result in failure. If several files are used,
|
||||||
|
processing will proceed even if an individual RLP-file import failure occurs.
|
||||||
`,
|
`,
|
||||||
}
|
}
|
||||||
exportCommand = cli.Command{
|
exportCommand = cli.Command{
|
||||||
@ -122,7 +125,7 @@ func initGenesis(ctx *cli.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func importChain(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.")
|
utils.Fatalf("This command requires an argument.")
|
||||||
}
|
}
|
||||||
stack := makeFullNode(ctx)
|
stack := makeFullNode(ctx)
|
||||||
@ -146,9 +149,19 @@ func importChain(ctx *cli.Context) error {
|
|||||||
}()
|
}()
|
||||||
// Import the chain
|
// Import the chain
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
||||||
|
if len(ctx.Args()) == 1 {
|
||||||
if err := utils.ImportChain(chain, ctx.Args().First()); err != nil {
|
if err := utils.ImportChain(chain, ctx.Args().First()); err != nil {
|
||||||
utils.Fatalf("Import error: %v", err)
|
utils.Fatalf("Import error: %v", err)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
for _, arg := range ctx.Args() {
|
||||||
|
if err := utils.ImportChain(chain, arg); err != nil {
|
||||||
|
log.Error("Import error", "file", arg, "err", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Printf("Import done in %v.\n\n", time.Since(start))
|
fmt.Printf("Import done in %v.\n\n", time.Since(start))
|
||||||
|
|
||||||
// Output pre-compaction stats mostly to see the import trashing
|
// Output pre-compaction stats mostly to see the import trashing
|
||||||
@ -171,6 +184,10 @@ func importChain(ctx *cli.Context) error {
|
|||||||
fmt.Printf("Allocations: %.3f million\n", float64(mem.Mallocs)/1000000)
|
fmt.Printf("Allocations: %.3f million\n", float64(mem.Mallocs)/1000000)
|
||||||
fmt.Printf("GC pause: %v\n\n", time.Duration(mem.PauseTotalNs))
|
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
|
// Compact the entire database to more accurately measure disk io and print the stats
|
||||||
start = time.Now()
|
start = time.Now()
|
||||||
fmt.Println("Compacting entire database...")
|
fmt.Println("Compacting entire database...")
|
||||||
|
@ -140,6 +140,7 @@ func init() {
|
|||||||
utils.EthStatsURLFlag,
|
utils.EthStatsURLFlag,
|
||||||
utils.MetricsEnabledFlag,
|
utils.MetricsEnabledFlag,
|
||||||
utils.FakePoWFlag,
|
utils.FakePoWFlag,
|
||||||
|
utils.NoCompactionFlag,
|
||||||
utils.SolcPathFlag,
|
utils.SolcPathFlag,
|
||||||
utils.GpoMinGasPriceFlag,
|
utils.GpoMinGasPriceFlag,
|
||||||
utils.GpoMaxGasPriceFlag,
|
utils.GpoMaxGasPriceFlag,
|
||||||
|
@ -244,7 +244,10 @@ var (
|
|||||||
Name: "fakepow",
|
Name: "fakepow",
|
||||||
Usage: "Disables proof-of-work verification",
|
Usage: "Disables proof-of-work verification",
|
||||||
}
|
}
|
||||||
|
NoCompactionFlag = cli.BoolFlag{
|
||||||
|
Name: "nocompaction",
|
||||||
|
Usage: "Disables db compaction after import",
|
||||||
|
}
|
||||||
// RPC settings
|
// RPC settings
|
||||||
RPCEnabledFlag = cli.BoolFlag{
|
RPCEnabledFlag = cli.BoolFlag{
|
||||||
Name: "rpc",
|
Name: "rpc",
|
||||||
|
Loading…
Reference in New Issue
Block a user