我正在运行一个RSK节点,我试图使用personal_sendTransaction
发送交易,但我得到这个错误:
The local wallet feature is disabled
我该如何解决这个问题?提前感谢
您正在尝试使用personal
模块此功能需要将您的帐户导入节点。在另一个答案中,通过"添加"将帐户导入节点公钥和私钥以明文形式存在RSKj配置文件,这是不安全的,因为获得对文件系统的访问权限就足够了来破坏你的私钥。因此,使用这种方法可能只是为了方便,仅在Testnet或Regtest上使用主网上的任何帐户都不能使用
另一种方法是启用personal
模块,使用personal_importRawKey
RPC添加新帐户。这种方式更安全一点,因为密码短语
即使运行节点的机器受到威胁,攻击者可以读取配置文件,因此,您的私钥不会因此受到损害。
详细步骤如下:
(1)使能personal
模块(默认使能):
rpc {
modules = [
...,
{
name: "personal",
version: "1.0",
enabled: "true"
},
...
]
}
(2)调用personal_importRawKey
RPC添加新帐户:
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