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
181a3309
Unverified
Commit
181a3309
authored
May 03, 2017
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/geth, cmd/utils: init/removedb on light/full dbs simultaneously
parent
02fa3e31
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
42 deletions
+45
-42
chaincmd.go
cmd/geth/chaincmd.go
+41
-32
flags.go
cmd/utils/flags.go
+4
-10
No files found.
cmd/geth/chaincmd.go
View file @
181a3309
...
...
@@ -103,17 +103,14 @@ Use "ethereum dump 0" to dump the genesis block.
// initGenesis will initialise the given JSON format genesis file and writes it as
// the zero'd block (i.e. genesis) or will fail hard if it can't succeed.
func
initGenesis
(
ctx
*
cli
.
Context
)
error
{
// Make sure we have a valid genesis JSON
genesisPath
:=
ctx
.
Args
()
.
First
()
if
len
(
genesisPath
)
==
0
{
utils
.
Fatalf
(
"
m
ust supply path to genesis JSON file"
)
utils
.
Fatalf
(
"
M
ust supply path to genesis JSON file"
)
}
stack
:=
makeFullNode
(
ctx
)
chaindb
:=
utils
.
MakeChainDatabase
(
ctx
,
stack
)
file
,
err
:=
os
.
Open
(
genesisPath
)
if
err
!=
nil
{
utils
.
Fatalf
(
"
f
ailed to read genesis file: %v"
,
err
)
utils
.
Fatalf
(
"
F
ailed to read genesis file: %v"
,
err
)
}
defer
file
.
Close
()
...
...
@@ -121,12 +118,19 @@ func initGenesis(ctx *cli.Context) error {
if
err
:=
json
.
NewDecoder
(
file
)
.
Decode
(
genesis
);
err
!=
nil
{
utils
.
Fatalf
(
"invalid genesis file: %v"
,
err
)
}
// Open an initialise both full and light databases
stack
:=
makeFullNode
(
ctx
)
for
_
,
name
:=
range
[]
string
{
"chaindata"
,
"lightchaindata"
}
{
chaindb
,
err
:=
stack
.
OpenDatabase
(
name
,
0
,
0
)
if
err
!=
nil
{
utils
.
Fatalf
(
"Failed to open database: %v"
,
err
)
}
_
,
hash
,
err
:=
core
.
SetupGenesisBlock
(
chaindb
,
genesis
)
if
err
!=
nil
{
utils
.
Fatalf
(
"failed to write genesis block: %v"
,
err
)
utils
.
Fatalf
(
"Failed to write genesis block: %v"
,
err
)
}
log
.
Info
(
"Successfully wrote genesis state"
,
"database"
,
name
,
"hash"
,
hash
)
}
log
.
Info
(
"Successfully wrote genesis state"
,
"hash"
,
hash
)
return
nil
}
...
...
@@ -245,24 +249,29 @@ func exportChain(ctx *cli.Context) error {
func
removeDB
(
ctx
*
cli
.
Context
)
error
{
stack
,
_
:=
makeConfigNode
(
ctx
)
dbdir
:=
stack
.
ResolvePath
(
utils
.
ChainDbName
(
ctx
))
for
_
,
name
:=
range
[]
string
{
"chaindata"
,
"lightchaindata"
}
{
// Ensure the database exists in the first place
logger
:=
log
.
New
(
"database"
,
name
)
dbdir
:=
stack
.
ResolvePath
(
name
)
if
!
common
.
FileExist
(
dbdir
)
{
fmt
.
Println
(
dbdir
,
"does not exist"
)
return
nil
logger
.
Info
(
"Database doesn't exist, skipping"
,
"path"
,
dbdir
)
continue
}
// Confirm removal and execute
fmt
.
Println
(
dbdir
)
confirm
,
err
:=
console
.
Stdin
.
PromptConfirm
(
"Remove this database?"
)
switch
{
case
err
!=
nil
:
utils
.
Fatalf
(
"%v"
,
err
)
case
!
confirm
:
fmt
.
Println
(
"Opera
tion aborted"
)
logger
.
Warn
(
"Database dele
tion aborted"
)
default
:
fmt
.
Println
(
"Removing..."
)
start
:=
time
.
Now
()
os
.
RemoveAll
(
dbdir
)
fmt
.
Printf
(
"Removed in %v
\n
"
,
time
.
Since
(
start
))
logger
.
Info
(
"Database successfully deleted"
,
"elapsed"
,
common
.
PrettyDuration
(
time
.
Since
(
start
)))
}
}
return
nil
}
...
...
cmd/utils/flags.go
View file @
181a3309
...
...
@@ -908,22 +908,16 @@ func SetupNetwork(ctx *cli.Context) {
params
.
TargetGasLimit
=
new
(
big
.
Int
)
.
SetUint64
(
ctx
.
GlobalUint64
(
TargetGasLimitFlag
.
Name
))
}
func
ChainDbName
(
ctx
*
cli
.
Context
)
string
{
if
ctx
.
GlobalBool
(
LightModeFlag
.
Name
)
{
return
"lightchaindata"
}
else
{
return
"chaindata"
}
}
// MakeChainDatabase open an LevelDB using the flags passed to the client and will hard crash if it fails.
func
MakeChainDatabase
(
ctx
*
cli
.
Context
,
stack
*
node
.
Node
)
ethdb
.
Database
{
var
(
cache
=
ctx
.
GlobalInt
(
CacheFlag
.
Name
)
handles
=
makeDatabaseHandles
()
name
=
ChainDbName
(
ctx
)
)
name
:=
"chaindata"
if
ctx
.
GlobalBool
(
LightModeFlag
.
Name
)
{
name
=
"lightchaindata"
}
chainDb
,
err
:=
stack
.
OpenDatabase
(
name
,
cache
,
handles
)
if
err
!=
nil
{
Fatalf
(
"Could not open database: %v"
,
err
)
...
...
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