Я запускаю узел RSK и пытаюсь отправить транзакцию с помощью personal_sendTransaction
, но получаю следующую ошибку:
The local wallet feature is disabled
Как я могу это исправить? заранее спасибо
Я запускаю узел RSK и пытаюсь отправить транзакцию с помощью personal_sendTransaction
, но получаю следующую ошибку:
The local wallet feature is disabled
Как я могу это исправить? заранее спасибо
Вы пытаетесь использовать модуль personal
, и эта функция подразумевает импорт вашей учетной записи на узел. В другом ответе учетная запись импортируется в узел путем добавления открытого ключа и закрытого ключа в виде обычного текста в конфигурацию RSKj. файл, а это небезопасно, так как получения доступа к файловой системе достаточно, чтобы скомпрометировать ваш закрытый ключ. Таким образом, этот подход, вероятно, следует использовать только для удобства и только в Testnet или Regtest, а не для каких-либо учетных записей в Mainnet.
Альтернативный подход — при включенном модуле personal
использовать personal_importRawKey
RPC для добавления новых учетных записей. Этот способ немного более безопасен, поскольку парольная фраза не сохраняется в файловой системе.
Даже если машина, на которой работает узел, скомпрометирована, и злоумышленник может прочитать файл конфигурации, в результате ваши закрытые ключи не будут скомпрометированы.
Полные шаги подробно описаны ниже:
(1) Включите модуль thepersonal
(включен по умолчанию):
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. Это должно быть main.conf
для основной сети RSK:
(1) Включите модуль thepersonal
(включен по умолчанию):
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