我正在运行RSK节点,并尝试使用personal_sendTransaction发送事务,但收到以下错误:
The local wallet feature is disabled我该如何解决这个问题呢?提前感谢
发布于 2021-03-03 20:31:23
您正在尝试使用personal模块,此功能意味着将您的帐户导入到节点。在other answer中,通过在RSKj配置文件中添加纯文本形式的公钥和私钥,将帐户导入到节点中,这是不安全的,因为获得对文件系统的访问权限就足以泄露您的私钥。因此,这种方法可能只是为了方便起见,并且仅在Testnet或Regtest上使用-不适用于Mainnet上的任何帐户。
另一种方法是启用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/发布于 2021-03-01 18:37:08
您正在尝试使用personal模块,此功能意味着将您的帐户导入到节点
注意:出于安全原因,此方法是不推荐的,但是,也可以这样做。
为此,您需要在RSKj配置文件中为此配置您的节点。对于RSK Mainnet,这应该是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:4444https://stackoverflow.com/questions/66363007
复制相似问题