Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
d6adadc5
Commit
d6adadc5
authored
May 18, 2015
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1033 from tgerring/issue1010
Add "removedb" command to Geth
parents
a3a5f8b5
0864f1fc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
70 additions
and
33 deletions
+70
-33
admin.go
cmd/geth/admin.go
+3
-3
main.go
cmd/geth/main.go
+26
-19
cmd.go
cmd/utils/cmd.go
+41
-11
No files found.
cmd/geth/admin.go
View file @
d6adadc5
...
@@ -383,7 +383,7 @@ func (js *jsre) unlock(call otto.FunctionCall) otto.Value {
...
@@ -383,7 +383,7 @@ func (js *jsre) unlock(call otto.FunctionCall) otto.Value {
var
passphrase
string
var
passphrase
string
if
arg
.
IsUndefined
()
{
if
arg
.
IsUndefined
()
{
fmt
.
Println
(
"Please enter a passphrase now."
)
fmt
.
Println
(
"Please enter a passphrase now."
)
passphrase
,
err
=
read
Password
(
"Passphrase: "
,
true
)
passphrase
,
err
=
utils
.
Prompt
Password
(
"Passphrase: "
,
true
)
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
err
)
fmt
.
Println
(
err
)
return
otto
.
FalseValue
()
return
otto
.
FalseValue
()
...
@@ -410,12 +410,12 @@ func (js *jsre) newAccount(call otto.FunctionCall) otto.Value {
...
@@ -410,12 +410,12 @@ func (js *jsre) newAccount(call otto.FunctionCall) otto.Value {
if
arg
.
IsUndefined
()
{
if
arg
.
IsUndefined
()
{
fmt
.
Println
(
"The new account will be encrypted with a passphrase."
)
fmt
.
Println
(
"The new account will be encrypted with a passphrase."
)
fmt
.
Println
(
"Please enter a passphrase now."
)
fmt
.
Println
(
"Please enter a passphrase now."
)
auth
,
err
:=
read
Password
(
"Passphrase: "
,
true
)
auth
,
err
:=
utils
.
Prompt
Password
(
"Passphrase: "
,
true
)
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
err
)
fmt
.
Println
(
err
)
return
otto
.
FalseValue
()
return
otto
.
FalseValue
()
}
}
confirm
,
err
:=
read
Password
(
"Repeat Passphrase: "
,
false
)
confirm
,
err
:=
utils
.
Prompt
Password
(
"Repeat Passphrase: "
,
false
)
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
err
)
fmt
.
Println
(
err
)
return
otto
.
FalseValue
()
return
otto
.
FalseValue
()
...
...
cmd/geth/main.go
View file @
d6adadc5
...
@@ -21,7 +21,6 @@
...
@@ -21,7 +21,6 @@
package
main
package
main
import
(
import
(
"bufio"
"fmt"
"fmt"
"io"
"io"
"io/ioutil"
"io/ioutil"
...
@@ -44,7 +43,6 @@ import (
...
@@ -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
...
@@ -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
...
@@ -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
:=
read
Password
(
"Passphrase: "
,
true
)
auth
,
err
:=
utils
.
Prompt
Password
(
"Passphrase: "
,
true
)
if
err
!=
nil
{
if
err
!=
nil
{
utils
.
Fatalf
(
"%v"
,
err
)
utils
.
Fatalf
(
"%v"
,
err
)
}
}
if
confirmation
{
if
confirmation
{
confirm
,
err
:=
read
Password
(
"Repeat Passphrase: "
,
false
)
confirm
,
err
:=
utils
.
Prompt
Password
(
"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) {
...
@@ -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 {
...
@@ -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
}
cmd/utils/cmd.go
View file @
d6adadc5
...
@@ -22,11 +22,13 @@
...
@@ -22,11 +22,13 @@
package
utils
package
utils
import
(
import
(
"bufio"
"fmt"
"fmt"
"io"
"io"
"os"
"os"
"os/signal"
"os/signal"
"regexp"
"regexp"
"strings"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core"
...
@@ -35,6 +37,7 @@ import (
...
@@ -35,6 +37,7 @@ import (
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/rlp"
"github.com/ethereum/go-ethereum/rlp"
"github.com/peterh/liner"
)
)
var
interruptCallbacks
=
[]
func
(
os
.
Signal
){}
var
interruptCallbacks
=
[]
func
(
os
.
Signal
){}
...
@@ -71,18 +74,45 @@ func openLogFile(Datadir string, filename string) *os.File {
...
@@ -71,18 +74,45 @@ func openLogFile(Datadir string, filename string) *os.File {
return
file
return
file
}
}
func
confirm
(
message
string
)
bool
{
func
PromptConfirm
(
prompt
string
)
(
bool
,
error
)
{
fmt
.
Println
(
message
,
"Are you sure? (y/n)"
)
var
(
var
r
string
input
string
fmt
.
Scanln
(
&
r
)
err
error
for
;
;
fmt
.
Scanln
(
&
r
)
{
)
if
r
==
"n"
||
r
==
"y"
{
prompt
=
prompt
+
" [y/N] "
break
}
else
{
if
liner
.
TerminalSupported
()
{
fmt
.
Printf
(
"Yes or no? (%s)"
,
r
)
lr
:=
liner
.
NewLiner
()
}
defer
lr
.
Close
()
input
,
err
=
lr
.
Prompt
(
prompt
)
}
else
{
fmt
.
Print
(
prompt
)
input
,
err
=
bufio
.
NewReader
(
os
.
Stdin
)
.
ReadString
(
'\n'
)
fmt
.
Println
()
}
if
len
(
input
)
>
0
&&
strings
.
ToUpper
(
input
[
:
1
])
==
"Y"
{
return
true
,
nil
}
else
{
return
false
,
nil
}
return
false
,
err
}
func
PromptPassword
(
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."
)
}
}
return
r
==
"y"
fmt
.
Print
(
prompt
)
input
,
err
:=
bufio
.
NewReader
(
os
.
Stdin
)
.
ReadString
(
'\n'
)
fmt
.
Println
()
return
input
,
err
}
}
func
initDataDir
(
Datadir
string
)
{
func
initDataDir
(
Datadir
string
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment