aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/geth
diff options
context:
space:
mode:
authorBas van Kervel <basvankervel@gmail.com>2017-06-13 17:49:07 +0800
committerBas van Kervel <basvankervel@gmail.com>2017-06-15 17:53:15 +0800
commitb58a5016738b92db19e08ec87ef34ce3250fae6b (patch)
treefa9485b3f711204b14edae5dcbc812e624490c68 /cmd/geth
parent80f7c6c2996ad47f70a5070c400b1fd87a20c59c (diff)
downloaddexon-b58a5016738b92db19e08ec87ef34ce3250fae6b.tar
dexon-b58a5016738b92db19e08ec87ef34ce3250fae6b.tar.gz
dexon-b58a5016738b92db19e08ec87ef34ce3250fae6b.tar.bz2
dexon-b58a5016738b92db19e08ec87ef34ce3250fae6b.tar.lz
dexon-b58a5016738b92db19e08ec87ef34ce3250fae6b.tar.xz
dexon-b58a5016738b92db19e08ec87ef34ce3250fae6b.tar.zst
dexon-b58a5016738b92db19e08ec87ef34ce3250fae6b.zip
whisperv5: integrate whisper and add whisper RPC simulator
Diffstat (limited to 'cmd/geth')
-rw-r--r--cmd/geth/config.go35
-rw-r--r--cmd/geth/main.go3
-rw-r--r--cmd/geth/usage.go10
3 files changed, 36 insertions, 12 deletions
diff --git a/cmd/geth/config.go b/cmd/geth/config.go
index b76da3042..6a0183204 100644
--- a/cmd/geth/config.go
+++ b/cmd/geth/config.go
@@ -33,6 +33,7 @@ import (
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/node"
"github.com/ethereum/go-ethereum/params"
+ whisper "github.com/ethereum/go-ethereum/whisper/whisperv5"
"github.com/naoina/toml"
)
@@ -42,7 +43,7 @@ var (
Name: "dumpconfig",
Usage: "Show configuration values",
ArgsUsage: "",
- Flags: append(nodeFlags, rpcFlags...),
+ Flags: append(append(nodeFlags, rpcFlags...), whisper.Flags...),
Category: "MISCELLANEOUS COMMANDS",
Description: `The dumpconfig command shows configuration values.`,
}
@@ -76,6 +77,7 @@ type ethstatsConfig struct {
type gethConfig struct {
Eth eth.Config
+ Shh whisper.Config
Node node.Config
Ethstats ethstatsConfig
}
@@ -99,8 +101,8 @@ func defaultNodeConfig() node.Config {
cfg := node.DefaultConfig
cfg.Name = clientIdentifier
cfg.Version = params.VersionWithCommit(gitCommit)
- cfg.HTTPModules = append(cfg.HTTPModules, "eth")
- cfg.WSModules = append(cfg.WSModules, "eth")
+ cfg.HTTPModules = append(cfg.HTTPModules, "eth", "shh")
+ cfg.WSModules = append(cfg.WSModules, "eth", "shh")
cfg.IPCPath = "geth.ipc"
return cfg
}
@@ -109,6 +111,7 @@ func makeConfigNode(ctx *cli.Context) (*node.Node, gethConfig) {
// Load defaults.
cfg := gethConfig{
Eth: eth.DefaultConfig,
+ Shh: whisper.DefaultConfig,
Node: defaultNodeConfig(),
}
@@ -130,19 +133,37 @@ func makeConfigNode(ctx *cli.Context) (*node.Node, gethConfig) {
cfg.Ethstats.URL = ctx.GlobalString(utils.EthStatsURLFlag.Name)
}
+ utils.SetShhConfig(ctx, stack, &cfg.Shh)
+
return stack, cfg
}
+// enableWhisper returns true in case one of the whisper flags is set.
+func enableWhisper(ctx *cli.Context) bool {
+ for _, flag := range whisper.Flags {
+ if ctx.GlobalIsSet(flag.GetName()) {
+ return true
+ }
+ }
+ return false
+}
+
func makeFullNode(ctx *cli.Context) *node.Node {
stack, cfg := makeConfigNode(ctx)
utils.RegisterEthService(stack, &cfg.Eth)
- // Whisper must be explicitly enabled, but is auto-enabled in --dev mode.
- shhEnabled := ctx.GlobalBool(utils.WhisperEnabledFlag.Name)
- shhAutoEnabled := !ctx.GlobalIsSet(utils.WhisperEnabledFlag.Name) && ctx.GlobalIsSet(utils.DevModeFlag.Name)
+ // Whisper must be explicitly enabled by specifying at least 1 whisper flag or in dev mode
+ shhEnabled := enableWhisper(ctx)
+ shhAutoEnabled := !ctx.GlobalIsSet(whisper.WhisperEnabledFlag.Name) && ctx.GlobalIsSet(utils.DevModeFlag.Name)
if shhEnabled || shhAutoEnabled {
- utils.RegisterShhService(stack)
+ if ctx.GlobalIsSet(whisper.MaxMessageSizeFlag.Name) {
+ cfg.Shh.MaxMessageSize = uint32(ctx.Int(whisper.MaxMessageSizeFlag.Name))
+ }
+ if ctx.GlobalIsSet(whisper.MinPOWFlag.Name) {
+ cfg.Shh.MinimumAcceptedPOW = ctx.Float64(whisper.MinPOWFlag.Name)
+ }
+ utils.RegisterShhService(stack, &cfg.Shh)
}
// Add the Ethereum Stats daemon if requested.
diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index cc481796f..c5f783a08 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -35,6 +35,7 @@ import (
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/metrics"
"github.com/ethereum/go-ethereum/node"
+ whisper "github.com/ethereum/go-ethereum/whisper/whisperv5"
"gopkg.in/urfave/cli.v1"
)
@@ -95,7 +96,6 @@ var (
utils.NetrestrictFlag,
utils.NodeKeyFileFlag,
utils.NodeKeyHexFlag,
- utils.WhisperEnabledFlag,
utils.DevModeFlag,
utils.TestnetFlag,
utils.RinkebyFlag,
@@ -161,6 +161,7 @@ func init() {
app.Flags = append(app.Flags, rpcFlags...)
app.Flags = append(app.Flags, consoleFlags...)
app.Flags = append(app.Flags, debug.Flags...)
+ app.Flags = append(app.Flags, whisper.Flags...)
app.Before = func(ctx *cli.Context) error {
runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/cmd/geth/usage.go b/cmd/geth/usage.go
index 2ba504fdd..4a3e22af8 100644
--- a/cmd/geth/usage.go
+++ b/cmd/geth/usage.go
@@ -24,6 +24,7 @@ import (
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/internal/debug"
+ "github.com/ethereum/go-ethereum/whisper/whisperv5"
"gopkg.in/urfave/cli.v1"
)
@@ -188,6 +189,10 @@ var AppHelpFlagGroups = []flagGroup{
}, debug.Flags...),
},
{
+ Name: "Whisper (EXPERIMENTAL)",
+ Flags: whisperv5.Flags,
+ },
+ {
Name: "DEPRECATED",
Flags: []cli.Flag{
utils.FastSyncFlag,
@@ -195,10 +200,7 @@ var AppHelpFlagGroups = []flagGroup{
},
},
{
- Name: "EXPERIMENTAL",
- Flags: []cli.Flag{
- utils.WhisperEnabledFlag,
- },
+ Name: "MISC",
},
}