智能合约中的Hyperledger Fabric认可

时间:2020-04-06 16:24:02

标签: hyperledger-fabric hyperledger smartcontracts chaincode

我目前在使用Fabric 1.4的项目中工作,虽然能够很好地了解事情的进展,但是我对智能合约和认可政策的工作方式感到困惑。

我了解的是,认可策略是在链码实例化期间定义的,其中说两个或三个组织将签署一项交易以使其有效。这种背书只是验证交易签名对吗?没有数据级别检查。

比如说我有这种情况:我有三个组织(Org1,Org2,Org3),每个组织都有一个同级。现在,每个对等方都通过客户端Web应用程序将数据放入区块链。现在,我如何验证数据(例如我在区块链中提交的信息)中说的名称和ID是否已由其他对等方正确验证,然后才添加到世界状态。

示例:如果org1中的peer0添加了数据,名称和ID,则ID错误。 Org2有一个ID列表,它应该检查org1添加的ID是否与其匹配并进行验证。如果可以验证,那就很好了,可以将数据置于世界状态

如何定义这种交易状态级别验证(更多的是数据级别验证,而不仅仅是签名验证)?可以在Go智能合约中完成此操作。

任何帮助和建议都会有所帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

在签注期间,每个选定的签注者执行(或模拟)交易并返回其响应,已签名的读集和写集。客户端检查签名,并且来自不同背书人的响应是否匹配(或者至少应该这样做,否则提交者稍后再执行此检查),因此存在数据级别检查(您的前提是错误的) 。客户将所有背书组合成一笔交易,并进行广播,以便到达订购服务。订购服务将交易添加到一个块,然后将该块发送到加入该通道的每个(提交者)对等方。提交者再次执行检查并将事务提交到该状态。

这里有完美的解释:https://hyperledger-fabric.readthedocs.io/en/release-1.4/txflow.html