【问题标题】:How to use personal_sendTransaction on RSK?如何在 RSK 上使用 personal_sendTransaction?
【发布时间】:2021-05-27 11:42:24
【问题描述】:

我正在运行一个 RSK 节点,我正在尝试使用 personal_sendTransaction 发送交易,但我收到此错误:

The local wallet feature is disabled

我该如何解决这个问题? 提前谢谢

【问题讨论】:

    标签: rpc rsk


    【解决方案1】:

    您正在尝试使用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/
    

    【讨论】:

      【解决方案2】:

      您正在尝试使用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_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
      

      【讨论】:

        猜你喜欢
        • 2021-05-05
        • 1970-01-01
        • 2021-08-06
        • 1970-01-01
        • 1970-01-01
        • 2021-10-29
        • 2021-09-01
        • 1970-01-01
        • 2021-08-28
        相关资源
        最近更新 更多