如何在RSK上使用personal_sendTransaction ?



我正在运行一个RSK节点,我试图使用personal_sendTransaction发送交易,但我得到这个错误:

The local wallet feature is disabled

我该如何解决这个问题?提前感谢

您正在尝试使用personal模块此功能需要将您的帐户导入节点。在另一个答案中,通过"添加"将帐户导入节点公钥和私钥以明文形式存在RSKj配置文件,这是不安全的,因为获得对文件系统的访问权限就足够了来破坏你的私钥。因此,使用这种方法可能只是为了方便,仅在Testnet或Regtest上使用主网上的任何帐户都不能使用

另一种方法是启用personal模块,使用personal_importRawKeyRPC添加新帐户。这种方式更安全一点,因为密码短语

即使运行节点的机器受到威胁,攻击者可以读取配置文件,因此,您的私钥不会因此受到损害。

详细步骤如下:

(1)使能personal模块(默认使能):

rpc {
modules = [
...,
{
name: "personal",
version: "1.0",
enabled: "true"
},
...
]
}

(2)调用personal_importRawKeyRPC添加新帐户:

curl 
-X POST 
--data '{"jsonrpc":"2.0","method":"personal_importRawKey","params":["YOUR_RAW_KEY", "YOUR_PASSPHRASE"],"id":1}' 
--header "Content-Type:application/json" 
http://localhost:4444/

(3)在使用该账户签署交易之前,您将需要调用personal_unlockAccount对于您刚刚创建的帐户。注意,DURATION是可选的,默认为300(5分钟)。

curl 
-X POST 
--data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["YOUR_ACCOUNT_ADDRESS", "YOUR_PASSPHRASE", DURATION],"id":1}' 
--header "Content-Type:application/json" 
http://localhost:4444/

您正在尝试使用personal模块此功能意味着将您的帐户导入到节点

注意:出于安全考虑,不建议使用,然而,有可能做到。

为了做到这一点,您需要在RSKj配置文件中为此配置节点。这应该是RSK主网的main.conf:

(1)使能personal模块(默认使能):

rpc {
modules = [
...,
{
name: "personal",
version: "1.0",
enabled: "true"
},
...
]
}

(2)启用wallet并添加您的帐户:

wallet {
enabled = true
accounts = [
{
"publicKey" : "<PUBLIC_KEY>"
"privateKey" : "<PRIVATE_KEY>"
}
]
}

之后,您将能够使用以下所有RPC方法:

  • personal_sendTransaction
  • personal_importRawKey
  • personal_listAccounts
  • personal_lockAccount
  • personal_newAccount
  • personal_unlockAccount

例子:

curl 
-X POST 
--data '{"jsonrpc":"2.0","method":"personal_newAccount","params":["password"],"id":1}' 
--header "Content-Type:application/json" 
http://localhost:4444

相关内容

  • 没有找到相关文章

最新更新