我能够成功地在End2endIT
(可从github获得)中运行fabric-sdk-java-1.1.0
。
在End2endIT
中,在设置之后,我们让peerOrg1
创建并连接到FOO
通道,安装,实例化链代码然后执行一些操作。然后我们有一个不同的组织,peerOrg2
,做类似的事情,但在不同的渠道,BAR
。
为了测试连接到同一个通道的两个组织,我对End2endIT
进行了一些修改以测试它,因此peerOrg1
和peerOrg2
都将连接到FOO
通道。
peerOrg1
没有任何变化。对于peerOrg2
,由于FOO
频道已由peerOrg1
创建,我打电话给
Channel newChannel = sampleStore.getChannel(client, name);
获取频道而不是调用client.newChannel
。
无论在哪里调用channel.getPeer()
和channel.getEventHubs()
,我都确保只使用正确起源的peers
和eventHubs
(对于peerOrg2
)。
由于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
的状态是什么意思?
Chaincode只需要在同一个通道中实例化一次,因此第二个实例化不是必需的。