0

在 ChainCode 开发中,网络中何时有多个组织,以防只有特定的组织才能调用链码的特定功能。

在超级账本 Fabric 的 Node-SDK 中是否有可能?如果可能,那么如何在开发中实施?

4

2 回答 2

1

只需使用stub.getCreator()和探索返回的对象。

let sender = await stub.getCreator();
let senderOrg = sender.mspid;
if(senderOrg=='SpecialOrg'){
    // do your business
} else {
    // whatever
}

更多信息直接在interfaces.gohttps ://github.com/hyperledger/fabric/blob/release-1.4/core/chaincode/shim/interfaces.go

于 2019-03-28T09:07:03.517 回答
1

(身份)基于属性的访问控制 (ABAC) 可以写入智能合约而不是 NodeSDK 客户端应用程序。

使用 Fabric 1.4 和新的编程模型,Client Identity对象包含在 Context 对象中,您可以检查属性并根据这些属性编写访问控制逻辑。

这是客户端身份对象的文档

Fabric CA 文档中有一个关于 ABAC 的简短部分。

(ABAC 要求您在用户注册时为用户添加属性!)

您可以考虑使用beforeTransaction()作为实现访问控制的地方。

有一个关于如何在打字稿示例中实现它的“外壳” 。

于 2019-03-28T10:17:09.503 回答