【发布时间】:2021-08-11 09:29:39
【问题描述】:
我有一个运行区块链网络 (Hyperledger Fabric) 的 VM (ubuntu),另一个 VM 充当客户端并执行查询,例如使用 Java SDK 检索和插入数据。
我能够检索区块链中的数据,但无法将任何新数据插入区块链网络。我收到“未收到有效的提案响应。2 个对等错误响应。”
这是我的连接文件和我收到的结果。
连接文件:
{
"name": "test-network-org1",
"version": "1.0.0",
"client": {
"organization": "Org1",
"connection": {
"timeout": {
"peer": {
"endorser": "300"
}
}
}
},
"organizations": {
"Org1": {
"mspid": "Org1MSP",
"peers": [
"peer0.org1.example.com",
"peer0.org2.example.com"
],
"certificateAuthorities": [
"ca.org1.example.com",
"ca.org2.example.com"
]
}
},
"peers": {
"peer0.org1.example.com": {
"url": "grpcs://10.0.2.60:7051",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc2gAwIBAgIULb7/j/0GlwSPTEwcuD3ZwYqVhMMwCgYIKoZIzj0EAwIw\ncDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH\nEwZEdXJoYW0xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMjEwODAzMTQwODAwWhcNMzYwNzMwMTQwODAw\nWjBwMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV\nBAcTBkR1cmhhbTEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMT\nY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGdV\nLG2bjY03kHqdHyO/YUY0LGcs5LPWoL2a9Qf+abycQWBblGS+OjoIcQy+tpjaGfze\nUUzX7PKCvu66MBA9ZFCjRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG\nAQH/AgEBMB0GA1UdDgQWBBRoa/rYznEUSQ6wxa3QBnYoJE0JiTAKBggqhkjOPQQD\nAgNIADBFAiEA8U5EZTDg4gRvEk1t5P17AN33KBBEv11KMF0INZLSFOICIHIWnxsl\naYsm5XHK0BtzO5esdrH7eAuSVfEm3IYR9lV4\n-----END CERTIFICATE-----\n"
},
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.example.com",
"hostnameOverride": "peer0.org1.example.com"
}
},"peer0.org2.example.com": {
"url": "grpcs://10.0.2.60:9051",
"tlsCACerts": {
"pem": "-----BEGIN CERTIFICATE-----\nMIICHTCCAcWgAwIBAgIUa41oI62aIbM2s5nfGO/sU6cNDukwCgYIKoZIzj0EAwIw\nbDELMAkGA1UEBhMCVUsxEjAQBgNVBAgTCUhhbXBzaGlyZTEQMA4GA1UEBxMHSHVy\nc2xleTEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eub3Jn\nMi5leGFtcGxlLmNvbTAeFw0yMTA4MDMxNDA4MDBaFw0zNjA3MzAxNDA4MDBaMGwx\nCzAJBgNVBAYTAlVLMRIwEAYDVQQIEwlIYW1wc2hpcmUxEDAOBgNVBAcTB0h1cnNs\nZXkxGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2NhLm9yZzIu\nZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ4jCi925YlDrwL\nrIBljitpf7Gd8c5RIJBw9gn72zRc2+9h89l7a0U29bXcbKeKIKYNJ1lCghvpQl8o\nqhSOTkt9o0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAd\nBgNVHQ4EFgQUUTIWxF1E1xpGqm01rUJLNNIzG0kwCgYIKoZIzj0EAwIDRgAwQwIf\nejZRhC3VLaq6pWz9SZf6LXfvhqSHpJ+XjU4rIByh6QIgQFu2dD4E0PprVueMt4Wk\nmox6VIXeNgISzOn11lRl10g=\n-----END CERTIFICATE-----\n"
},
"grpcOptions": {
"ssl-target-name-override": "peer0.org2.example.com",
"hostnameOverride": "peer0.org2.example.com"
}
}
},
"certificateAuthorities": {
"ca.org1.example.com": {
"url": "https://10.0.2.60:7054",
"caName": "ca-org1",
"tlsCACerts": {
"pem": ["-----BEGIN CERTIFICATE-----\nMIICJzCCAc2gAwIBAgIULb7/j/0GlwSPTEwcuD3ZwYqVhMMwCgYIKoZIzj0EAwIw\ncDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMQ8wDQYDVQQH\nEwZEdXJoYW0xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMjEwODAzMTQwODAwWhcNMzYwNzMwMTQwODAw\nWjBwMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExDzANBgNV\nBAcTBkR1cmhhbTEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMT\nY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGdV\nLG2bjY03kHqdHyO/YUY0LGcs5LPWoL2a9Qf+abycQWBblGS+OjoIcQy+tpjaGfze\nUUzX7PKCvu66MBA9ZFCjRTBDMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG\nAQH/AgEBMB0GA1UdDgQWBBRoa/rYznEUSQ6wxa3QBnYoJE0JiTAKBggqhkjOPQQD\nAgNIADBFAiEA8U5EZTDg4gRvEk1t5P17AN33KBBEv11KMF0INZLSFOICIHIWnxsl\naYsm5XHK0BtzO5esdrH7eAuSVfEm3IYR9lV4\n-----END CERTIFICATE-----\n"]
},
"httpOptions": {
"verify": false
}
},
"ca.org2.example.com": {
"url": "https://10.0.2.60:8054",
"caName": "ca-org2",
"tlsCACerts": {
"pem": ["-----BEGIN CERTIFICATE-----\nMIICHTCCAcWgAwIBAgIUa41oI62aIbM2s5nfGO/sU6cNDukwCgYIKoZIzj0EAwIw\nbDELMAkGA1UEBhMCVUsxEjAQBgNVBAgTCUhhbXBzaGlyZTEQMA4GA1UEBxMHSHVy\nc2xleTEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eub3Jn\nMi5leGFtcGxlLmNvbTAeFw0yMTA4MDMxNDA4MDBaFw0zNjA3MzAxNDA4MDBaMGwx\nCzAJBgNVBAYTAlVLMRIwEAYDVQQIEwlIYW1wc2hpcmUxEDAOBgNVBAcTB0h1cnNs\nZXkxGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2NhLm9yZzIu\nZXhhbXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ4jCi925YlDrwL\nrIBljitpf7Gd8c5RIJBw9gn72zRc2+9h89l7a0U29bXcbKeKIKYNJ1lCghvpQl8o\nqhSOTkt9o0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAd\nBgNVHQ4EFgQUUTIWxF1E1xpGqm01rUJLNNIzG0kwCgYIKoZIzj0EAwIDRgAwQwIf\nejZRhC3VLaq6pWz9SZf6LXfvhqSHpJ+XjU4rIByh6QIgQFu2dD4E0PprVueMt4Wk\nmox6VIXeNgISzOn11lRl10g=\n-----END CERTIFICATE-----\n"]
},
"httpOptions": {
"verify": false
}
}
}
}
结果:
An identity for the admin user "admin" already exists in the wallet
An identity for the user "Khaled" already exists in the wallet
[{"Key":"CAR0","Record":{"make":"Toyota","model":"Prius","colour":"blue","owner":"Tomoko"}},{"Key":"CAR1","Record":{"make":"Ford","model":"Mustang","colour":"red","owner":"Brad"}},{"Key":"CAR2","Record":{"make":"Hyundai","model":"Tucson","colour":"green","owner":"Jin Soo"}},{"Key":"CAR3","Record":{"make":"Volkswagen","model":"Passat","colour":"yellow","owner":"Max"}},{"Key":"CAR4","Record":{"make":"Tesla","model":"S","colour":"black","owner":"Adriana"}},{"Key":"CAR5","Record":{"make":"Peugeot","model":"205","colour":"purple","owner":"Michel"}},{"Key":"CAR6","Record":{"make":"Chery","model":"S22L","colour":"white","owner":"Aarav"}},{"Key":"CAR7","Record":{"make":"Fiat","model":"Punto","colour":"violet","owner":"Pari"}},{"Key":"CAR8","Record":{"make":"Tata","model":"Nano","colour":"indigo","owner":"Valeria"}},{"Key":"CAR9","Record":{"make":"Holden","model":"Barina","colour":"brown","owner":"Shotaro"}}]
error:org.hyperledger.fabric.gateway.ContractException: No valid proposal responses received. 2 peer error responses: Channel Channel{id: 1, name: mychannel} Sending proposal with transaction: 8283aefea22657d68203722cd96066fb48924ce754772627a5c47ba9d9c8d475 to Peer{ id: 9, name: peer0.org2.example.com:9051, channelName: mychannel, url: grpcs://peer0.org2.example.com:9051, mspid: Org2MSP} failed because of: gRPC failure=Status{code=UNAVAILABLE, description=Unable to resolve host peer0.org2.example.com, cause=java.lang.RuntimeException: java.net.UnknownHostException: peer0.org2.example.com
at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:420)
at io.grpc.internal.DnsNameResolver$Resolve.resolveInternal(DnsNameResolver.java:256)
at io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:213)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.net.UnknownHostException: peer0.org2.example.com
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:800)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1507)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1366)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1300)
at io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:640)
at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:388)
... 5 more
}; Channel Channel{id: 1, name: mychannel} Sending proposal with transaction: 8283aefea22657d68203722cd96066fb48924ce754772627a5c47ba9d9c8d475 to Peer{ id: 7, name: peer0.org1.example.com:7051, channelName: mychannel, url: grpcs://peer0.org1.example.com:7051, mspid: Org1MSP} failed because of: gRPC failure=Status{code=UNAVAILABLE, description=Unable to resolve host peer0.org1.example.com, cause=java.lang.RuntimeException: java.net.UnknownHostException: peer0.org1.example.com
at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:420)
at io.grpc.internal.DnsNameResolver$Resolve.resolveInternal(DnsNameResolver.java:256)
at io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:213)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.net.UnknownHostException: peer0.org1.example.com
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:800)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1507)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1366)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1300)
at io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:640)
at io.grpc.internal.DnsNameResolver.resolveAll(DnsNameResolver.java:388)
... 5 more
}
org.hyperledger.fabric.gateway.ContractException: CAR11 does not exist
at org.hyperledger.fabric.gateway.impl.query.SingleQueryHandler.evaluate(SingleQueryHandler.java:50)
at org.hyperledger.fabric.gateway.impl.TransactionImpl.evaluate(TransactionImpl.java:207)
at org.hyperledger.fabric.gateway.impl.ContractImpl.evaluateTransaction(ContractImpl.java:55)
at org.example.ClientApp.main(ClientApp.java:52)
at org.example.ClientTest.testFabCar(ClientTest.java:32)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
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.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:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Process finished with exit code 255
【问题讨论】:
标签: java hyperledger-fabric blockchain