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

Hyperledger Composer v0.19如何通过ACL隐藏Historian交易日志?

在Hyperledger Composer v0.19中配置ACL隐藏Historian交易日志

针对你想要限制Historian(交易日志)访问权限的需求,咱们来梳理下ACL规则的配置逻辑,并给出优化后的实现方案:

核心逻辑说明

Hyperledger Composer的ACL规则是按顺序匹配生效的——一旦请求匹配到某条规则,就会停止后续规则的检查。所以我们需要先定义更精准的「允许访问」规则,再设置兜底的「拒绝访问」规则,这样既能让用户看到自己发起的交易日志,又能隐藏其他用户的交易记录。

优化后的ACL配置

rule allowOwnHistorianRecords {
  description: "仅允许用户读取自己发起的交易对应的Historian记录"
  participant(p): "org.blockknowhow.com.Users"
  operation: READ
  resource(r): "org.hyperledger.composer.system.HistorianRecord"
  condition: (r.transactionInvoker.getIdentifier() == p.getIdentifier())
  action: ALLOW
}

rule denyAllOtherHistorianAccess {
  description: "拒绝用户访问非自身发起的Historian记录"
  participant: "org.blockknowhow.com.Users"
  operation: READ
  resource: "org.hyperledger.composer.system.HistorianRecord"
  action: DENY
}

配置细节解释

  • 第一条规则:优先匹配用户的请求,只有当Historian记录里的transactionInvoker(交易发起者)和当前用户的唯一标识符完全一致时,才允许读取这条日志。
  • 第二条规则:作为兜底规则,会拒绝所有不符合第一条规则的读取请求,确保其他用户的交易日志对当前用户完全不可见。

关键注意点

  1. 规则顺序不能乱:一定要把「允许规则」放在「拒绝规则」前面,否则兜底的拒绝规则会先触发,导致用户连自己的交易日志都无法查看。
  2. 标识符匹配验证:getIdentifier()会返回参与者的完整唯一标识(比如org.blockknowhow.com.Users#alice123),确保交易发起者和用户的标识完全匹配才能生效。
  3. 测试验证:配置完成后,部署业务网络并切换不同用户身份测试,确认只能查询到自己发起的交易日志,其他日志无法被获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:06:38