Hyperledger fabric 如何确保所有组织都已签署要安装的链码?

Hyperledger fabric 如何确保所有组织都已签署要安装的链码?,hyperledger-fabric,hyperledger,blockchain,Hyperledger Fabric,Hyperledger,Blockchain,在Hyperledger Fabric 1.3中, 如何确保所有组织都已签署要安装的链码 我可以为代码签名,但似乎没有组件验证签名 详情如下: 前提条件 织物1.3 我有两个器官,器官1和器官2 org1希望验证org2是否已签署代码,反之亦然,以确保不可否认性(不可否认) 我知道我们可以通过对等链码安装安装无签名的链码 预期行为 在以下命令中,我希望: 选项A必须成功,因为链码包含来自两个组织的签名 选项B必须产生某种错误或警告,因为链码缺少来自org2的签名 实际行为 不仅选项A,

在Hyperledger Fabric 1.3中, 如何确保所有组织都已签署要安装的链码

我可以为代码签名,但似乎没有组件验证签名

详情如下:

前提条件
  • 织物1.3
  • 我有两个器官,器官1和器官2
  • org1希望验证org2是否已签署代码,反之亦然,以确保不可否认性(不可否认)
  • 我知道我们可以通过
    对等链码安装
    安装无签名的链码
预期行为 在以下命令中,我希望:

  • 选项A必须成功,因为链码包含来自两个组织的签名
  • 选项B必须产生某种错误或警告,因为链码缺少来自org2的签名
实际行为
  • 不仅选项A,选项B也成功了,没有错误,这与预期相反
命令 流动

目前Hyperledger结构中没有强制执行签名链码包。在2.0版(目标为3月底)中,chaincode将有一个新的生命周期,它将提供这种类型的功能


对于当前的1.3和即将发布的1.4版本,安装链码的组织将在安装前检查链码包的签名是否正确/足够。

如果组织希望检查签名,他们将如何实现这一点?我找不到类似“peer chaincode verify”的东西。不幸的是,我们从未实现过这一点,因此您需要自己编写代码来实现这一点。如果查看,它将显示签名是如何创建的,并显示已签名的安装包(带有分离的签名)是如何创建的。
org1> peer chaincode package -n mycc -v 0 example02/cmd -s -S \
          -i "AND('Org1MSP.admin')" cc.out


Option A:
   org2> peer chaincode signpackage cc.out signedcc.out
   org1> peer chaincode install -n mycc -v 0 signedcc.out
   org2> peer chaincode install -n mycc -v 0 signedcc.out

Option B:
   org1> peer chaincode install -n mycc -v 0 cc.out
   org2> peer chaincode install -n mycc -v 0 cc.out


org1> peer chaincode instantiate -o orderer:7050 -C mychannel \
          -n mycc -v 0 -c '(snip)' -P "AND ('Org1MSP.peer','Org2MSP.peer')"


# Then Org2 makes a query.