cmd, eth, node: deprecate personal namespace (#26390)
* eth: cmd: deprecate personal namespace * eth: cmd: move deprecation to node * node: disable toml of enablepersonal * node: disable personal on ipc as well * Update node/node.go Co-authored-by: Martin Holst Swende <martin@swende.se> * console: error -> warn * node: less roulette --------- Co-authored-by: Martin Holst Swende <martin@swende.se>
This commit is contained in:
parent
a8cf4399a9
commit
d0a4989a8d
@ -77,7 +77,7 @@ func localConsole(ctx *cli.Context) error {
|
|||||||
// Attach to the newly started node and create the JavaScript console.
|
// Attach to the newly started node and create the JavaScript console.
|
||||||
client, err := stack.Attach()
|
client, err := stack.Attach()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed to attach to the inproc geth: %v", err)
|
return fmt.Errorf("failed to attach to the inproc geth: %v", err)
|
||||||
}
|
}
|
||||||
config := console.Config{
|
config := console.Config{
|
||||||
DataDir: utils.MakeDataDir(ctx),
|
DataDir: utils.MakeDataDir(ctx),
|
||||||
@ -87,7 +87,7 @@ func localConsole(ctx *cli.Context) error {
|
|||||||
}
|
}
|
||||||
console, err := console.New(config)
|
console, err := console.New(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed to start the JavaScript console: %v", err)
|
return fmt.Errorf("failed to start the JavaScript console: %v", err)
|
||||||
}
|
}
|
||||||
defer console.Stop(false)
|
defer console.Stop(false)
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ipcAPIs = "admin:1.0 debug:1.0 engine:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0"
|
ipcAPIs = "admin:1.0 debug:1.0 engine:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 rpc:1.0 txpool:1.0 web3:1.0"
|
||||||
httpAPIs = "eth:1.0 net:1.0 rpc:1.0 web3:1.0"
|
httpAPIs = "eth:1.0 net:1.0 rpc:1.0 web3:1.0"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -65,6 +65,7 @@ var (
|
|||||||
utils.USBFlag,
|
utils.USBFlag,
|
||||||
utils.SmartCardDaemonPathFlag,
|
utils.SmartCardDaemonPathFlag,
|
||||||
utils.OverrideShanghai,
|
utils.OverrideShanghai,
|
||||||
|
utils.EnablePersonal,
|
||||||
utils.EthashCacheDirFlag,
|
utils.EthashCacheDirFlag,
|
||||||
utils.EthashCachesInMemoryFlag,
|
utils.EthashCachesInMemoryFlag,
|
||||||
utils.EthashCachesOnDiskFlag,
|
utils.EthashCachesOnDiskFlag,
|
||||||
|
@ -785,6 +785,11 @@ var (
|
|||||||
Usage: "Allow for unprotected (non EIP155 signed) transactions to be submitted via RPC",
|
Usage: "Allow for unprotected (non EIP155 signed) transactions to be submitted via RPC",
|
||||||
Category: flags.APICategory,
|
Category: flags.APICategory,
|
||||||
}
|
}
|
||||||
|
EnablePersonal = &cli.BoolFlag{
|
||||||
|
Name: "rpc.enabledeprecatedpersonal",
|
||||||
|
Usage: "Enables the (deprecated) personal namespace",
|
||||||
|
Category: flags.APICategory,
|
||||||
|
}
|
||||||
|
|
||||||
// Network Settings
|
// Network Settings
|
||||||
MaxPeersFlag = &cli.IntFlag{
|
MaxPeersFlag = &cli.IntFlag{
|
||||||
@ -1466,6 +1471,10 @@ func SetNodeConfig(ctx *cli.Context, cfg *node.Config) {
|
|||||||
cfg.JWTSecret = ctx.String(JWTSecretFlag.Name)
|
cfg.JWTSecret = ctx.String(JWTSecretFlag.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ctx.IsSet(EnablePersonal.Name) {
|
||||||
|
cfg.EnablePersonal = true
|
||||||
|
}
|
||||||
|
|
||||||
if ctx.IsSet(ExternalSignerFlag.Name) {
|
if ctx.IsSet(ExternalSignerFlag.Name) {
|
||||||
cfg.ExternalSigner = ctx.String(ExternalSignerFlag.Name)
|
cfg.ExternalSigner = ctx.String(ExternalSignerFlag.Name)
|
||||||
}
|
}
|
||||||
@ -1853,6 +1862,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
|
|||||||
cfg.EthDiscoveryURLs = SplitAndTrim(urls)
|
cfg.EthDiscoveryURLs = SplitAndTrim(urls)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Override any default configs for hard coded networks.
|
// Override any default configs for hard coded networks.
|
||||||
switch {
|
switch {
|
||||||
case ctx.Bool(MainnetFlag.Name):
|
case ctx.Bool(MainnetFlag.Name):
|
||||||
|
@ -215,7 +215,7 @@ func (c *Console) initExtensions() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Compute aliases from server-provided modules.
|
// Compute aliases from server-provided modules.
|
||||||
aliases := map[string]struct{}{"eth": {}, "personal": {}}
|
aliases := map[string]struct{}{"eth": {}}
|
||||||
for api := range apis {
|
for api := range apis {
|
||||||
if api == "web3" {
|
if api == "web3" {
|
||||||
continue
|
continue
|
||||||
@ -260,6 +260,7 @@ func (c *Console) initPersonal(vm *goja.Runtime, bridge *bridge) {
|
|||||||
if personal == nil || c.prompter == nil {
|
if personal == nil || c.prompter == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
log.Warn("Enabling deprecated personal namespace")
|
||||||
jeth := vm.NewObject()
|
jeth := vm.NewObject()
|
||||||
vm.Set("jeth", jeth)
|
vm.Set("jeth", jeth)
|
||||||
jeth.Set("openWallet", personal.Get("openWallet"))
|
jeth.Set("openWallet", personal.Get("openWallet"))
|
||||||
|
@ -199,6 +199,9 @@ type Config struct {
|
|||||||
|
|
||||||
// JWTSecret is the path to the hex-encoded jwt secret.
|
// JWTSecret is the path to the hex-encoded jwt secret.
|
||||||
JWTSecret string `toml:",omitempty"`
|
JWTSecret string `toml:",omitempty"`
|
||||||
|
|
||||||
|
// EnablePersonal enables the deprecated personal namespace.
|
||||||
|
EnablePersonal bool `toml:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPCEndpoint resolves an IPC endpoint based on a configured value, taking into
|
// IPCEndpoint resolves an IPC endpoint based on a configured value, taking into
|
||||||
|
20
node/node.go
20
node/node.go
@ -376,13 +376,25 @@ func (n *Node) obtainJWTSecret(cliParam string) ([]byte, error) {
|
|||||||
// startup. It's not meant to be called at any time afterwards as it makes certain
|
// startup. It's not meant to be called at any time afterwards as it makes certain
|
||||||
// assumptions about the state of the node.
|
// assumptions about the state of the node.
|
||||||
func (n *Node) startRPC() error {
|
func (n *Node) startRPC() error {
|
||||||
if err := n.startInProc(); err != nil {
|
// Filter out personal api
|
||||||
|
var apis []rpc.API
|
||||||
|
for _, api := range n.rpcAPIs {
|
||||||
|
if api.Namespace == "personal" {
|
||||||
|
if n.config.EnablePersonal {
|
||||||
|
log.Warn("Deprecated personal namespace activated")
|
||||||
|
} else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
apis = append(apis, api)
|
||||||
|
}
|
||||||
|
if err := n.startInProc(apis); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure IPC.
|
// Configure IPC.
|
||||||
if n.ipc.endpoint != "" {
|
if n.ipc.endpoint != "" {
|
||||||
if err := n.ipc.start(n.rpcAPIs); err != nil {
|
if err := n.ipc.start(apis); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -510,8 +522,8 @@ func (n *Node) stopRPC() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// startInProc registers all RPC APIs on the inproc server.
|
// startInProc registers all RPC APIs on the inproc server.
|
||||||
func (n *Node) startInProc() error {
|
func (n *Node) startInProc(apis []rpc.API) error {
|
||||||
for _, api := range n.rpcAPIs {
|
for _, api := range apis {
|
||||||
if err := n.inprocHandler.RegisterName(api.Namespace, api.Service); err != nil {
|
if err := n.inprocHandler.RegisterName(api.Namespace, api.Service); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user