所有收藏
手把手教程
钱包功能教程
如何使用 cleos 签署多密钥账号的交易
如何使用 cleos 签署多密钥账号的交易

账号权限设置成多个密钥管理的账号适用

Dario Cesaro avatar
作者:Dario Cesaro
一周前更新

大多数情况下,多重签名权限使用其他账号的名称来设置,通过这些账号签署多签提案来执行交易。

例如:

  • Permission: active (Threshold 2):

  1. aliceaccount@active (1)

  2. bobaccount@active (1)

Alice 和 Bob 必须同时签署上述账号的交易提案,才能执行交易。

下面是一个真实账号案例:

但是,如果您使用多个公钥而不是账号名设置权限,会发生什么?

  • Permission: active (Threshold 2):

  1. PUB_K1_6ies8fT5dUNmVDG6CSSfwVcn6jvJakW6R3YLfHgUPcknxna9nT (1)

  2. PUB_K1_5fHPq9GpZxTPQHAw8pq3SpYFLday8q9T6ezsMwBCNydphTjamt (1)

这意味着该账号的所有交易必须由这两个公钥签名才能执行交易。

这里的问题是,用户所用的 EOS 钱包没有这个功能,通过多个密钥签署交易。这时候就必须使用命令行来解决问题。

配置 cleos 实现多个密钥签署交易

Cleos 是与所有 EOSIO 区块链交互的命令行界面。如果没有 Cleos,请通过 此链接 安装。

安装 Cleos 后,创建一个钱包。这里,我们将创建一个名为 support 的钱包(这只是一个方便识别名称,不是 EOS 账号名称),并要求 cleos 将结果打印到终端控制台,以获取为该钱包自动生成的密码:

cleos wallet create -n support --to-console

重要提醒:请复制并保存创建钱包的新密码。每次钱包被锁定时,您都需要该密码。

在无操作一段时间后,Cleos 会锁定钱包。你可以使用以下命令来解锁钱包。把其中的钱包名称 support 替换为你自己的钱包名称即可:

cleos wallet unlock -n support

在这个例子中,我们将添加两个私钥。导入账号私钥命令如下:

  • cleos wallet import --private-key PVT_K1_28t8rJAwm2ezAxNUJjLjHJ4bFvMMPfDocTJxz23NePNWPe5gVp -n support

  • cleos wallet import --private-key PVT_K1_QCknBCMuqAhKF7STxFNHR8Rdx8HEoNg9rUP8rgWDfQvm9vfoC -n support

说明:如果有更多的密钥需要导入,您进行重复上述命令即可。

上述操作会将您的钱包设置为同时使用两个密钥进行签署交易。

按照上述步骤配置好 Cleos 后,就可以签署交易了。您可以使用原始交易数据,但用 .json 文件会更简洁明了。

推送交易的命令如下:

cleos -u https://eos.greymass.com push transaction transaction.json

执行后,将返回一个 JSON 数据(如上图)。您可以复制交易 ID,在区块浏览器上验证是否执行成功。


作者: Erick Birbe

编辑: Markus Hinrichs

译者: SHE

资源与引用:

这是否解答了您的问题?