diff options
author | zsfelfoldi <zsfelfoldi@gmail.com> | 2015-12-16 11:26:23 +0800 |
---|---|---|
committer | zsfelfoldi <zsfelfoldi@gmail.com> | 2016-06-16 23:36:38 +0800 |
commit | 3a97280ae889bb6852ba16e70750a37b2ed08473 (patch) | |
tree | 41e078895ddd76fe81b323539046b7d9df8b17b3 /cmd | |
parent | a38be3eb488a349693a9c9905ab015278281f8db (diff) | |
download | dexon-3a97280ae889bb6852ba16e70750a37b2ed08473.tar.gz dexon-3a97280ae889bb6852ba16e70750a37b2ed08473.tar.zst dexon-3a97280ae889bb6852ba16e70750a37b2ed08473.zip |
eth: separate common and full node-specific API and backend service
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/geth/main.go | 10 | ||||
-rw-r--r-- | cmd/gethrpctest/main.go | 2 | ||||
-rw-r--r-- | cmd/utils/flags.go | 7 |
3 files changed, 15 insertions, 4 deletions
diff --git a/cmd/geth/main.go b/cmd/geth/main.go index c372430f1..623f8ac81 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -29,6 +29,7 @@ import ( "time" "github.com/ethereum/ethash" + "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/console" @@ -313,11 +314,10 @@ func startNode(ctx *cli.Context, stack *node.Node) { utils.StartNode(stack) // Unlock any account specifically requested - var ethereum *eth.Ethereum - if err := stack.Service(ðereum); err != nil { + var accman *accounts.Manager + if err := stack.Service(&accman); err != nil { utils.Fatalf("ethereum service not running: %v", err) } - accman := ethereum.AccountManager() passwords := utils.MakePasswordList(ctx) accounts := strings.Split(ctx.GlobalString(utils.UnlockedAccountFlag.Name), ",") @@ -328,6 +328,10 @@ func startNode(ctx *cli.Context, stack *node.Node) { } // Start auxiliary services if enabled if ctx.GlobalBool(utils.MiningEnabledFlag.Name) { + var ethereum *eth.FullNodeService + if err := stack.Service(ðereum); err != nil { + utils.Fatalf("ethereum service not running: %v", err) + } if err := ethereum.StartMining(ctx.GlobalInt(utils.MinerThreadsFlag.Name), ctx.GlobalString(utils.MiningGPUFlag.Name)); err != nil { utils.Fatalf("Failed to start mining: %v", err) } diff --git a/cmd/gethrpctest/main.go b/cmd/gethrpctest/main.go index 2e07e9426..668efbfc7 100644 --- a/cmd/gethrpctest/main.go +++ b/cmd/gethrpctest/main.go @@ -146,7 +146,7 @@ func MakeSystemNode(keydir string, privkey string, test *tests.BlockTest) (*node // RunTest executes the specified test against an already pre-configured protocol // stack to ensure basic checks pass before running RPC tests. func RunTest(stack *node.Node, test *tests.BlockTest) error { - var ethereum *eth.Ethereum + var ethereum *eth.FullNodeService stack.Service(ðereum) blockchain := ethereum.BlockChain() diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 14898b987..38ba3a9ba 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -763,6 +763,13 @@ func MakeSystemNode(name, version string, relconf release.Config, extra []byte, if err != nil { Fatalf("Failed to create the protocol stack: %v", err) } + + if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { + return accman, nil + }); err != nil { + Fatalf("Failed to register the account manager service: %v", err) + } + if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { return eth.New(ctx, ethConf) }); err != nil { |