|
|
@ -21,7 +21,6 @@ |
|
|
|
package main |
|
|
|
package main |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
import ( |
|
|
|
"bufio" |
|
|
|
|
|
|
|
"fmt" |
|
|
|
"fmt" |
|
|
|
"io" |
|
|
|
"io" |
|
|
|
"io/ioutil" |
|
|
|
"io/ioutil" |
|
|
@ -44,7 +43,6 @@ import ( |
|
|
|
"github.com/ethereum/go-ethereum/logger" |
|
|
|
"github.com/ethereum/go-ethereum/logger" |
|
|
|
"github.com/mattn/go-colorable" |
|
|
|
"github.com/mattn/go-colorable" |
|
|
|
"github.com/mattn/go-isatty" |
|
|
|
"github.com/mattn/go-isatty" |
|
|
|
"github.com/peterh/liner" |
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
import _ "net/http/pprof" |
|
|
|
import _ "net/http/pprof" |
|
|
|
|
|
|
|
|
|
|
@ -230,6 +228,11 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso |
|
|
|
Name: "upgradedb", |
|
|
|
Name: "upgradedb", |
|
|
|
Usage: "upgrade chainblock database", |
|
|
|
Usage: "upgrade chainblock database", |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Action: removeDb, |
|
|
|
|
|
|
|
Name: "removedb", |
|
|
|
|
|
|
|
Usage: "Remove blockchain and state databases", |
|
|
|
|
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
app.Flags = []cli.Flag{ |
|
|
|
app.Flags = []cli.Flag{ |
|
|
|
utils.IdentityFlag, |
|
|
|
utils.IdentityFlag, |
|
|
@ -421,12 +424,12 @@ func getPassPhrase(ctx *cli.Context, desc string, confirmation bool) (passphrase |
|
|
|
passfile := ctx.GlobalString(utils.PasswordFileFlag.Name) |
|
|
|
passfile := ctx.GlobalString(utils.PasswordFileFlag.Name) |
|
|
|
if len(passfile) == 0 { |
|
|
|
if len(passfile) == 0 { |
|
|
|
fmt.Println(desc) |
|
|
|
fmt.Println(desc) |
|
|
|
auth, err := readPassword("Passphrase: ", true) |
|
|
|
auth, err := utils.PromptPassword("Passphrase: ", true) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
utils.Fatalf("%v", err) |
|
|
|
utils.Fatalf("%v", err) |
|
|
|
} |
|
|
|
} |
|
|
|
if confirmation { |
|
|
|
if confirmation { |
|
|
|
confirm, err := readPassword("Repeat Passphrase: ", false) |
|
|
|
confirm, err := utils.PromptPassword("Repeat Passphrase: ", false) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
utils.Fatalf("%v", err) |
|
|
|
utils.Fatalf("%v", err) |
|
|
|
} |
|
|
|
} |
|
|
@ -543,6 +546,25 @@ func exportchain(ctx *cli.Context) { |
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func removeDb(ctx *cli.Context) { |
|
|
|
|
|
|
|
confirm, err := utils.PromptConfirm("Remove local databases?") |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
utils.Fatalf("%v", err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if confirm { |
|
|
|
|
|
|
|
fmt.Println("Removing chain and state databases...") |
|
|
|
|
|
|
|
start := time.Now() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
os.RemoveAll(filepath.Join(ctx.GlobalString(utils.DataDirFlag.Name), "blockchain")) |
|
|
|
|
|
|
|
os.RemoveAll(filepath.Join(ctx.GlobalString(utils.DataDirFlag.Name), "state")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fmt.Printf("Removed in %v\n", time.Since(start)) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
fmt.Println("Operation aborted") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func upgradeDb(ctx *cli.Context) { |
|
|
|
func upgradeDb(ctx *cli.Context) { |
|
|
|
fmt.Println("Upgrade blockchain DB") |
|
|
|
fmt.Println("Upgrade blockchain DB") |
|
|
|
|
|
|
|
|
|
|
@ -666,18 +688,3 @@ func hashish(x string) bool { |
|
|
|
_, err := strconv.Atoi(x) |
|
|
|
_, err := strconv.Atoi(x) |
|
|
|
return err != nil |
|
|
|
return err != nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func readPassword(prompt string, warnTerm bool) (string, error) { |
|
|
|
|
|
|
|
if liner.TerminalSupported() { |
|
|
|
|
|
|
|
lr := liner.NewLiner() |
|
|
|
|
|
|
|
defer lr.Close() |
|
|
|
|
|
|
|
return lr.PasswordPrompt(prompt) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if warnTerm { |
|
|
|
|
|
|
|
fmt.Println("!! Unsupported terminal, password will be echoed.") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
fmt.Print(prompt) |
|
|
|
|
|
|
|
input, err := bufio.NewReader(os.Stdin).ReadString('\n') |
|
|
|
|
|
|
|
fmt.Println() |
|
|
|
|
|
|
|
return input, err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|