如何在RSK上使用personal_sendTransaction?
我正在运行一个 RSK 节点,我正在尝试使用发送交易,personal_sendTransaction但出现此错误:
The local wallet feature is disabled
我怎样才能解决这个问题?提前致谢
回答
您正在尝试使用personal模块,此功能意味着将您的帐户导入节点。在另一个答案中,通过在 RSKj 配置文件中以纯文本形式添加公钥和私钥,将帐户导入节点,这是不安全的,因为获得对文件系统的访问权限足以危及您的私钥。因此,这种方法可能只是为了方便起见,并且仅用于 Testnet 或 Regtest - 不适用于 Mainnet 上的任何帐户。
另一种方法是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/