目的

因最熟悉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

java end_Fabric学习笔记(七) - fabric-sdk-java End2endIT运行相关推荐

  1. 2022Java学习笔记七十三(异常处理:运行时异常、编译时异常、异常的默认处理的流程)

    2022Java学习笔记七十三(异常处理:运行时异常.编译时异常.异常的默认处理的流程) 一.异常体系 1.Exception:java.lang包下,称为异常类,它表示程序本身可以处理的问题 2.R ...

  2. Java虚拟机学习笔记(一)—Java虚拟机概述

    一:编程语言兼容底层系统的方式大概分为两种 1.通过编译器实现兼容 例如C.C++等编程语言,既能运行与Linux系统,也能运行与Windows系统:既能运行于x86平台,也能运行于AMD平台.这种能 ...

  3. 【深入理解Java虚拟机学习笔记】第二章 Java 内存区域与内存溢出异常

    最近想好好复习一下java虚拟机,我想通过深读 [理解Java虚拟机 jvm 高级特性与最佳实践] (作者 周志明) 并且通过写一些博客总结来将该书读薄读透,这里文章内容仅仅是个人阅读后简短总结,加强 ...

  4. JAVA SE学习笔记(七):终章:Java程序设计基础笔记(全10万字)

    Java程序设计入门 ​                                              copyright © 2020 by 宇智波Akali 目录 文章目录 第1章 J ...

  5. 【已完结!】Java基础--学习笔记(零起点打开java世界的大门)--博客汇总表【附:视频、工程源码、资料、详细笔记】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:z ...

  6. java廖雪峰_廖雪峰Java教程学习笔记(一)——Java程序基础

    (一)Java程序基本结构 Java是面向对象的语言,一个程序的基本单位就是class.在class内部,可定义若干方法. 类名要求: 类名必须以英文字母开头,后接字母,数字和下划线的组合 习惯以大写 ...

  7. JAVA视频学习笔记-马士兵(七)

    `JAVA视频学习笔记-马士兵` 容器_API_Collection1(20200622) 容器_Collection2(20200623) 容器_Iterator(20200624) 容器_Enha ...

  8. 2019年Java Web学习笔记目录

    Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...

  9. Java基础学习笔记(二)_Java核心技术(进阶)

    本篇文章的学习资源来自Java学习视频教程:Java核心技术(进阶)_华东师范大学_中国大学MOOC(慕课) 本篇文章的学习笔记即是对Java核心技术课程的总结,也是对自己学习的总结 文章目录 Jav ...

  10. Java NIO 学习笔记(三)----Selector

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

最新文章

  1. 【小技巧】Xcode7.1中KSImageNamed无效的解决方法
  2. .net mysql 特殊字符转义字符_MySQL 特殊字符转义问题
  3. Python应用02 Python服务器进化
  4. C语言单链表实现FCFS算法,数据结构与算法复习题(含答案).doc
  5. DVWA文件上传high级文件上传漏洞
  6. 怎样识别一个人是否可交
  7. php自定义请求headers,php通过header发送自定义数据方法
  8. 【leetcode】20. Valid Parentheses
  9. 生物学软件大汇总!史上最全
  10. 软考网络工程师必过教程---必看
  11. SparkStreaming可视化之Wisp
  12. html中点重置和提交没反应,为什么点击按钮没反应??
  13. Spring Cloud Alibaba——Nacos服务配置中心
  14. Android获取系统邮件账号
  15. QT中QVector的使用
  16. PHP去掉名称字符串中的表情
  17. XY6762/XY6765/XY8788 如何使用 DCT 工具配置 DWS 文件?
  18. 22个应届生word简历模板
  19. 简单说说USB协议(二)包的结构与包的分类
  20. 第二章:HTTP与HTTPS

热门文章

  1. 行动是最好的告白,钟意社科院杜兰金融管理硕士项目的你不要错过机会
  2. iOS自己实现二维码生成与扫描
  3. protobuf如何使用Protogen工具生成CS代码详细教学篇
  4. 【转】performSelector延时调用导致的内存泄露
  5. C语言:带你轻松干掉 腾讯笔试大题 带环链表
  6. 制作谷歌浏览器 Google Chrome 免安装绿色版!
  7. X310系列USRP使用LAN口MATLAB控制方法
  8. c语言编程百分比,c – 计算百分比
  9. 头歌-自己动手画CPU(第六关)-MIPS RAM设计-Logisim
  10. 近期几篇有关All-Pay论文总结(博弈论+机制设计)