Explorar o código

refactored old rpc structure to new

Bas van Kervel %!s(int64=10) %!d(string=hai) anos
pai
achega
5c25403b13
Modificáronse 3 ficheiros con 20 adicións e 4 borrados
  1. 1 0
      cmd/geth/main.go
  2. 15 4
      cmd/utils/flags.go
  3. 4 0
      rpc/api/api.go

+ 1 - 0
cmd/geth/main.go

@@ -239,6 +239,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
 		utils.RPCEnabledFlag,
 		utils.RPCListenAddrFlag,
 		utils.RPCPortFlag,
+		utils.RpcApiFlag,
 		utils.IPCDisabledFlag,
 		utils.IPCApiFlag,
 		utils.IPCPathFlag,

+ 15 - 4
cmd/utils/flags.go

@@ -22,7 +22,6 @@ import (
 	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/logger/glog"
 	"github.com/ethereum/go-ethereum/p2p/nat"
-	"github.com/ethereum/go-ethereum/rpc"
 	"github.com/ethereum/go-ethereum/rpc/api"
 	"github.com/ethereum/go-ethereum/rpc/codec"
 	"github.com/ethereum/go-ethereum/rpc/comms"
@@ -209,13 +208,18 @@ var (
 		Usage: "Domain on which to send Access-Control-Allow-Origin header",
 		Value: "",
 	}
+	RpcApiFlag = cli.StringFlag{
+		Name:  "rpcapi",
+		Usage: "Specify the API's which are offered over the HTTP RPC interface",
+		Value: api.DefaultHttpRpcApis,
+	}
 	IPCDisabledFlag = cli.BoolFlag{
 		Name:  "ipcdisable",
 		Usage: "Disable the IPC-RPC server",
 	}
 	IPCApiFlag = cli.StringFlag{
 		Name:  "ipcapi",
-		Usage: "Specify the API's which are offered over this interface",
+		Usage: "Specify the API's which are offered over the IPC interface",
 		Value: api.DefaultIpcApis,
 	}
 	IPCPathFlag = DirectoryFlag{
@@ -457,14 +461,21 @@ func StartIPC(eth *eth.Ethereum, ctx *cli.Context) error {
 }
 
 func StartRPC(eth *eth.Ethereum, ctx *cli.Context) error {
-	config := rpc.RpcConfig{
+	config := comms.HttpConfig{
 		ListenAddress: ctx.GlobalString(RPCListenAddrFlag.Name),
 		ListenPort:    uint(ctx.GlobalInt(RPCPortFlag.Name)),
 		CorsDomain:    ctx.GlobalString(RPCCORSDomainFlag.Name),
 	}
 
 	xeth := xeth.New(eth, nil)
-	return rpc.Start(xeth, config)
+	codec := codec.JSON
+
+	apis, err := api.ParseApiString(ctx.GlobalString(RpcApiFlag.Name), codec, xeth, eth)
+	if err != nil {
+		return err
+	}
+
+	return comms.StartHttp(config, codec, apis...)
 }
 
 func StartPProf(ctx *cli.Context) {

+ 4 - 0
rpc/api/api.go

@@ -20,6 +20,10 @@ const (
 )
 
 var (
+	DefaultHttpRpcApis = strings.Join([]string{
+		EthApiName, NetApiName, Web3ApiName,
+	}, ",")
+
 	// List with all API's which are offered over the IPC interface by default
 	DefaultIpcApis = strings.Join([]string{
 		AdminApiName, EthApiName, DebugApiName, MinerApiName, NetApiName,