使用 End2endIT 测试连接到同一通道的两个组织.第二个在实例化链代码时失败



我能够在fabric-sdk-java-1.1.0(可从github获得(中成功运行End2endIT

End2endIT中,设置完成后,我们peerOrg1创建并连接到FOO通道,安装,实例化链代码,然后执行一些操作。然后我们有一个不同的组织,peerOrg2,做类似的事情,但在不同的渠道上,BAR.

为了测试连接到同一频道的两个组织,我稍微修改了End2endIT以测试这一点,以便peerOrg1peerOrg2都将连接到FOO通道。

peerOrg1没有任何变化.对于peerOrg2,由于FOO频道已经由peerOrg1创建,我调用

Channel newChannel = sampleStore.getChannel(client, name);

获取频道而不是呼叫client.newChannel

此外,无论在哪里调用channel.getPeer()channel.getEventHubs(),我都确保只使用正确起源(对于peerOrg2(的peerseventHubs

由于链码已经由peerOrg1安装,因此无需再次安装链码,但确实需要为刚刚加入通道的peerOrg2的两个对等方实例化链码。

InstantiationProposal发送给对等方(或peerOrg2(并成功返回响应时没有问题。

但是当将交易发送到订单以提交(InstantiationProposal(时,我得到了

Caused by: org.hyperledger.fabric.sdk.exception.TransactionEventException: Received invalid transaction event. Transaction ID 897902a02ad4285e9827f0cfa14244e2fc5fa21f9819f3be4f698f94d98c185c status 10
at org.hyperledger.fabric.sdk.Channel$TL.lambda$2(Channel.java:4458)
... 3 more

我的方向是否正确?错误中的状态10是什么意思?

链码只需要在同一通道中实例化一次,因此不需要第二次实例化。

最新更新