Hyperledger Fabric的NODE-SDK中的功能上如何设置权限?

时间:2019-03-28 07:27:13

标签: hyperledger-fabric hyperledger blockchain hyperledger-fabric-sdk-js

在ChainCode开发中,当在网络中具有多个组织时,如果只有特定组织可以调用链代码的特定功能。

在超级账本结构的Node-SDK中可以吗?如果可能的话,如何在开发中实施?

2 个答案:

答案 0 :(得分:1)

只需使用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

答案 1 :(得分:1)

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

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

这是doc for the client identity object

Fabric CA文档中有一个short section about ABAC

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

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

could be implemented in a typescript example的使用方式有一个“外壳”。