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
b5cf6038
Unverified
Commit
b5cf6038
authored
Oct 23, 2017
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/puppeth: add support for deploying web wallets
parent
1e0c336d
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
366 additions
and
1 deletion
+366
-1
module_explorer.go
cmd/puppeth/module_explorer.go
+1
-1
module_wallet.go
cmd/puppeth/module_wallet.go
+249
-0
wizard_netstats.go
cmd/puppeth/wizard_netstats.go
+8
-0
wizard_network.go
cmd/puppeth/wizard_network.go
+1
-0
wizard_wallet.go
cmd/puppeth/wizard_wallet.go
+107
-0
No files found.
cmd/puppeth/module_explorer.go
View file @
b5cf6038
...
...
@@ -183,7 +183,7 @@ func (info *explorerInfos) Report() map[string]string {
return
report
}
// checkExplorer does a health-check against an b
oot or seal node
server to verify
// checkExplorer does a health-check against an b
lock explorer
server to verify
// whether it's running, and if yes, whether it's responsive.
func
checkExplorer
(
client
*
sshClient
,
network
string
)
(
*
explorerInfos
,
error
)
{
// Inspect a possible block explorer container on the host
...
...
cmd/puppeth/module_wallet.go
0 → 100644
View file @
b5cf6038
This diff is collapsed.
Click to expand it.
cmd/puppeth/wizard_netstats.go
View file @
b5cf6038
...
...
@@ -145,6 +145,14 @@ func (w *wizard) gatherStats(server string, pubkey []byte, client *sshClient) *s
}
else
{
stat
.
services
[
"explorer"
]
=
infos
.
Report
()
}
logger
.
Debug
(
"Checking for wallet availability"
)
if
infos
,
err
:=
checkWallet
(
client
,
w
.
network
);
err
!=
nil
{
if
err
!=
ErrServiceUnknown
{
stat
.
services
[
"wallet"
]
=
map
[
string
]
string
{
"offline"
:
err
.
Error
()}
}
}
else
{
stat
.
services
[
"wallet"
]
=
infos
.
Report
()
}
logger
.
Debug
(
"Checking for faucet availability"
)
if
infos
,
err
:=
checkFaucet
(
client
,
w
.
network
);
err
!=
nil
{
if
err
!=
ErrServiceUnknown
{
...
...
cmd/puppeth/wizard_network.go
View file @
b5cf6038
...
...
@@ -189,6 +189,7 @@ func (w *wizard) deployComponent() {
case
"4"
:
w
.
deployExplorer
()
case
"5"
:
w
.
deployWallet
()
case
"6"
:
w
.
deployFaucet
()
case
"7"
:
...
...
cmd/puppeth/wizard_wallet.go
0 → 100644
View file @
b5cf6038
// Copyright 2017 The go-ethereum Authors
// This file is part of go-ethereum.
//
// go-ethereum is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// go-ethereum is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>.
package
main
import
(
"encoding/json"
"fmt"
"time"
"github.com/ethereum/go-ethereum/log"
)
// deployWallet creates a new web wallet based on some user input.
func
(
w
*
wizard
)
deployWallet
()
{
// Do some sanity check before the user wastes time on input
if
w
.
conf
.
genesis
==
nil
{
log
.
Error
(
"No genesis block configured"
)
return
}
if
w
.
conf
.
ethstats
==
""
{
log
.
Error
(
"No ethstats server configured"
)
return
}
// Select the server to interact with
server
:=
w
.
selectServer
()
if
server
==
""
{
return
}
client
:=
w
.
servers
[
server
]
// Retrieve any active node configurations from the server
infos
,
err
:=
checkWallet
(
client
,
w
.
network
)
if
err
!=
nil
{
infos
=
&
walletInfos
{
nodePort
:
30303
,
rpcPort
:
8545
,
webPort
:
80
,
webHost
:
client
.
server
}
}
infos
.
genesis
,
_
=
json
.
MarshalIndent
(
w
.
conf
.
genesis
,
""
,
" "
)
infos
.
network
=
w
.
conf
.
genesis
.
Config
.
ChainId
.
Int64
()
// Figure out which port to listen on
fmt
.
Println
()
fmt
.
Printf
(
"Which port should the wallet listen on? (default = %d)
\n
"
,
infos
.
webPort
)
infos
.
webPort
=
w
.
readDefaultInt
(
infos
.
webPort
)
// Figure which virtual-host to deploy ethstats on
if
infos
.
webHost
,
err
=
w
.
ensureVirtualHost
(
client
,
infos
.
webPort
,
infos
.
webHost
);
err
!=
nil
{
log
.
Error
(
"Failed to decide on wallet host"
,
"err"
,
err
)
return
}
// Figure out where the user wants to store the persistent data
fmt
.
Println
()
if
infos
.
datadir
==
""
{
fmt
.
Printf
(
"Where should data be stored on the remote machine?
\n
"
)
infos
.
datadir
=
w
.
readString
()
}
else
{
fmt
.
Printf
(
"Where should data be stored on the remote machine? (default = %s)
\n
"
,
infos
.
datadir
)
infos
.
datadir
=
w
.
readDefaultString
(
infos
.
datadir
)
}
// Figure out which port to listen on
fmt
.
Println
()
fmt
.
Printf
(
"Which TCP/UDP port should the backing node listen on? (default = %d)
\n
"
,
infos
.
nodePort
)
infos
.
nodePort
=
w
.
readDefaultInt
(
infos
.
nodePort
)
fmt
.
Println
()
fmt
.
Printf
(
"Which TCP/UDP port should the backing RPC API listen on? (default = %d)
\n
"
,
infos
.
rpcPort
)
infos
.
rpcPort
=
w
.
readDefaultInt
(
infos
.
rpcPort
)
// Set a proper name to report on the stats page
fmt
.
Println
()
if
infos
.
ethstats
==
""
{
fmt
.
Printf
(
"What should the wallet be called on the stats page?
\n
"
)
infos
.
ethstats
=
w
.
readString
()
+
":"
+
w
.
conf
.
ethstats
}
else
{
fmt
.
Printf
(
"What should the wallet be called on the stats page? (default = %s)
\n
"
,
infos
.
ethstats
)
infos
.
ethstats
=
w
.
readDefaultString
(
infos
.
ethstats
)
+
":"
+
w
.
conf
.
ethstats
}
// Try to deploy the wallet on the host
fmt
.
Println
()
fmt
.
Printf
(
"Should the wallet be built from scratch (y/n)? (default = no)
\n
"
)
nocache
:=
w
.
readDefaultString
(
"n"
)
!=
"n"
if
out
,
err
:=
deployWallet
(
client
,
w
.
network
,
w
.
conf
.
bootFull
,
infos
,
nocache
);
err
!=
nil
{
log
.
Error
(
"Failed to deploy wallet container"
,
"err"
,
err
)
if
len
(
out
)
>
0
{
fmt
.
Printf
(
"%s
\n
"
,
out
)
}
return
}
// All ok, run a network scan to pick any changes up
log
.
Info
(
"Waiting for node to finish booting"
)
time
.
Sleep
(
3
*
time
.
Second
)
w
.
networkStats
()
}
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