目的
因最熟悉java,故最后还是拿java做突破口学习sdk,本文只运行demo,sdk功能以后具体在分析.
运行环境
Fabric网络 远程Centos
Fabric-sdk-java 本地MacOs IntellijIDEA
远程Centos 下载Fabric-sdk-java
cd /opt/gopath/src/github.com/hyperledger/
git clone https://github.com/hyperledger/fabric-sdk-java.git
运行Fabric网络
cd /opt/gopath/src/github.com/hyperledger/fabric-sdk-java/src/test/fixture/sdkintegration
./fabric.sh up
核查网络是否启动成功
docker ps
00a91dd619fa hyperledger/fabric-peer "peer node start" 17 minutes ago Up 17 minutes 0.0.0.0:7056->7051/tcp, 0.0.0.0:7058->7053/tcp peer1.org1.example.com
782588a7be4b hyperledger/fabric-peer "peer node start" 17 minutes ago Up 17 minutes 0.0.0.0:8056->7051/tcp, 0.0.0.0:8058->7053/tcp peer1.org2.example.com
8aa37874e128 hyperledger/fabric-peer "peer node start" 17 minutes ago Up 17 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
03073ca33957 hyperledger/fabric-peer "peer node start" 17 minutes ago Up 17 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer0.org2.example.com
0e1ed0c4dd26 hyperledger/fabric-ca "sh -c 'fabric-ca-ser" 17 minutes ago Up 17 minutes 0.0.0.0:8054->7054/tcp ca_peerOrg2
0c3c05345239 hyperledger/fabric-orderer "orderer" 17 minutes ago Up 17 minutes 0.0.0.0:7050->7050/tcp orderer.example.com
0524ac1f2d89 hyperledger/fabric-ca "sh -c 'fabric-ca-ser" 17 minutes ago Up 17 minutes 0.0.0.0:7054->7054/tcp ca_peerOrg1
f12a51b52be4 hyperledger/fabric-tools "/usr/local/bin/confi" 17 minutes ago Up 17 minutes 0.0.0.0:7059->7059/tcp configtxlator
这一步我遇到的问题是ca_peerOrg1未启动成功
原因在于docker-compose.yaml ca0中 V11_IDENTITIES_ALLOWREMOVE=--cfg.identities.allowremove
V11_AFFILIATIONS_ALLOWREMOVE=--cfg.affiliations.allowremove
这两个参数未能识别,删掉这两个参数就可以启动了
原来的
command: sh -c 'fabric-ca-server start -n ca0 ${V11_IDENTITIES_ALLOWREMOVE} ${V11_AFFILIATIONS_ALLOWREMOVE} --registry.maxenrollments -1 --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/fcf776b02a05600408d0be9d9752afc59f64950b721cacb363b5b95a0fea6216_sk -b admin:adminpw ${ORG_HYPERLEDGER_FABRIC_SDKTEST_INTEGRATIONTESTS_CA_TLS} --tls.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --tls.keyfile /etc/hyperledger/fabric-ca-server-config/fcf776b02a05600408d0be9d9752afc59f64950b721cacb363b5b95a0fea6216_sk -d'
改动后
command: sh -c 'fabric-ca-server start -n ca0 --registry.maxenrollments -1 --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/fcf776b02a05600408d0be9d9752afc59f64950b721cacb363b5b95a0fea6216_sk -b admin:adminpw ${ORG_HYPERLEDGER_FABRIC_SDKTEST_INTEGRATIONTESTS_CA_TLS} --tls.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --tls.keyfile /etc/hyperledger/fabric-ca-server-config/fcf776b02a05600408d0be9d9752afc59f64950b721cacb363b5b95a0fea6216_sk -d'
端口映射
因在本地访问远程的Centos的Fabric网络,故需做本地与远程之间的端口映射,需映射的端口在docker-composer.yaml中
ssh -L7054:127.0.0.1:7054 -L7056:127.0.0.1:7056 -L8056:127.0.0.1:8056 -L7051:127.0.0.1:7051 -L8051:127.0.0.1:8051 -L8054:127.0.0.1:8054 -L7050:127.0.0.1:7050 -L7059:127.0.0.1:7059 -L8058:127.0.0.1:8058 -L7058:127.0.0.1:7058 -L7053:127.0.0.1:7053 -L8053:127.0.0.1:8053 root@10.0.0.157
本地client的导入
cd 项目目录
mvn install -DskipTests 此处参考Eclipse安装
org.apache.maven.plugins:maven-antrun-plugin:1.4:run
然后跑End2endIT
运行结果
Channel foo 测试用例完全成功
Channel bar 测试用例运行失败,stackoverflow说这里是版本不一致导致,暂且不管
RUNNING: End2endIT.
2018-02-11 01:13:11,183 main WARN SampleStore:90 - Could not find the file "/var/folders/dy/nvwqztd923b1_mdp5dsmcv6m0000gn/T/HFCSampletest.properties"
2018-02-11 01:13:11,189 main WARN SampleStore:90 - Could not find the file "/var/folders/dy/nvwqztd923b1_mdp5dsmcv6m0000gn/T/HFCSampletest.properties"
Constructing channel foo
2018-02-11 01:13:14,278 main WARN Channel:1374 - Bad deliver expected status 200 got 404, Channel foo
Created channel foo
2018-02-11 01:13:14,679 main INFO Channel:698 - Peer peer0.org1.example.com joined into channel foo
Peer peer0.org1.example.com joined channel foo
2018-02-11 01:13:14,766 main INFO Channel:698 - Peer peer1.org1.example.com joined into channel foo
Peer peer1.org1.example.com joined channel foo
Finished initialization channel foo
Running channel foo
Creating install proposal
Sending install proposal
2018-02-11 01:13:15,082 main INFO InstallProposalBuilder:175 - Installing 'example_cc_go::github.com/example_cc::1' Go chaincode from directory: '/Users/hubin/IdeaProjects/fabric-sdk-java/src/test/fixture/sdkintegration/gocc/sample1/src/github.com/example_cc' with source location: 'src/github.com/example_cc'. chaincodePath:'github.com/example_cc'
Successful install proposal response Txid: 27625e72ba102eb99eaf3f2e6baa8b8f323b24fa4c88b3aa2206142944c8f66c from peer peer1.org1.example.com
Successful install proposal response Txid: 27625e72ba102eb99eaf3f2e6baa8b8f323b24fa4c88b3aa2206142944c8f66c from peer peer0.org1.example.com
Received 2 install proposal responses. Successful+verified: 2 . Failed: 0
Sending instantiateProposalRequest to all peers with arguments: a and b set to 100 and 200 respectively
Succesful instantiate proposal response Txid: d7805ae2e01d4d20aab0361334d35a590f07b1890d6f50e31d6efb7f5a631839 from peer peer1.org1.example.com
Succesful instantiate proposal response Txid: d7805ae2e01d4d20aab0361334d35a590f07b1890d6f50e31d6efb7f5a631839 from peer peer0.org1.example.com
Received 2 instantiate proposal responses. Successful+verified: 2 . Failed: 0
Sending instantiateTransaction to orderer with a and b set to 100 and 200 respectively
Finished instantiate transaction with transaction id d7805ae2e01d4d20aab0361334d35a590f07b1890d6f50e31d6efb7f5a631839
sending transactionProposal to all peers with arguments: move(a,b,100)
Successful transaction proposal response Txid: aafb2dd6f61d1e0484642468279d629c9d641fa5d91a4ebcdc3be8b6de531bc7 from peer peer1.org1.example.com
Successful transaction proposal response Txid: aafb2dd6f61d1e0484642468279d629c9d641fa5d91a4ebcdc3be8b6de531bc7 from peer peer0.org1.example.com
Received 2 transaction proposal responses. Successful+verified: 2 . Failed: 0
Successfully received transaction proposal responses.
Sending chaincode transaction(move a,b,100) to orderer.
Finished transaction with transaction id aafb2dd6f61d1e0484642468279d629c9d641fa5d91a4ebcdc3be8b6de531bc7
Now query chaincode for the value of b.
RECEIVED Chaincode event with handle: CHAINCODE_EVENTS_HANDLEcaa56b79-2870-430d-9c64-72968f59abe4CHAINCODE_EVENTS_HANDLE, chaincode Id: example_cc_go, chaincode event name: event, transaction id: aafb2dd6f61d1e0484642468279d629c9d641fa5d91a4ebcdc3be8b6de531bc7, event payload: "!", from eventhub: peer1.org1.example.com
RECEIVED Chaincode event with handle: CHAINCODE_EVENTS_HANDLEcaa56b79-2870-430d-9c64-72968f59abe4CHAINCODE_EVENTS_HANDLE, chaincode Id: example_cc_go, chaincode event name: event, transaction id: aafb2dd6f61d1e0484642468279d629c9d641fa5d91a4ebcdc3be8b6de531bc7, event payload: "!", from eventhub: peer0.org1.example.com
Query payload of b from peer peer1.org1.example.com returned 300
Query payload of b from peer peer0.org1.example.com returned 300
Channel info for : foo
Channel height: 3
Chain current block hash: cf1dd8d05992c3681205bb17324527fc6d568967b66ba28f177a2b886c7291ac
Chainl previous block hash: c3e7016eb8efc296ff9f8237a9a980247490d40a9699d499bc0c637c6dc138be
queryBlockByNumber returned correct block with blockNumber 2
previous_hash c3e7016eb8efc296ff9f8237a9a980247490d40a9699d499bc0c637c6dc138be
queryBlockByHash returned block with blockNumber 1
queryBlockByTxID returned block with blockNumber 2
QueryTransactionByID returned TransactionInfo: txID aafb2dd6f61d1e0484642468279d629c9d641fa5d91a4ebcdc3be8b6de531bc7
validation code 0
Running for Channel foo done
Constructing channel bar
2018-02-11 01:13:56,863 main WARN Channel:1374 - Bad deliver expected status 200 got 404, Channel bar
Created channel bar
2018-02-11 01:13:57,189 main INFO Channel:698 - Peer peer0.org2.example.com joined into channel bar
Peer peer0.org2.example.com joined channel bar
2018-02-11 01:13:57,268 main INFO Channel:698 - Peer peer1.org2.example.com joined into channel bar
Peer peer1.org2.example.com joined channel bar
2018-02-11 01:13:57,386 grpc-default-executor-0 ERROR PeerEventServiceClient:239 - Received error on channel bar, peer peer0.org2.example.com, url grpc://localhost:8051, UNIMPLEMENTED: unknown service protos.Deliver
io.grpc.StatusRuntimeException: UNIMPLEMENTED: unknown service protos.Deliver
at io.grpc.Status.asRuntimeException(Status.java:526)
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:419)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:392)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:475)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:557)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:478)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:590)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2018-02-11 01:13:57,390 main ERROR PeerEventServiceClient:286 - Channel bar connect failed on peer eventing service peer0.org2.example.com. Reason: UNIMPLEMENTED: unknown service protos.Deliver
org.hyperledger.fabric.sdk.exception.TransactionException: Channel bar connect failed on peer eventing service peer0.org2.example.com. Reason: UNIMPLEMENTED: unknown service protos.Deliver
at org.hyperledger.fabric.sdk.PeerEventServiceClient.connectEnvelope(PeerEventServiceClient.java:284)
at org.hyperledger.fabric.sdk.PeerEventServiceClient.peerVent(PeerEventServiceClient.java:346)
at org.hyperledger.fabric.sdk.PeerEventServiceClient.connect(PeerEventServiceClient.java:317)
at org.hyperledger.fabric.sdk.Peer.initiateEventing(Peer.java:113)
at org.hyperledger.fabric.sdk.Channel.initialize(Channel.java:959)
at org.hyperledger.fabric.sdkintegration.End2endIT.constructChannel(End2endIT.java:766)
at org.hyperledger.fabric.sdkintegration.End2endIT.setup(End2endIT.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: io.grpc.StatusRuntimeException: UNIMPLEMENTED: unknown service protos.Deliver
at io.grpc.Status.asRuntimeException(Status.java:526)
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:419)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:392)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:475)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:557)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:478)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:590)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2018-02-11 01:13:57,391 main ERROR Channel:974 - Channel bar connect failed on peer eventing service peer0.org2.example.com. Reason: UNIMPLEMENTED: unknown service protos.Deliver
org.hyperledger.fabric.sdk.exception.TransactionException: Channel bar connect failed on peer eventing service peer0.org2.example.com. Reason: UNIMPLEMENTED: unknown service protos.Deliver
at org.hyperledger.fabric.sdk.PeerEventServiceClient.connectEnvelope(PeerEventServiceClient.java:284)
at org.hyperledger.fabric.sdk.PeerEventServiceClient.peerVent(PeerEventServiceClient.java:346)
at org.hyperledger.fabric.sdk.PeerEventServiceClient.connect(PeerEventServiceClient.java:317)
at org.hyperledger.fabric.sdk.Peer.initiateEventing(Peer.java:113)
at org.hyperledger.fabric.sdk.Channel.initialize(Channel.java:959)
at org.hyperledger.fabric.sdkintegration.End2endIT.constructChannel(End2endIT.java:766)
at org.hyperledger.fabric.sdkintegration.End2endIT.setup(End2endIT.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: io.grpc.StatusRuntimeException: UNIMPLEMENTED: unknown service protos.Deliver
at io.grpc.Status.asRuntimeException(Status.java:526)
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:419)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:392)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:475)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:557)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:478)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:590)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
org.hyperledger.fabric.sdk.exception.TransactionException: Channel bar connect failed on peer eventing service peer0.org2.example.com. Reason: UNIMPLEMENTED: unknown service protos.Deliver
at org.hyperledger.fabric.sdk.PeerEventServiceClient.connectEnvelope(PeerEventServiceClient.java:284)
at org.hyperledger.fabric.sdk.PeerEventServiceClient.peerVent(PeerEventServiceClient.java:346)
at org.hyperledger.fabric.sdk.PeerEventServiceClient.connect(PeerEventServiceClient.java:317)
at org.hyperledger.fabric.sdk.Peer.initiateEventing(Peer.java:113)
at org.hyperledger.fabric.sdk.Channel.initialize(Channel.java:959)
at org.hyperledger.fabric.sdkintegration.End2endIT.constructChannel(End2endIT.java:766)
at org.hyperledger.fabric.sdkintegration.End2endIT.setup(End2endIT.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: io.grpc.StatusRuntimeException: UNIMPLEMENTED: unknown service protos.Deliver
at io.grpc.Status.asRuntimeException(Status.java:526)
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:419)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684)
at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:392)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:475)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:557)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:478)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:590)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
java.lang.AssertionError: Channel bar connect failed on peer eventing service peer0.org2.example.com. Reason: UNIMPLEMENTED: unknown service protos.Deliver
at org.junit.Assert.fail(Assert.java:88)
at org.hyperledger.fabric.sdkintegration.End2endIT.setup(End2endIT.java:274)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Process finished with exit code 255