You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyperledger Fabric:使用非管理员卡片启动composer-rest-server失败

解决Hyperledger Fabric中普通用户卡片启动composer-rest-server的权限问题

这个报错其实很直观——你的普通用户com.tuzz.agloan.Dccb#dccb1没有权限读取Hyperledger Composer的系统网络资源org.hyperledger.composer.system.Network#aloan@0.0.2-deploy.17,而composer-rest-server启动时必须读取这些系统资源来初始化连接,所以才会触发权限异常。

下面是具体的解决步骤,亲测有效:

  • 第一步:给普通用户添加系统网络的读取权限
    打开你业务网络里的permissions.acl文件,添加一条ACL规则,允许指定参与者(或所有参与者)读取系统网络资源。示例规则如下:

    rule AllowNetworkReadForDccb {
        description: "允许Dccb类型的参与者读取系统网络资源"
        participant: "com.tuzz.agloan.Dccb"
        operation: READ
        resource: "org.hyperledger.composer.system.Network"
        action: ALLOW
    }
    

    如果你想让所有参与者都拥有这个权限,直接把participant字段改成"ANY"就行。

  • 第二步:更新并重新部署业务网络
    修改完ACL后,需要重新打包部署业务网络,让新的权限规则生效:

    1. 打包业务网络:
      composer archive create -t dir -n .
      
    2. 安装更新后的业务网络包:
      composer network install -c admin@aloan -a aloan@0.0.2.bna
      
    3. 升级业务网络:
      composer network upgrade -c admin@aloan -n aloan -V 0.0.2
      

    注意替换命令里的管理员卡片名、网络名和版本号为你实际的信息。

  • 第三步:刷新普通用户卡片(可选但推荐)
    为了确保新权限能同步到用户卡片中,建议删除旧卡片后重新导入:

    composer card delete -c dccb1@aloan
    composer identity import -c admin@aloan -u dccb1 -f dccb1.card
    
  • 第四步:再次启动composer-rest-server
    现在用普通用户卡片启动服务,应该就能正常运行了:

    composer-rest-server -c dccb1@aloan -n never -w true
    

另外提一句:如果你的业务还需要普通用户读取资产、提交交易等操作,也要记得在permissions.acl中补充对应的权限规则,尽量遵循最小权限原则,只给用户分配业务必需的权限。

内容的提问来源于stack exchange,提问作者Manish Champaneri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:28:43