aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/ethereum
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-03-10 18:24:47 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-03-10 18:24:47 +0800
commitc9b6d268b45ec4cc0b1cc982ba544ed2f0a5ddd6 (patch)
tree867a55771deb1a6768c150ce91654eb72fb54c7e /cmd/ethereum
parent08d396fdba1cbe7d04084db37b2089889a72086e (diff)
parent41a89e18f68f4b12b8212544be01a4e0a6716976 (diff)
downloaddexon-c9b6d268b45ec4cc0b1cc982ba544ed2f0a5ddd6.tar.gz
dexon-c9b6d268b45ec4cc0b1cc982ba544ed2f0a5ddd6.tar.zst
dexon-c9b6d268b45ec4cc0b1cc982ba544ed2f0a5ddd6.zip
Merge pull request #438 from ethersphere/poc9/cli
Poc9/cli (exportchain)
Diffstat (limited to 'cmd/ethereum')
-rw-r--r--cmd/ethereum/main.go43
1 files changed, 32 insertions, 11 deletions
diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index 8b361f7ae..12e205f37 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -87,6 +87,11 @@ runtime will execute the file and exit.
Name: "import",
Usage: `import a blockchain file`,
},
+ {
+ Action: exportchain,
+ Name: "export",
+ Usage: `export blockchain into file`,
+ },
}
app.Author = ""
app.Email = ""
@@ -171,25 +176,39 @@ func importchain(ctx *cli.Context) {
if len(ctx.Args()) != 1 {
utils.Fatalf("This command requires an argument.")
}
- chain, _, _ := utils.GetChain(ctx)
+ chainmgr, _, _ := utils.GetChain(ctx)
start := time.Now()
- err := utils.ImportChain(chain, ctx.Args().First())
+ err := utils.ImportChain(chainmgr, ctx.Args().First())
if err != nil {
utils.Fatalf("Import error: %v\n", err)
}
- fmt.Printf("Import done in", time.Since(start))
+ fmt.Printf("Import done in %v", time.Since(start))
+ return
+}
+
+func exportchain(ctx *cli.Context) {
+ if len(ctx.Args()) != 1 {
+ utils.Fatalf("This command requires an argument.")
+ }
+ chainmgr, _, _ := utils.GetChain(ctx)
+ start := time.Now()
+ err := utils.ExportChain(chainmgr, ctx.Args().First())
+ if err != nil {
+ utils.Fatalf("Export error: %v\n", err)
+ }
+ fmt.Printf("Export done in %v", time.Since(start))
return
}
func dump(ctx *cli.Context) {
- chain, _, stateDb := utils.GetChain(ctx)
+ chainmgr, _, stateDb := utils.GetChain(ctx)
for _, arg := range ctx.Args() {
var block *types.Block
if hashish(arg) {
- block = chain.GetBlock(ethutil.Hex2Bytes(arg))
+ block = chainmgr.GetBlock(ethutil.Hex2Bytes(arg))
} else {
num, _ := strconv.Atoi(arg)
- block = chain.GetBlockByNumber(uint64(num))
+ block = chainmgr.GetBlockByNumber(uint64(num))
}
if block == nil {
fmt.Println("{}")
@@ -209,11 +228,13 @@ func hashish(x string) bool {
}
func version(c *cli.Context) {
- fmt.Printf(`%v %v
-PV=%d
-GOOS=%s
-GO=%s
+ fmt.Printf(`%v
+Version: %v
+Protocol Version: %d
+Network Id: %d
+GO: %s
+OS: %s
GOPATH=%s
GOROOT=%s
-`, ClientIdentifier, Version, eth.ProtocolVersion, runtime.GOOS, runtime.Version(), os.Getenv("GOPATH"), runtime.GOROOT())
+`, ClientIdentifier, Version, eth.ProtocolVersion, eth.NetworkId, runtime.Version(), runtime.GOOS, os.Getenv("GOPATH"), runtime.GOROOT())
}