diff --git a/docs/README.md b/docs/README.md index b5d7993d2c49031785e3038b22db95367e30bb6a..95ba38b0da9718268cbf040a65d7571d7925ad63 100644 --- a/docs/README.md +++ b/docs/README.md @@ -19,18 +19,4 @@ $ bor server $ bor server --config ./legacy.toml ``` -- Modules, vhost and Cors configuration are common for all jsonrpc endpoints. - -Before: - -``` -$ bor --http --http.modules "eth,web" --ws --ws.modules "eth,web" -``` - -Now: - -``` -$ bor server --http --ws --jsonrpc.modules "eth,web" -``` - - ```Admin```, ```Personal``` and account related endpoints in ```Eth``` are being removed from the JsonRPC interface. Some of this functionality will be moved to the new GRPC server for operational tasks. diff --git a/docs/cli/server.md b/docs/cli/server.md index e2d961579a0299f0265dff8e26f6714c52605fd1..14e645907b32b1ee4e73367f637806e360eecd2c 100644 --- a/docs/cli/server.md +++ b/docs/cli/server.md @@ -109,8 +109,6 @@ The ```bor server``` command runs the Bor client. - ```jsonrpc.vhosts```: Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. -- ```jsonrpc.modules```: API's offered over the HTTP-RPC interface. - - ```http```: Enable the HTTP-RPC server. - ```http.addr```: HTTP-RPC server listening interface. @@ -119,6 +117,8 @@ The ```bor server``` command runs the Bor client. - ```http.rpcprefix```: HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all paths. +- ```http.modules```: API's offered over the HTTP-RPC interface. + - ```ws```: Enable the WS-RPC server. - ```ws.addr```: WS-RPC server listening interface. @@ -127,6 +127,8 @@ The ```bor server``` command runs the Bor client. - ```ws.rpcprefix```: HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths. +- ```ws.modules```: API's offered over the WS-RPC interface. + - ```graphql```: Enable GraphQL on the HTTP-RPC server. Note that GraphQL can only be started if an HTTP server is started as well. ### P2P Options diff --git a/internal/cli/server/config.go b/internal/cli/server/config.go index a42470af45303bb609b4918fa2e112b1738ca166..0c3b8a5549b29a0de02546a50f3604a2193ec9f3 100644 --- a/internal/cli/server/config.go +++ b/internal/cli/server/config.go @@ -214,9 +214,6 @@ type JsonRPCConfig struct { // IPCPath is the path of the ipc endpoint IPCPath string `hcl:"ipc-path,optional"` - // Modules is the list of enabled api modules - Modules []string `hcl:"modules,optional"` - // VHost is the list of valid virtual hosts VHost []string `hcl:"vhost,optional"` @@ -256,6 +253,9 @@ type APIConfig struct { // Host is the address to bind the api Host string `hcl:"host,optional"` + + // Modules is the list of enabled api modules + Modules []string `hcl:"modules,optional"` } type GpoConfig struct { @@ -438,7 +438,6 @@ func DefaultConfig() *Config { JsonRPC: &JsonRPCConfig{ IPCDisable: false, IPCPath: "", - Modules: []string{"web3", "net"}, Cors: []string{"*"}, VHost: []string{"*"}, GasCap: ethconfig.Defaults.RPCGasCap, @@ -448,12 +447,14 @@ func DefaultConfig() *Config { Port: 8545, Prefix: "", Host: "localhost", + Modules: []string{"web3", "net"}, }, Ws: &APIConfig{ Enabled: false, Port: 8546, Prefix: "", Host: "localhost", + Modules: []string{"web3", "net"}, }, Graphql: &APIConfig{ Enabled: false, @@ -851,11 +852,11 @@ func (c *Config) buildNode() (*node.Config, error) { ListenAddr: c.P2P.Bind + ":" + strconv.Itoa(int(c.P2P.Port)), DiscoveryV5: c.P2P.Discovery.V5Enabled, }, - HTTPModules: c.JsonRPC.Modules, + HTTPModules: c.JsonRPC.Http.Modules, HTTPCors: c.JsonRPC.Cors, HTTPVirtualHosts: c.JsonRPC.VHost, HTTPPathPrefix: c.JsonRPC.Http.Prefix, - WSModules: c.JsonRPC.Modules, + WSModules: c.JsonRPC.Ws.Modules, WSOrigins: c.JsonRPC.Cors, WSPathPrefix: c.JsonRPC.Ws.Prefix, GraphQLCors: c.JsonRPC.Cors, diff --git a/internal/cli/server/flags.go b/internal/cli/server/flags.go index 7403fc6c88206b912b86dce1eaecd33879f85eec..925c4b397eb13b7b02ddc5b0a2a4e9603d7bf01a 100644 --- a/internal/cli/server/flags.go +++ b/internal/cli/server/flags.go @@ -263,11 +263,6 @@ func (c *Command) Flags() *flagset.Flagset { Usage: "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.", Value: &c.cliConfig.JsonRPC.VHost, }) - f.SliceStringFlag(&flagset.SliceStringFlag{ - Name: "jsonrpc.modules", - Usage: "API's offered over the HTTP-RPC interface", - Value: &c.cliConfig.JsonRPC.Modules, - }) // http options f.BoolFlag(&flagset.BoolFlag{ @@ -290,6 +285,12 @@ func (c *Command) Flags() *flagset.Flagset { Usage: "HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all paths.", Value: &c.cliConfig.JsonRPC.Http.Prefix, }) + f.SliceStringFlag(&flagset.SliceStringFlag{ + Name: "http.modules", + Usage: "API's offered over the HTTP-RPC interface", + Value: &c.cliConfig.JsonRPC.Http.Modules, + }) + // ws options f.BoolFlag(&flagset.BoolFlag{ Name: "ws", @@ -311,6 +312,12 @@ func (c *Command) Flags() *flagset.Flagset { Usage: "HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths.", Value: &c.cliConfig.JsonRPC.Ws.Prefix, }) + f.SliceStringFlag(&flagset.SliceStringFlag{ + Name: "ws.modules", + Usage: "API's offered over the WS-RPC interface", + Value: &c.cliConfig.JsonRPC.Ws.Modules, + }) + // graphql options f.BoolFlag(&flagset.BoolFlag{ Name: "graphql", diff --git a/internal/cli/server/server.go b/internal/cli/server/server.go index f20ac43d1c1193b7a13fb4843ce71e604b3eeead..e882429e86c9ced1584b9f38432c79ad4c99df46 100644 --- a/internal/cli/server/server.go +++ b/internal/cli/server/server.go @@ -96,7 +96,7 @@ func NewServer(config *Config) (*Server, error) { // graphql is started from another place if config.JsonRPC.Graphql.Enabled { - if err := graphql.New(stack, backend.APIBackend, config.JsonRPC.Cors, config.JsonRPC.Modules); err != nil { + if err := graphql.New(stack, backend.APIBackend, config.JsonRPC.Cors, config.JsonRPC.VHost); err != nil { return nil, fmt.Errorf("failed to register the GraphQL service: %v", err) } }