0

我想添加帐户,其中包含所有用户都可以读取的一些信息。根据文档,用户需要具有权限can_get_all_acc_detail。所以我试图添加那些创建新角色的人:

tx = self.iroha.transaction([
    self.iroha.command('CreateRole', role_name='info', permissions=[primitive_pb2.can_get_all_acc_detail])
])
tx = IrohaCrypto.sign_transaction(tx, account_private_key)
net.send_tx(tx)

不幸的是,在发送交易后,我看到了状态:

status_name:ENOUGH_SIGNATURES_COLLECTED, status_code:9, error_code:0(OK)

但是直到超时需要5分钟。

我注意到事务 json 嵌入权限的方式与在通用块中不同:

payload {
  reduced_payload {
    commands {
      create_role {
        role_name: "info_account"
        permissions: can_get_all_acc_detail
      }
    }
    creator_account_id: "admin@example"
    created_time: 1589408498074
    quorum: 1
  }
}
signatures {
  public_key: "92f9f9e10ce34905636faff41404913802dfce9cd8c00e7879e8a72085309f4f"
  signature: "568b69348aa0e9360ea1293efd895233cb5a211409067776a36e6647b973280d2d0d97a9146144b9894faeca572d240988976f0ed224c858664e76416a138901"
}

在 genesis.block 中比较它是:

{
    "createRole": {
        "roleName": "money_creator",
        "permissions": [
            "can_add_asset_qty",
            "can_create_asset",
            "can_receive",
            "can_transfer"
        ]
    }
},

我正在使用 iroha 版本 1.1.3(但也在 1.1.1 上测试过),python iroha sdh 版本是 0.0.5.5。

4

1 回答 1

1

您用于执行“创建角色”命令的帐户是否具有“can_create_role”权限?

于 2020-05-14T05:28:48.750 回答