Hyperledger Fabric:组织是否可以以只读方式加入通道?
Hyperledger Fabric: Is it possible for an organization to join a channel in read only capacity?
我曾尝试通过禁用组织调用链代码的能力来限制访问:
peer/Propose: /Channel/Application/MyPolicy
其中
我的政策:
类型:签名
规则:"OR('Org1MSP.admin')"
但这也阻止了 Org2 的查询。 Org2 是否可以只查询而不能调用?
没有。通道的任何成员都可以查询和调用实例化的链代码。
您唯一可以限制的是 Endorsement policy - "which specifies the set of peers on a channel that must execute chaincode and endorse the execution results in order for the transaction to be considered valid"
您可以通过限制对链代码本身中函数的访问来实现此目标。使用 CID Lib,您可以识别调用方(例如通过他们的 msp)并根据这些信息管理访问。有了它和 AttributeBasedAccessControl 的概念,您可以在链上完美地管理对 queries/invokes 的所有访问,并在对等和组织级别将其分开
联盟中的所有组织对数据具有相同的权限。所以不可能只给一个组织读取访问权限。
如果你真的想这样做,使用私人数据怎么样?将所有数据设为私有数据,并授权给除被欺负者以外的所有组织。
更方便的方法是为他们提供一个中间 CA 服务器,并只提供对该信任链的读取访问权限。
我曾尝试通过禁用组织调用链代码的能力来限制访问: peer/Propose: /Channel/Application/MyPolicy 其中
我的政策: 类型:签名 规则:"OR('Org1MSP.admin')"
但这也阻止了 Org2 的查询。 Org2 是否可以只查询而不能调用?
没有。通道的任何成员都可以查询和调用实例化的链代码。
您唯一可以限制的是 Endorsement policy - "which specifies the set of peers on a channel that must execute chaincode and endorse the execution results in order for the transaction to be considered valid"
您可以通过限制对链代码本身中函数的访问来实现此目标。使用 CID Lib,您可以识别调用方(例如通过他们的 msp)并根据这些信息管理访问。有了它和 AttributeBasedAccessControl 的概念,您可以在链上完美地管理对 queries/invokes 的所有访问,并在对等和组织级别将其分开
联盟中的所有组织对数据具有相同的权限。所以不可能只给一个组织读取访问权限。 如果你真的想这样做,使用私人数据怎么样?将所有数据设为私有数据,并授权给除被欺负者以外的所有组织。
更方便的方法是为他们提供一个中间 CA 服务器,并只提供对该信任链的读取访问权限。