在Hyperledger作曲器中,如果我们能够在同一通道中使用permission.acl限制事务的可见性(历史记录的可见性以及对资源的CRUD操作),是否需要使用多个通道。如果两者的用法不同,请解释一下它们之间的区别。
如果只有一个渠道并通过Permission.acl分隔了交易的可见性,我们如何限制多个参与者/组织的事件,即将事件提取给所有者或特定组织。
预先感谢
Praveen
答案 0 :(得分:0)
使用一个通道,即使您限制通过ACL访问/查看事务,所有事务也将提交给该通道上的所有对等方,因此,如果您需要保护特定对等方之间的私有事务,请在不同通道上将这些对等方分开。 对于事件,您可以为同一事务发布不同的事件,并且让每个客户订阅不同的事件。 示例事务(更新资产所有者)发布两个事件(事件A,事件B) 并且客户端可以选择仅订阅(事件A),而另一个客户端可以订阅(事件B)
答案 1 :(得分:0)
权限访问控制(ACL):允许对业务网络的资产和参与者实施不同级别的授权。分类帐(数据)在加入渠道的所有对等点和业务网络之间共享。
渠道:您可以“物理地”分离同级之间的分类帐。如果对等方未加入频道,则它没有数据副本。
通道和ACL的组合允许创建复杂的数据访问配置。
关于事件,我认为您可以根据参与者的身份实施不同的事件:
async function sampleTx(tx) {
var currentParticipant = getCurrentParticipant();
let factory = getFactory();
let eventOne = factory.newEvent('org.example', 'EventOne');
let eventTwo = factory.newEvent('org.example', 'EventTwo');
if(currentParticipant.getFullyQualifiedType() !== 'org.example.ParticipantOne'){
//....
emit(eventOne);
} else if(currentParticipant.getFullyQualifiedType() !== 'org.example.ParticipantTwo'){
//....
emit(eventTwo);
}
}