forked from cerc-io/plugeth
cmd, common, node, rpc: rework naming convention to canonical one
This commit is contained in:
parent
7486904b92
commit
900e124bee
@ -96,7 +96,7 @@ func testREPL(t *testing.T, config func(*eth.Config)) (string, *testjethre, *nod
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Create a networkless protocol stack
|
||||
stack, err := node.New(&node.Config{PrivateKey: testNodeKey, Name: "test", NoDiscovery: true, IpcPath: fmt.Sprintf("geth-test-%d.ipc", rand.Int63())})
|
||||
stack, err := node.New(&node.Config{PrivateKey: testNodeKey, Name: "test", NoDiscovery: true, IPCPath: fmt.Sprintf("geth-test-%d.ipc", rand.Int63())})
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create node: %v", err)
|
||||
}
|
||||
@ -142,7 +142,7 @@ func testREPL(t *testing.T, config func(*eth.Config)) (string, *testjethre, *nod
|
||||
stack.Service(ðereum)
|
||||
|
||||
assetPath := filepath.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "cmd", "mist", "assets", "ext")
|
||||
client, err := utils.NewRemoteRPCClientFromString("ipc:" + stack.IpcEndpoint())
|
||||
client, err := utils.NewRemoteRPCClientFromString("ipc:" + stack.IPCEndpoint())
|
||||
if err != nil {
|
||||
t.Fatalf("failed to attach to node: %v", err)
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
|
||||
utils.WSListenAddrFlag,
|
||||
utils.WSPortFlag,
|
||||
utils.WSApiFlag,
|
||||
utils.WSCORSDomainFlag,
|
||||
utils.WSAllowedDomainsFlag,
|
||||
utils.IPCDisabledFlag,
|
||||
utils.IPCApiFlag,
|
||||
utils.IPCPathFlag,
|
||||
@ -425,7 +425,7 @@ func console(ctx *cli.Context) {
|
||||
startNode(ctx, node)
|
||||
|
||||
// Attach to the newly started node, and either execute script or become interactive
|
||||
client, err := utils.NewRemoteRPCClientFromString("ipc:" + node.IpcEndpoint())
|
||||
client, err := utils.NewRemoteRPCClientFromString("ipc:" + node.IPCEndpoint())
|
||||
if err != nil {
|
||||
utils.Fatalf("Failed to attach to the inproc geth: %v", err)
|
||||
}
|
||||
@ -451,7 +451,7 @@ func execScripts(ctx *cli.Context) {
|
||||
startNode(ctx, node)
|
||||
|
||||
// Attach to the newly started node and execute the given scripts
|
||||
client, err := utils.NewRemoteRPCClientFromString("ipc:" + node.IpcEndpoint())
|
||||
client, err := utils.NewRemoteRPCClientFromString("ipc:" + node.IPCEndpoint())
|
||||
if err != nil {
|
||||
utils.Fatalf("Failed to attach to the inproc geth: %v", err)
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ import (
|
||||
var (
|
||||
monitorCommandAttachFlag = cli.StringFlag{
|
||||
Name: "attach",
|
||||
Value: "ipc:" + node.DefaultIpcEndpoint(),
|
||||
Value: "ipc:" + node.DefaultIPCEndpoint(),
|
||||
Usage: "API endpoint to attach to",
|
||||
}
|
||||
monitorCommandRowsFlag = cli.IntFlag{
|
||||
|
@ -93,7 +93,7 @@ var AppHelpFlagGroups = []flagGroup{
|
||||
utils.WSListenAddrFlag,
|
||||
utils.WSPortFlag,
|
||||
utils.WSApiFlag,
|
||||
utils.WSCORSDomainFlag,
|
||||
utils.WSAllowedDomainsFlag,
|
||||
utils.IPCDisabledFlag,
|
||||
utils.IPCApiFlag,
|
||||
utils.IPCPathFlag,
|
||||
|
@ -93,13 +93,13 @@ func main() {
|
||||
func MakeSystemNode(keydir string, privkey string, test *tests.BlockTest) (*node.Node, error) {
|
||||
// Create a networkless protocol stack
|
||||
stack, err := node.New(&node.Config{
|
||||
IpcPath: node.DefaultIpcEndpoint(),
|
||||
HttpHost: common.DefaultHttpHost,
|
||||
HttpPort: common.DefaultHttpPort,
|
||||
HttpModules: []string{"admin", "db", "eth", "debug", "miner", "net", "shh", "txpool", "personal", "web3"},
|
||||
WsHost: common.DefaultWsHost,
|
||||
WsPort: common.DefaultWsPort,
|
||||
WsModules: []string{"admin", "db", "eth", "debug", "miner", "net", "shh", "txpool", "personal", "web3"},
|
||||
IPCPath: node.DefaultIPCEndpoint(),
|
||||
HTTPHost: common.DefaultHTTPHost,
|
||||
HTTPPort: common.DefaultHTTPPort,
|
||||
HTTPModules: []string{"admin", "db", "eth", "debug", "miner", "net", "shh", "txpool", "personal", "web3"},
|
||||
WSHost: common.DefaultWSHost,
|
||||
WSPort: common.DefaultWSPort,
|
||||
WSModules: []string{"admin", "db", "eth", "debug", "miner", "net", "shh", "txpool", "personal", "web3"},
|
||||
NoDiscovery: true,
|
||||
})
|
||||
if err != nil {
|
||||
|
@ -33,7 +33,7 @@ func NewRemoteRPCClient(ctx *cli.Context) (rpc.Client, error) {
|
||||
return NewRemoteRPCClientFromString(endpoint)
|
||||
}
|
||||
// use IPC by default
|
||||
return rpc.NewIPCClient(node.DefaultIpcEndpoint())
|
||||
return rpc.NewIPCClient(node.DefaultIPCEndpoint())
|
||||
}
|
||||
|
||||
// NewRemoteRPCClientFromString returns a RPC client which connects to the given
|
||||
|
@ -232,12 +232,12 @@ var (
|
||||
RPCListenAddrFlag = cli.StringFlag{
|
||||
Name: "rpcaddr",
|
||||
Usage: "HTTP-RPC server listening interface",
|
||||
Value: common.DefaultHttpHost,
|
||||
Value: common.DefaultHTTPHost,
|
||||
}
|
||||
RPCPortFlag = cli.IntFlag{
|
||||
Name: "rpcport",
|
||||
Usage: "HTTP-RPC server listening port",
|
||||
Value: common.DefaultHttpPort,
|
||||
Value: common.DefaultHTTPPort,
|
||||
}
|
||||
RPCCORSDomainFlag = cli.StringFlag{
|
||||
Name: "rpccorsdomain",
|
||||
@ -247,7 +247,7 @@ var (
|
||||
RPCApiFlag = cli.StringFlag{
|
||||
Name: "rpcapi",
|
||||
Usage: "API's offered over the HTTP-RPC interface",
|
||||
Value: rpc.DefaultHttpRpcApis,
|
||||
Value: rpc.DefaultHTTPApis,
|
||||
}
|
||||
IPCDisabledFlag = cli.BoolFlag{
|
||||
Name: "ipcdisable",
|
||||
@ -256,12 +256,12 @@ var (
|
||||
IPCApiFlag = cli.StringFlag{
|
||||
Name: "ipcapi",
|
||||
Usage: "API's offered over the IPC-RPC interface",
|
||||
Value: rpc.DefaultIpcApis,
|
||||
Value: rpc.DefaultIPCApis,
|
||||
}
|
||||
IPCPathFlag = DirectoryFlag{
|
||||
Name: "ipcpath",
|
||||
Usage: "Filename for IPC socket/pipe within the datadir (explicit paths escape it)",
|
||||
Value: DirectoryString{common.DefaultIpcSocket},
|
||||
Value: DirectoryString{common.DefaultIPCSocket},
|
||||
}
|
||||
WSEnabledFlag = cli.BoolFlag{
|
||||
Name: "ws",
|
||||
@ -270,21 +270,21 @@ var (
|
||||
WSListenAddrFlag = cli.StringFlag{
|
||||
Name: "wsaddr",
|
||||
Usage: "WS-RPC server listening interface",
|
||||
Value: common.DefaultWsHost,
|
||||
Value: common.DefaultWSHost,
|
||||
}
|
||||
WSPortFlag = cli.IntFlag{
|
||||
Name: "wsport",
|
||||
Usage: "WS-RPC server listening port",
|
||||
Value: common.DefaultWsPort,
|
||||
Value: common.DefaultWSPort,
|
||||
}
|
||||
WSApiFlag = cli.StringFlag{
|
||||
Name: "wsapi",
|
||||
Usage: "API's offered over the WS-RPC interface",
|
||||
Value: rpc.DefaultHttpRpcApis,
|
||||
Value: rpc.DefaultHTTPApis,
|
||||
}
|
||||
WSCORSDomainFlag = cli.StringFlag{
|
||||
Name: "wscorsdomain",
|
||||
Usage: "Domains from which to accept websockets requests",
|
||||
WSAllowedDomainsFlag = cli.StringFlag{
|
||||
Name: "wsdomains",
|
||||
Usage: "Domains from which to accept websockets requests (can be spoofed)",
|
||||
Value: "",
|
||||
}
|
||||
ExecFlag = cli.StringFlag{
|
||||
@ -393,9 +393,9 @@ func MustMakeDataDir(ctx *cli.Context) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// MakeIpcPath creates an IPC path configuration from the set command line flags,
|
||||
// MakeIPCPath creates an IPC path configuration from the set command line flags,
|
||||
// returning an empty string if IPC was explicitly disabled, or the set path.
|
||||
func MakeIpcPath(ctx *cli.Context) string {
|
||||
func MakeIPCPath(ctx *cli.Context) string {
|
||||
if ctx.GlobalBool(IPCDisabledFlag.Name) {
|
||||
return ""
|
||||
}
|
||||
@ -481,18 +481,18 @@ func MakeNAT(ctx *cli.Context) nat.Interface {
|
||||
return natif
|
||||
}
|
||||
|
||||
// MakeHttpRpcHost creates the HTTP RPC listener interface string from the set
|
||||
// MakeHTTPRpcHost creates the HTTP RPC listener interface string from the set
|
||||
// command line flags, returning empty if the HTTP endpoint is disabled.
|
||||
func MakeHttpRpcHost(ctx *cli.Context) string {
|
||||
func MakeHTTPRpcHost(ctx *cli.Context) string {
|
||||
if !ctx.GlobalBool(RPCEnabledFlag.Name) {
|
||||
return ""
|
||||
}
|
||||
return ctx.GlobalString(RPCListenAddrFlag.Name)
|
||||
}
|
||||
|
||||
// MakeWsRpcHost creates the WebSocket RPC listener interface string from the set
|
||||
// MakeWSRpcHost creates the WebSocket RPC listener interface string from the set
|
||||
// command line flags, returning empty if the HTTP endpoint is disabled.
|
||||
func MakeWsRpcHost(ctx *cli.Context) string {
|
||||
func MakeWSRpcHost(ctx *cli.Context) string {
|
||||
if !ctx.GlobalBool(WSEnabledFlag.Name) {
|
||||
return ""
|
||||
}
|
||||
@ -616,15 +616,15 @@ func MakeSystemNode(name, version string, extra []byte, ctx *cli.Context) *node.
|
||||
NAT: MakeNAT(ctx),
|
||||
MaxPeers: ctx.GlobalInt(MaxPeersFlag.Name),
|
||||
MaxPendingPeers: ctx.GlobalInt(MaxPendingPeersFlag.Name),
|
||||
IpcPath: MakeIpcPath(ctx),
|
||||
HttpHost: MakeHttpRpcHost(ctx),
|
||||
HttpPort: ctx.GlobalInt(RPCPortFlag.Name),
|
||||
HttpCors: ctx.GlobalString(RPCCORSDomainFlag.Name),
|
||||
HttpModules: strings.Split(ctx.GlobalString(RPCApiFlag.Name), ","),
|
||||
WsHost: MakeWsRpcHost(ctx),
|
||||
WsPort: ctx.GlobalInt(WSPortFlag.Name),
|
||||
WsCors: ctx.GlobalString(WSCORSDomainFlag.Name),
|
||||
WsModules: strings.Split(ctx.GlobalString(WSApiFlag.Name), ","),
|
||||
IPCPath: MakeIPCPath(ctx),
|
||||
HTTPHost: MakeHTTPRpcHost(ctx),
|
||||
HTTPPort: ctx.GlobalInt(RPCPortFlag.Name),
|
||||
HTTPCors: ctx.GlobalString(RPCCORSDomainFlag.Name),
|
||||
HTTPModules: strings.Split(ctx.GlobalString(RPCApiFlag.Name), ","),
|
||||
WSHost: MakeWSRpcHost(ctx),
|
||||
WSPort: ctx.GlobalInt(WSPortFlag.Name),
|
||||
WSDomains: ctx.GlobalString(WSAllowedDomainsFlag.Name),
|
||||
WSModules: strings.Split(ctx.GlobalString(WSApiFlag.Name), ","),
|
||||
}
|
||||
// Configure the Ethereum service
|
||||
accman := MakeAccountManager(ctx)
|
||||
|
@ -22,11 +22,11 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultIpcSocket = "geth.ipc" // Default (relative) name of the IPC RPC socket
|
||||
DefaultHttpHost = "localhost" // Default host interface for the HTTP RPC server
|
||||
DefaultHttpPort = 8545 // Default TCP port for the HTTP RPC server
|
||||
DefaultWsHost = "localhost" // Default host interface for the websocket RPC server
|
||||
DefaultWsPort = 8546 // Default TCP port for the websocket RPC server
|
||||
DefaultIPCSocket = "geth.ipc" // Default (relative) name of the IPC RPC socket
|
||||
DefaultHTTPHost = "localhost" // Default host interface for the HTTP RPC server
|
||||
DefaultHTTPPort = 8545 // Default TCP port for the HTTP RPC server
|
||||
DefaultWSHost = "localhost" // Default host interface for the websocket RPC server
|
||||
DefaultWSPort = 8546 // Default TCP port for the websocket RPC server
|
||||
)
|
||||
|
||||
// DefaultDataDir is the default data directory to use for the databases and other
|
||||
|
100
node/config.go
100
node/config.go
@ -53,11 +53,11 @@ type Config struct {
|
||||
// in memory.
|
||||
DataDir string
|
||||
|
||||
// IpcPath is the requested location to place the IPC endpoint. If the path is
|
||||
// IPCPath is the requested location to place the IPC endpoint. If the path is
|
||||
// a simple file name, it is placed inside the data directory (or on the root
|
||||
// pipe path on Windows), whereas if it's a resolvable path name (absolute or
|
||||
// relative), then that specific path is enforced. An empty path disables IPC.
|
||||
IpcPath string
|
||||
IPCPath string
|
||||
|
||||
// This field should be a valid secp256k1 private key that will be used for both
|
||||
// remote peer identification as well as network traffic encryption. If no key
|
||||
@ -99,104 +99,104 @@ type Config struct {
|
||||
// Zero defaults to preset values.
|
||||
MaxPendingPeers int
|
||||
|
||||
// HttpHost is the host interface on which to start the HTTP RPC server. If this
|
||||
// HTTPHost is the host interface on which to start the HTTP RPC server. If this
|
||||
// field is empty, no HTTP API endpoint will be started.
|
||||
HttpHost string
|
||||
HTTPHost string
|
||||
|
||||
// HttpPort is the TCP port number on which to start the HTTP RPC server. The
|
||||
// HTTPPort is the TCP port number on which to start the HTTP RPC server. The
|
||||
// default zero value is/ valid and will pick a port number randomly (useful
|
||||
// for ephemeral nodes).
|
||||
HttpPort int
|
||||
HTTPPort int
|
||||
|
||||
// HttpCors is the Cross-Origin Resource Sharing header to send to requesting
|
||||
// HTTPCors is the Cross-Origin Resource Sharing header to send to requesting
|
||||
// clients. Please be aware that CORS is a browser enforced security, it's fully
|
||||
// useless for custom HTTP clients.
|
||||
HttpCors string
|
||||
HTTPCors string
|
||||
|
||||
// HttpModules is a list of API modules to expose via the HTTP RPC interface.
|
||||
// HTTPModules is a list of API modules to expose via the HTTP RPC interface.
|
||||
// If the module list is empty, all RPC API endpoints designated public will be
|
||||
// exposed.
|
||||
HttpModules []string
|
||||
HTTPModules []string
|
||||
|
||||
// WsHost is the host interface on which to start the websocket RPC server. If
|
||||
// WSHost is the host interface on which to start the websocket RPC server. If
|
||||
// this field is empty, no websocket API endpoint will be started.
|
||||
WsHost string
|
||||
WSHost string
|
||||
|
||||
// WsPort is the TCP port number on which to start the websocket RPC server. The
|
||||
// WSPort is the TCP port number on which to start the websocket RPC server. The
|
||||
// default zero value is/ valid and will pick a port number randomly (useful for
|
||||
// ephemeral nodes).
|
||||
WsPort int
|
||||
WSPort int
|
||||
|
||||
// WsCors is the Cross-Origin Resource Sharing header to send to requesting clients.
|
||||
// Please be aware that CORS is a browser enforced security, it's fully useless
|
||||
// for custom websocket clients.
|
||||
WsCors string
|
||||
// WSDomains is the list of domain to accept websocket requests from. Please be
|
||||
// aware that the server can only act upon the HTTP request the client sends and
|
||||
// cannot verify the validity of the request header.
|
||||
WSDomains string
|
||||
|
||||
// WsModules is a list of API modules to expose via the websocket RPC interface.
|
||||
// WSModules is a list of API modules to expose via the websocket RPC interface.
|
||||
// If the module list is empty, all RPC API endpoints designated public will be
|
||||
// exposed.
|
||||
WsModules []string
|
||||
WSModules []string
|
||||
}
|
||||
|
||||
// IpcEndpoint resolves an IPC endpoint based on a configured value, taking into
|
||||
// IPCEndpoint resolves an IPC endpoint based on a configured value, taking into
|
||||
// account the set data folders as well as the designated platform we're currently
|
||||
// running on.
|
||||
func (c *Config) IpcEndpoint() string {
|
||||
func (c *Config) IPCEndpoint() string {
|
||||
// Short circuit if IPC has not been enabled
|
||||
if c.IpcPath == "" {
|
||||
if c.IPCPath == "" {
|
||||
return ""
|
||||
}
|
||||
// On windows we can only use plain top-level pipes
|
||||
if runtime.GOOS == "windows" {
|
||||
if strings.HasPrefix(c.IpcPath, `\\.\pipe\`) {
|
||||
return c.IpcPath
|
||||
if strings.HasPrefix(c.IPCPath, `\\.\pipe\`) {
|
||||
return c.IPCPath
|
||||
}
|
||||
return `\\.\pipe\` + c.IpcPath
|
||||
return `\\.\pipe\` + c.IPCPath
|
||||
}
|
||||
// Resolve names into the data directory full paths otherwise
|
||||
if filepath.Base(c.IpcPath) == c.IpcPath {
|
||||
if filepath.Base(c.IPCPath) == c.IPCPath {
|
||||
if c.DataDir == "" {
|
||||
return filepath.Join(os.TempDir(), c.IpcPath)
|
||||
return filepath.Join(os.TempDir(), c.IPCPath)
|
||||
}
|
||||
return filepath.Join(c.DataDir, c.IpcPath)
|
||||
return filepath.Join(c.DataDir, c.IPCPath)
|
||||
}
|
||||
return c.IpcPath
|
||||
return c.IPCPath
|
||||
}
|
||||
|
||||
// DefaultIpcEndpoint returns the IPC path used by default.
|
||||
func DefaultIpcEndpoint() string {
|
||||
config := &Config{DataDir: common.DefaultDataDir(), IpcPath: common.DefaultIpcSocket}
|
||||
return config.IpcEndpoint()
|
||||
// DefaultIPCEndpoint returns the IPC path used by default.
|
||||
func DefaultIPCEndpoint() string {
|
||||
config := &Config{DataDir: common.DefaultDataDir(), IPCPath: common.DefaultIPCSocket}
|
||||
return config.IPCEndpoint()
|
||||
}
|
||||
|
||||
// HttpEndpoint resolves an HTTP endpoint based on the configured host interface
|
||||
// HTTPEndpoint resolves an HTTP endpoint based on the configured host interface
|
||||
// and port parameters.
|
||||
func (c *Config) HttpEndpoint() string {
|
||||
if c.HttpHost == "" {
|
||||
func (c *Config) HTTPEndpoint() string {
|
||||
if c.HTTPHost == "" {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf("%s:%d", c.HttpHost, c.HttpPort)
|
||||
return fmt.Sprintf("%s:%d", c.HTTPHost, c.HTTPPort)
|
||||
}
|
||||
|
||||
// DefaultHttpEndpoint returns the HTTP endpoint used by default.
|
||||
func DefaultHttpEndpoint() string {
|
||||
config := &Config{HttpHost: common.DefaultHttpHost, HttpPort: common.DefaultHttpPort}
|
||||
return config.HttpEndpoint()
|
||||
// DefaultHTTPEndpoint returns the HTTP endpoint used by default.
|
||||
func DefaultHTTPEndpoint() string {
|
||||
config := &Config{HTTPHost: common.DefaultHTTPHost, HTTPPort: common.DefaultHTTPPort}
|
||||
return config.HTTPEndpoint()
|
||||
}
|
||||
|
||||
// WsEndpoint resolves an websocket endpoint based on the configured host interface
|
||||
// WSEndpoint resolves an websocket endpoint based on the configured host interface
|
||||
// and port parameters.
|
||||
func (c *Config) WsEndpoint() string {
|
||||
if c.WsHost == "" {
|
||||
func (c *Config) WSEndpoint() string {
|
||||
if c.WSHost == "" {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf("%s:%d", c.WsHost, c.WsPort)
|
||||
return fmt.Sprintf("%s:%d", c.WSHost, c.WSPort)
|
||||
}
|
||||
|
||||
// DefaultWsEndpoint returns the websocket endpoint used by default.
|
||||
func DefaultWsEndpoint() string {
|
||||
config := &Config{WsHost: common.DefaultWsHost, WsPort: common.DefaultWsPort}
|
||||
return config.WsEndpoint()
|
||||
// DefaultWSEndpoint returns the websocket endpoint used by default.
|
||||
func DefaultWSEndpoint() string {
|
||||
config := &Config{WSHost: common.DefaultWSHost, WSPort: common.DefaultWSPort}
|
||||
return config.WSEndpoint()
|
||||
}
|
||||
|
||||
// NodeKey retrieves the currently configured private key of the node, checking
|
||||
|
@ -63,10 +63,10 @@ func TestDatadirCreation(t *testing.T) {
|
||||
|
||||
// Tests that IPC paths are correctly resolved to valid endpoints of different
|
||||
// platforms.
|
||||
func TestIpcPathResolution(t *testing.T) {
|
||||
func TestIPCPathResolution(t *testing.T) {
|
||||
var tests = []struct {
|
||||
DataDir string
|
||||
IpcPath string
|
||||
IPCPath string
|
||||
Windows bool
|
||||
Endpoint string
|
||||
}{
|
||||
@ -85,7 +85,7 @@ func TestIpcPathResolution(t *testing.T) {
|
||||
for i, test := range tests {
|
||||
// Only run when platform/test match
|
||||
if (runtime.GOOS == "windows") == test.Windows {
|
||||
if endpoint := (&Config{DataDir: test.DataDir, IpcPath: test.IpcPath}).IpcEndpoint(); endpoint != test.Endpoint {
|
||||
if endpoint := (&Config{DataDir: test.DataDir, IPCPath: test.IPCPath}).IPCEndpoint(); endpoint != test.Endpoint {
|
||||
t.Errorf("test %d: IPC endpoint mismatch: have %s, want %s", i, endpoint, test.Endpoint)
|
||||
}
|
||||
}
|
||||
|
24
node/node.go
24
node/node.go
@ -68,7 +68,7 @@ type Node struct {
|
||||
|
||||
wsEndpoint string // Websocket endpoint (interface + port) to listen at (empty = websocket disabled)
|
||||
wsWhitelist []string // Websocket RPC modules to allow through this endpoint
|
||||
wsCors string // Websocket RPC Cross-Origin Resource Sharing header
|
||||
wsDomains string // Websocket RPC allowed origin domains
|
||||
wsListener net.Listener // Websocket RPC listener socket to server API requests
|
||||
wsHandler *rpc.Server // Websocket RPC request handler to process the API requests
|
||||
|
||||
@ -107,13 +107,13 @@ func New(conf *Config) (*Node, error) {
|
||||
MaxPendingPeers: conf.MaxPendingPeers,
|
||||
},
|
||||
serviceFuncs: []ServiceConstructor{},
|
||||
ipcEndpoint: conf.IpcEndpoint(),
|
||||
httpEndpoint: conf.HttpEndpoint(),
|
||||
httpWhitelist: conf.HttpModules,
|
||||
httpCors: conf.HttpCors,
|
||||
wsEndpoint: conf.WsEndpoint(),
|
||||
wsWhitelist: conf.WsModules,
|
||||
wsCors: conf.WsCors,
|
||||
ipcEndpoint: conf.IPCEndpoint(),
|
||||
httpEndpoint: conf.HTTPEndpoint(),
|
||||
httpWhitelist: conf.HTTPModules,
|
||||
httpCors: conf.HTTPCors,
|
||||
wsEndpoint: conf.WSEndpoint(),
|
||||
wsWhitelist: conf.WSModules,
|
||||
wsDomains: conf.WSDomains,
|
||||
eventmux: new(event.TypeMux),
|
||||
}, nil
|
||||
}
|
||||
@ -224,7 +224,7 @@ func (n *Node) startRPC(services map[reflect.Type]Service) error {
|
||||
n.stopIPC()
|
||||
return err
|
||||
}
|
||||
if err := n.startWS(n.wsEndpoint, apis, n.wsWhitelist, n.wsCors); err != nil {
|
||||
if err := n.startWS(n.wsEndpoint, apis, n.wsWhitelist, n.wsDomains); err != nil {
|
||||
n.stopHTTP()
|
||||
n.stopIPC()
|
||||
return err
|
||||
@ -388,7 +388,7 @@ func (n *Node) startWS(endpoint string, apis []rpc.API, modules []string, cors s
|
||||
n.wsEndpoint = endpoint
|
||||
n.wsListener = listener
|
||||
n.wsHandler = handler
|
||||
n.wsCors = cors
|
||||
n.wsDomains = cors
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -501,8 +501,8 @@ func (n *Node) DataDir() string {
|
||||
return n.datadir
|
||||
}
|
||||
|
||||
// IpcEndpoint retrieves the current IPC endpoint used by the protocol stack.
|
||||
func (n *Node) IpcEndpoint() string {
|
||||
// IPCEndpoint retrieves the current IPC endpoint used by the protocol stack.
|
||||
func (n *Node) IPCEndpoint() string {
|
||||
return n.ipcEndpoint
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ var (
|
||||
|
||||
func testNodeConfig() *Config {
|
||||
return &Config{
|
||||
IpcPath: fmt.Sprintf("test-%d.ipc", rand.Int63()),
|
||||
IPCPath: fmt.Sprintf("test-%d.ipc", rand.Int63()),
|
||||
PrivateKey: testNodeKey,
|
||||
Name: "test node",
|
||||
}
|
||||
@ -541,7 +541,7 @@ func TestAPIGather(t *testing.T) {
|
||||
defer stack.Stop()
|
||||
|
||||
// Connect to the RPC server and verify the various registered endpoints
|
||||
ipcClient, err := rpc.NewIPCClient(stack.IpcEndpoint())
|
||||
ipcClient, err := rpc.NewIPCClient(stack.IPCEndpoint())
|
||||
if err != nil {
|
||||
t.Fatalf("failed to connect to the IPC API server: %v", err)
|
||||
}
|
||||
|
@ -33,8 +33,8 @@ import (
|
||||
const (
|
||||
stopPendingRequestTimeout = 3 * time.Second // give pending requests stopPendingRequestTimeout the time to finish when the server is stopped
|
||||
|
||||
DefaultIpcApis = "admin,eth,debug,miner,net,shh,txpool,personal,web3"
|
||||
DefaultHttpRpcApis = "eth,net,web3"
|
||||
DefaultIPCApis = "admin,eth,debug,miner,net,shh,txpool,personal,web3"
|
||||
DefaultHTTPApis = "eth,net,web3"
|
||||
)
|
||||
|
||||
// NewServer will create a new server instance with no registered handlers.
|
||||
|
Loading…
Reference in New Issue
Block a user