【发布时间】:2021-05-27 11:42:24
【问题描述】:
我正在运行一个 RSK 节点,我正在尝试使用 personal_sendTransaction 发送交易,但我收到此错误:
The local wallet feature is disabled
我该如何解决这个问题? 提前谢谢
【问题讨论】:
我正在运行一个 RSK 节点,我正在尝试使用 personal_sendTransaction 发送交易,但我收到此错误:
The local wallet feature is disabled
我该如何解决这个问题? 提前谢谢
【问题讨论】:
您正在尝试使用personal 模块
此功能意味着将您的帐户导入节点。
在other answer,
通过添加将帐户导入节点
明文内的公钥和私钥
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_sendTransactionpersonal_importRawKeypersonal_listAccountspersonal_lockAccountpersonal_newAccountpersonal_unlockAccount例子:
curl \
-X POST \
--data '{"jsonrpc":"2.0","method":"personal_newAccount","params":["password"],"id":1}' \
--header "Content-Type:application/json" \
http://localhost:4444
【讨论】: