我一直在尝试了解认可策略的配置方式,但我不太了解在某些情况下如何编写认可策略。
考虑一个跟踪某些资产A所有权的网络,该资产的单位已分配给网络中的多个参与者(Org1,Org2,Org3 ...)
保持此状态的链码具有move
操作,客户端可以调用该操作来发起传输。假设某个客户实例化了一个交易,将5
的单位从Org1
移动到Org2
。这种情况所需的两种执行方式是:
Org1
关联的证书的客户端程序才能启动传输Org1
和Org2
的认可现在我可以使用以下方法静态设置第二个要求:
peer chaincode instantiate -n mychaincode -P "AND ('Org1MSP.peer','Org2MSP.peer')"
但是当例如Org3
决定将资产移至Org2
。可以将背书策略配置为根据交易内容动态分配背书人吗?
关于第一次执行,我确实在docs中看到了以下内容:
背书的对等方验证提交者(在示例中为客户A)已获得适当的授权来执行提议的操作
(每个背书的对等方都确保提交者满足频道的Writer政策)
但是在其后跟有一条注释,该注释阐明了在通道创建期间配置了Writer的策略,这使其成为静态白名单。
文档还提到Fabric允许自定义实现endorsement和validation逻辑。
是否可以在此处添加自定义逻辑,以便仅在资产移动影响对等方执行资产的逻辑时批准事务处理?例如。 Org1.peer
仅认可在移动操作的发送者或接收者角色中与Org1
进行的交易。
尽管采用了这种实施方式,但背书政策仍会说: any two of Org1, Org2, Org3
,并且客户端程序不会知道只有Org1
和Org2
会支持该交易。
我刚开始进行Fabric开发,也许我缺少一些基本知识。预先感谢您的帮助!