Как использовать personal_sendTransaction в RSK?

Я использую узел RSK и пытаюсь отправить транзакцию, используя personal_sendTransaction но я получаю эту ошибку:

      The local wallet feature is disabled

Как я могу это исправить? заранее спасибо

2 ответа

Вы пытаетесь использовать модуль, и эта функция подразумевает импорт вашей учетной записи на узел. В другом ответе учетная запись импортируется в узел путем добавления открытого ключа и закрытого ключа в виде простого текста в конфигурационный файл RSKj, и это небезопасно, поскольку получения доступа к файловой системе достаточно, чтобы скомпрометировать ваш закрытый ключ. Таким образом, этот подход, вероятно, следует использовать только для удобства и только в Testnet или Regtest, а не для каких-либо учетных записей в Mainnet.

Альтернативный подход — при включенном модуле использовать RPC для добавления новых учетных записей. Этот способ немного более безопасен, поскольку парольная фраза не сохраняется в файловой системе.

Даже если машина, на которой работает узел, скомпрометирована, и злоумышленник может прочитать файл конфигурации, в результате ваши закрытые ключи не будут скомпрометированы.

Полные шаги подробно описаны ниже:

(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/

Вы пытаетесь использовать модуль, и эта функция подразумевает импорт вашей учетной записи на узел

ПРИМЕЧАНИЕ. Из соображений безопасности этот подход не рекомендуется , однако это возможно.

Для этого вам необходимо настроить свой узел для этого в конфигурационном файле RSKj. Это должно быть main.confдля основной сети RSK:

(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
Другие вопросы по тегам