大多数情况下,多重签名权限使用其他账号的名称来设置,通过这些账号签署多签提案来执行交易。
例如:
Permission: active (Threshold 2):
aliceaccount@active (1)
bobaccount@active (1)
Alice 和 Bob 必须同时签署上述账号的交易提案,才能执行交易。
下面是一个真实账号案例:
但是,如果您使用多个公钥而不是账号名设置权限,会发生什么?
Permission: active (Threshold 2):
PUB_K1_6ies8fT5dUNmVDG6CSSfwVcn6jvJakW6R3YLfHgUPcknxna9nT (1)
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
资源与引用: