【发布时间】:2023-03-29 20:15:01
【问题描述】:
在链码开发中,网络中何时有多个组织,以防只有特定组织才能调用链码的特定功能。
Hyperledger Fabric 的 Node-SDK 可以吗?如果可能,那么如何在开发中实施?
【问题讨论】:
标签: hyperledger-fabric hyperledger blockchain hyperledger-fabric-sdk-js
在链码开发中,网络中何时有多个组织,以防只有特定组织才能调用链码的特定功能。
Hyperledger Fabric 的 Node-SDK 可以吗?如果可能,那么如何在开发中实施?
【问题讨论】:
标签: hyperledger-fabric hyperledger blockchain hyperledger-fabric-sdk-js
只需使用stub.getCreator() 并探索返回的对象。
let sender = await stub.getCreator();
let senderOrg = sender.mspid;
if(senderOrg=='SpecialOrg'){
// do your business
} else {
// whatever
}
更多信息直接在interfaces.go:https://github.com/hyperledger/fabric/blob/release-1.4/core/chaincode/shim/interfaces.go
【讨论】:
(身份)基于属性的访问控制 (ABAC) 可以写入智能合约而不是 NodeSDK 客户端应用程序。
使用 Fabric 1.4 和新的编程模型,Client Identity 对象包含在 Context 对象中,您可以检查属性并根据这些属性编写访问控制逻辑。
这是doc for the client identity object。
Fabric CA 文档中有一个short section about ABAC。
(ABAC要求你在用户注册的时候添加属性!)
您可以考虑使用beforeTransaction() 作为实施访问控制的地方。
【讨论】: