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

如何通过Hyperledger Composer ACL控制交易执行而非程序化控制

嘿,这事儿我熟!要通过ACL而非程序化方式控制交易执行权限,咱们一步步来实现你的需求:

1. 先明确参与者与交易的基础定义

首先得把你的参与者和交易的基础声明补全(方便对应ACL规则),用代码块展示如下:

participant Person identified by emailId {
  o String emailId
}

participant Buyer extends Person {
  // 这里可以添加买家专属的属性,比如收货地址等
}

participant Seller extends Person {
  // 这里可以添加卖家专属的属性,比如店铺名称等
}

// 发布待售商品的交易定义
transaction ListItemForSale {
  o String itemName
  o Double price
  o String description
  // 其他你需要的商品属性
}
2. 配置核心ACL规则

接下来就是关键的ACL规则配置,直接通过规则来限定只有Seller能执行发布商品的交易,拒绝Buyer的操作:

rule AllowSellersToListItems {
  description: "仅允许卖家执行发布待售商品的交易"
  participant(p): "Seller"
  operation: CREATE
  resource: "ListItemForSale"
  action: ALLOW
}

rule DenyBuyersFromListingItems {
  description: "拒绝买家执行发布待售商品的交易"
  participant(p): "Buyer"
  operation: CREATE
  resource: "ListItemForSale"
  action: DENY
}
规则逻辑说明
  • 第一条规则AllowSellersToListItems:精准匹配Seller参与者,针对ListItemForSale交易的CREATE操作(也就是发布商品),直接授予执行权限。
  • 第二条规则DenyBuyersFromListingItems:明确针对Buyer参与者,同样的交易和操作类型,直接拒绝执行。

小提示:如果你的ACL系统默认是“拒绝所有未明确允许的操作”,那其实只保留第一条允许规则就够了,但加上第二条拒绝规则会让权限逻辑更清晰,也能避免因默认规则变更导致的权限漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:25:38