Hyperledger Blockchain Explorer-在Endorser deadline之前连接失败,连接远程gRPC服务器失败
Hyperledger Blockchain Explorer-Fail to connect before the deadline on Endorser, fail to connect to remote gRPC server
我正在尝试使用 Hyperledger Explorer 设置 Hyperledger Fabric 网络。我使用 ubuntu OS 在数字海洋云上启动了一个 VM。从那里,我启动了 3 个排序节点和 2 个对等节点。这导致总共 5 个节点。 (我正在使用 RAFT 设置)。
但是,我在尝试启动 hyperledger fabric explorer docker-container images 时遇到如下错误。
错误:
> hyperledger-explorer@1.1.4 app-start /opt/explorer
> ./start.sh
[2021-02-18T07:32:21.828] [INFO] PgService - SSL to Postgresql disabled
[2021-02-18T07:32:21.829] [INFO] PgService - connecting to Postgresql postgres://hppoc:******@explorerdb.mynetwork.com:5432/fabricexplorer
[2021-02-18T07:32:21.898] [INFO] Platform - network_config.id test-network network_config.profile ./connection-profile/test-network.json
[2021-02-18T07:32:22.013] [INFO] FabricConfig - config.client.tlsEnable true
[2021-02-18T07:32:22.013] [INFO] FabricConfig - FabricConfig, this.config.channels airlinechannel
[2021-02-18T07:32:22.016] [INFO] FabricGateway - enrollUserIdentity: userName : exploreradmin
2021-02-18T07:32:25.221Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Endorser- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:25.222Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server peer1.acme.com url:grpcs://peer1.acme.com:7051 timeout:3000
2021-02-18T07:32:25.223Z - info: [NetworkConfig]: buildPeer - Unable to connect to the endorser peer1.acme.com due to Error: Failed to connect before the deadline on Endorser- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:28.250Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Discoverer- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:28.250Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server peer1.acme.com url:grpcs://peer1.acme.com:7051 timeout:3000
2021-02-18T07:32:28.250Z - error: [ServiceEndpoint]: ServiceEndpoint grpcs://peer1.acme.com:7051 reset connection failed :: Error: Failed to connect before the deadline on Discoverer- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:28.251Z - error: [DiscoveryService]: send[airlinechannel] - no discovery results
[2021-02-18T07:32:28.251] [ERROR] FabricClient - Error: DiscoveryService has failed to return results
at DiscoveryService.send (/opt/explorer/node_modules/fabric-network/node_modules/fabric-common/lib/DiscoveryService.js:370:10)
at process._tickCallback (internal/process/next_tick.js:68:7)
[2021-02-18T07:32:28.252] [INFO] FabricClient - ********* call to initializeDetachClient **********
[2021-02-18T07:32:28.253] [INFO] FabricClient - initializeDetachClient, network config) { name: 'test-network',
version: '1.0.0',
client:
{ tlsEnable: true,
adminCredential: { id: 'exploreradmin', password: 'exploreradminpw' },
enableAuthentication: true,
organization: 'AcmeMSP',
connection: { timeout: [Object] } },
channels: { airlinechannel: { peers: [Object] } },
organizations:
{ AcmeMSP:
{ mspid: 'AcmeMSP',
adminPrivateKey: [Object],
peers: [Array],
signedCert: [Object] } },
peers:
{ 'peer1.acme.com': { tlsCACerts: [Object], url: 'grpcs://peer1.acme.com:7051' } } }
[2021-02-18T07:32:28.253] [INFO] FabricClient - ************************************* initializeDetachClient *************************************************
[2021-02-18T07:32:28.254] [INFO] FabricClient - Error : Failed to connect client peer, please check the configuration and peer status
[2021-02-18T07:32:28.254] [INFO] FabricClient - Info : Explorer will continue working with only DB data
[2021-02-18T07:32:28.254] [INFO] FabricClient - ************************************** initializeDetachClient ************************************************
[2021-02-18T07:32:28.259] [INFO] Platform - initializeListener, network_id, network_client test-network { name: 'test-network',
version: '1.0.0',
client:
{ tlsEnable: true,
adminCredential: { id: 'exploreradmin', password: 'exploreradminpw' },
enableAuthentication: true,
organization: 'AcmeMSP',
connection: { timeout: [Object] } },
channels: { airlinechannel: { peers: [Object] } },
organizations:
{ AcmeMSP:
{ mspid: 'AcmeMSP',
adminPrivateKey: [Object],
peers: [Array],
signedCert: [Object] } },
peers:
{ 'peer1.acme.com': { tlsCACerts: [Object], url: 'grpcs://peer1.acme.com:7051' } } }
[2021-02-18T07:32:28.260] [INFO] main - Please open web browser to access :http://localhost:8080/
[2021-02-18T07:32:28.261] [INFO] main - pid is 20
[2021-02-18T07:32:28.263] [ERROR] main - <<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>
[2021-02-18T07:32:28.263] [ERROR] main - Error : [ 'Default client peer is down and no channel details available database' ]
[2021-02-18T07:32:30.264] [INFO] main - Received kill signal, shutting down gracefully
[2021-02-18T07:32:30.266] [INFO] Platform - <<<<<<<<<<<<<<<<<<<<<<<<<< Closing explorer >>>>>>>>>>>>>>>>>>>>>
[2021-02-18T07:32:30.266] [INFO] main - Closed out connections
版本详情
- 超级账本结构:2.3.1
- Hyperledger Explorer:v1.1.1(最新标签)
第 1 部分:Docker 容器设置
a) Docker PS
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e8768914140 hyperledger/explorer:latest "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp explorer.mynetwork.com
903c8c4a4326 hyperledger/explorer-db:latest "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 5432/tcp explorerdb.mynetwork.com
9fed267ae9b1 dev-peer1.budget.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86-e014c6d933da036b6c79b53d29a800d8a6886e374ceb435a30642b885735f8f5 "chaincode -peer.add…" 21 minutes ago Up 21 minutes dev-peer1.budget.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86
12407497fa4c dev-peer1.acme.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86-a3b6caa9293bb826d231b1a31cc47437e58764abe5169a20ed0ee43f25c16b24 "chaincode -peer.add…" 21 minutes ago Up 21 minutes dev-peer1.acme.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86
0448e71f68e1 hyperledger/fabric-peer:latest "peer node start" 22 minutes ago Up 22 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8052->7052/tcp peer1.budget.com
3266ec37b360 hyperledger/fabric-peer:latest "peer node start" 22 minutes ago Up 22 minutes 0.0.0.0:7051-7052->7051-7052/tcp peer1.acme.com
47ebe9ad79d1 hyperledger/fabric-orderer:latest "orderer" 22 minutes ago Up 22 minutes 0.0.0.0:8050->7050/tcp orderer2.acme.com
09a5f771f47f hyperledger/fabric-tools:latest "/bin/bash" 22 minutes ago Up 22 minutes tools
e132bb01ce22 hyperledger/fabric-orderer:latest "orderer" 22 minutes ago Up 22 minutes 0.0.0.0:9050->7050/tcp orderer3.acme.com
3c61b0316385 hyperledger/fabric-orderer:latest "orderer" 22 minutes ago Up 22 minutes
b) 我使用 3 个 docker-compose 文件作为我的配置设置。
$ docker-compose -f ./config/docker-compose-base.yaml -f ./tls/docker-compose-tls.yaml -f ./raft/docker-compose-raft.yaml up -d
- docker-撰写-base.yaml
https://gist.github.com/Skyquek/03d1ffad5643d67d8da5b268a4814a7d
- docker-撰写-tls.yaml
https://gist.github.com/Skyquek/b3b314cb2152ab541e822f72c60a2cbd
- docker-撰写-raft.yaml
https://gist.github.com/Skyquek/7f8ec2d4d1876283f4a9444675971be8
c) Core.yaml
- 极致core.yaml
https://gist.github.com/Skyquek/8cdcbc4ee3d53a2277b1c34bb2fca704
第 2 部分:区块链浏览器设置
1。连接-profile.json
{
"name": "test-network",
"version": "1.0.0",
"client": {
"tlsEnable": true,
"adminCredential": {
"id": "exploreradmin",
"password": "exploreradminpw"
},
"enableAuthentication": true,
"organization": "AcmeMSP",
"connection": {
"timeout": {
"peer": {
"endorser": "300"
},
"orderer": "300"
}
}
},
"channels": {
"airlinechannel": {
"peers": {
"peer1.acme.com": {}
}
}
},
"organizations": {
"AcmeMSP": {
"mspid": "AcmeMSP",
"adminPrivateKey": {
"path": "/tmp/crypto/peerOrganizations/acme.com/users/Admin@acme.com/msp/keystore/priv_sk"
},
"peers": ["peer1.acme.com"],
"signedCert": {
"path": "/tmp/crypto/peerOrganizations/acme.com/users/Admin@acme.com/msp/signcerts/Admin@acme.com-cert.pem"
}
}
},
"peers": {
"peer1.acme.com": {
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/acme.com/tlsca/tlsca.acme.com-cert.pem"
},
"url": "grpcs://peer1.acme.com:7051"
}
}
}
2。 docker-compose.yaml
# SPDX-License-Identifier: Apache-2.0
version: '2.1'
volumes:
pgdata:
walletstore:
networks:
mynetwork.com:
external:
name: acloudfan_airline
services:
explorerdb.mynetwork.com:
image: hyperledger/explorer-db:latest
container_name: explorerdb.mynetwork.com
hostname: explorerdb.mynetwork.com
environment:
- DATABASE_DATABASE=fabricexplorer
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWORD=password
healthcheck:
test: "pg_isready -h localhost -p 5432 -q -U postgres"
interval: 30s
timeout: 10s
retries: 5
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- mynetwork.com
explorer.mynetwork.com:
image: hyperledger/explorer:latest
container_name: explorer.mynetwork.com
hostname: explorer.mynetwork.com
environment:
- DATABASE_HOST=explorerdb.mynetwork.com
- DATABASE_DATABASE=fabricexplorer
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWD=password
- LOG_LEVEL_APP=debug
- LOG_LEVEL_DB=debug
- LOG_LEVEL_CONSOLE=info
- LOG_CONSOLE_STDOUT=true
- DISCOVERY_AS_LOCALHOST=true
volumes:
- ./config.json:/opt/explorer/app/platform/fabric/config.json
- ./connection-profile:/opt/explorer/app/platform/fabric/connection-profile
- ./organizations:/tmp/crypto
- walletstore:/opt/explorer/wallet
ports:
- 8080:8080
depends_on:
explorerdb.mynetwork.com:
condition: service_healthy
networks:
- mynetwork.com
我试过的解决方案
1。更改 tlscs 证书路径
如中所述
Hyperledger Fabric 2.0.1: Error: Failed to connect before the deadline on Discoverer- name:
这个问题很可能是由于路径错误造成的。但是问题依旧。
2。将环境变量 DISCOVERY_AS_LOCALHOST=true 更改为 false
他们中的一些人提到这将解决问题。但我似乎无法以这种方式修复它。
3。尝试使用 hyperledger fabric 2.0 测试网络
我尝试 运行 使用织物样本测试网络及其 运行 非常好。
4。 docker exec -it sh 到 explorer.mynetwork.com 来 ping 对方
ping 可以 运行 完全正常。
/opt/explorer # ping peer1.acme.com:7051
PING peer1.acme.com:7051 (172.23.0.6): 56 data bytes
64 bytes from 172.23.0.6: seq=0 ttl=64 time=0.138 ms
64 bytes from 172.23.0.6: seq=1 ttl=64 time=0.087 ms
64 bytes from 172.23.0.6: seq=2 ttl=64 time=0.090 ms
64 bytes from 172.23.0.6: seq=3 ttl=64 time=0.089 ms
64 bytes from 172.23.0.6: seq=4 ttl=64 time=0.101 ms
64 bytes from 172.23.0.6: seq=5 ttl=64 time=0.088 ms
^C
--- peer1.acme.com:7051 ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 0.087/0.098/0.138 ms
一直显示对端宕机或与对端连接失败
几天来我一直在为这个错误而苦苦挣扎。希望有人能帮我找出问题所在。非常感谢。
所有配置似乎都不错,但是您必须升级 explorer 版本才能与 hyperledger fabric 版本兼容。
所以请使用 v1.1.4 而不是 v1.1.1
还要确保你已经正确挂载了加密配置,尝试访问容器内的这个路径/tmp/crypto/peerOrganizations/acme.com/tlsca/tlsca.acme.com-cert.pem
尝试更改 tlsCACerts
路径以使用对等 tls ca.crt
/tmp/crypto/peerOrganizations/acme.com/peers/peer1.acme.com/tls/ca.crt
您已经提到相同的配置适用于 hyperledger fabric v2,如果您在本地而不是在同一台服务器上尝试过,那么我请禁用服务器上的防火墙并试一试
要检查您是否可以访问域和端口,请尝试此操作
cat > /dev/tcp/peer1.acme.com/7051
检查这个
https://support.bluemedora.com/s/article/Using-Bash-to-test-if-a-TCP-port-on-a-remote-system-is-open
我认为你应该仔细检查你的网络。 Explorer 应该与 Fabric 在同一网络上启动,以便可以连接对等节点和其他节点。要检查 Fabric 网络名称,您应该检查设置它的 docker-compose 文件并查找 CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE
或者您可以导航到 CLI 和 运行 docker network ls
.您应该能够找到带有 DRIVER
的结构网络名称,它应该是 bridge
此外,在启动 Explorer 之前,您应该确保您的 Fabric 网络已启动并且 运行 正确连接。
我遇到过这个错误
[INFO] FabricClient - Error : Failed to connect client peer, please check the configuration and peer status
...
Error : [ 'Default client peer is down and no channel details available database' ]
我发现当我们使用 256 位与 384 位密钥长度时,会出现错误。
设置 local
/host
没有区别。
我使用的是 v1.1.4。可能会很快用 v1.1.5 测试相同的内容,并怀疑它会遇到同样的问题。
出现类似的错误,我遇到的问题是网络的密钥和证书与区块链浏览器的密钥和证书不同步。当 运行 测试网络时,这是一个特别重要的问题,因为每当您重新启动网络时(AFAICT)都会重新生成密钥和证书,并且测试网络比生产网络更频繁地重新启动。
将所有内容复制到 organizations
目录中,或者随便你怎么称呼它;每次打开要使用资源管理器的网络时重复此操作。符号链接也可以工作,尽管它可能更脆弱,我不想在生产中依赖它。
我正在尝试使用 Hyperledger Explorer 设置 Hyperledger Fabric 网络。我使用 ubuntu OS 在数字海洋云上启动了一个 VM。从那里,我启动了 3 个排序节点和 2 个对等节点。这导致总共 5 个节点。 (我正在使用 RAFT 设置)。
但是,我在尝试启动 hyperledger fabric explorer docker-container images 时遇到如下错误。
错误:
> hyperledger-explorer@1.1.4 app-start /opt/explorer
> ./start.sh
[2021-02-18T07:32:21.828] [INFO] PgService - SSL to Postgresql disabled
[2021-02-18T07:32:21.829] [INFO] PgService - connecting to Postgresql postgres://hppoc:******@explorerdb.mynetwork.com:5432/fabricexplorer
[2021-02-18T07:32:21.898] [INFO] Platform - network_config.id test-network network_config.profile ./connection-profile/test-network.json
[2021-02-18T07:32:22.013] [INFO] FabricConfig - config.client.tlsEnable true
[2021-02-18T07:32:22.013] [INFO] FabricConfig - FabricConfig, this.config.channels airlinechannel
[2021-02-18T07:32:22.016] [INFO] FabricGateway - enrollUserIdentity: userName : exploreradmin
2021-02-18T07:32:25.221Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Endorser- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:25.222Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server peer1.acme.com url:grpcs://peer1.acme.com:7051 timeout:3000
2021-02-18T07:32:25.223Z - info: [NetworkConfig]: buildPeer - Unable to connect to the endorser peer1.acme.com due to Error: Failed to connect before the deadline on Endorser- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:28.250Z - error: [ServiceEndpoint]: Error: Failed to connect before the deadline on Discoverer- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:28.250Z - error: [ServiceEndpoint]: waitForReady - Failed to connect to remote gRPC server peer1.acme.com url:grpcs://peer1.acme.com:7051 timeout:3000
2021-02-18T07:32:28.250Z - error: [ServiceEndpoint]: ServiceEndpoint grpcs://peer1.acme.com:7051 reset connection failed :: Error: Failed to connect before the deadline on Discoverer- name: peer1.acme.com, url:grpcs://peer1.acme.com:7051, connected:false, connectAttempted:true
2021-02-18T07:32:28.251Z - error: [DiscoveryService]: send[airlinechannel] - no discovery results
[2021-02-18T07:32:28.251] [ERROR] FabricClient - Error: DiscoveryService has failed to return results
at DiscoveryService.send (/opt/explorer/node_modules/fabric-network/node_modules/fabric-common/lib/DiscoveryService.js:370:10)
at process._tickCallback (internal/process/next_tick.js:68:7)
[2021-02-18T07:32:28.252] [INFO] FabricClient - ********* call to initializeDetachClient **********
[2021-02-18T07:32:28.253] [INFO] FabricClient - initializeDetachClient, network config) { name: 'test-network',
version: '1.0.0',
client:
{ tlsEnable: true,
adminCredential: { id: 'exploreradmin', password: 'exploreradminpw' },
enableAuthentication: true,
organization: 'AcmeMSP',
connection: { timeout: [Object] } },
channels: { airlinechannel: { peers: [Object] } },
organizations:
{ AcmeMSP:
{ mspid: 'AcmeMSP',
adminPrivateKey: [Object],
peers: [Array],
signedCert: [Object] } },
peers:
{ 'peer1.acme.com': { tlsCACerts: [Object], url: 'grpcs://peer1.acme.com:7051' } } }
[2021-02-18T07:32:28.253] [INFO] FabricClient - ************************************* initializeDetachClient *************************************************
[2021-02-18T07:32:28.254] [INFO] FabricClient - Error : Failed to connect client peer, please check the configuration and peer status
[2021-02-18T07:32:28.254] [INFO] FabricClient - Info : Explorer will continue working with only DB data
[2021-02-18T07:32:28.254] [INFO] FabricClient - ************************************** initializeDetachClient ************************************************
[2021-02-18T07:32:28.259] [INFO] Platform - initializeListener, network_id, network_client test-network { name: 'test-network',
version: '1.0.0',
client:
{ tlsEnable: true,
adminCredential: { id: 'exploreradmin', password: 'exploreradminpw' },
enableAuthentication: true,
organization: 'AcmeMSP',
connection: { timeout: [Object] } },
channels: { airlinechannel: { peers: [Object] } },
organizations:
{ AcmeMSP:
{ mspid: 'AcmeMSP',
adminPrivateKey: [Object],
peers: [Array],
signedCert: [Object] } },
peers:
{ 'peer1.acme.com': { tlsCACerts: [Object], url: 'grpcs://peer1.acme.com:7051' } } }
[2021-02-18T07:32:28.260] [INFO] main - Please open web browser to access :http://localhost:8080/
[2021-02-18T07:32:28.261] [INFO] main - pid is 20
[2021-02-18T07:32:28.263] [ERROR] main - <<<<<<<<<<<<<<<<<<<<<<<<<< Explorer Error >>>>>>>>>>>>>>>>>>>>>
[2021-02-18T07:32:28.263] [ERROR] main - Error : [ 'Default client peer is down and no channel details available database' ]
[2021-02-18T07:32:30.264] [INFO] main - Received kill signal, shutting down gracefully
[2021-02-18T07:32:30.266] [INFO] Platform - <<<<<<<<<<<<<<<<<<<<<<<<<< Closing explorer >>>>>>>>>>>>>>>>>>>>>
[2021-02-18T07:32:30.266] [INFO] main - Closed out connections
版本详情
- 超级账本结构:2.3.1
- Hyperledger Explorer:v1.1.1(最新标签)
第 1 部分:Docker 容器设置
a) Docker PS
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e8768914140 hyperledger/explorer:latest "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp explorer.mynetwork.com
903c8c4a4326 hyperledger/explorer-db:latest "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 5432/tcp explorerdb.mynetwork.com
9fed267ae9b1 dev-peer1.budget.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86-e014c6d933da036b6c79b53d29a800d8a6886e374ceb435a30642b885735f8f5 "chaincode -peer.add…" 21 minutes ago Up 21 minutes dev-peer1.budget.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86
12407497fa4c dev-peer1.acme.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86-a3b6caa9293bb826d231b1a31cc47437e58764abe5169a20ed0ee43f25c16b24 "chaincode -peer.add…" 21 minutes ago Up 21 minutes dev-peer1.acme.com-gocc1.1.0-1.0-2593f1a95def85c64fdfed35e3d3b1051b92ed91549cfe789292ec5475d7db86
0448e71f68e1 hyperledger/fabric-peer:latest "peer node start" 22 minutes ago Up 22 minutes 0.0.0.0:8051->7051/tcp, 0.0.0.0:8052->7052/tcp peer1.budget.com
3266ec37b360 hyperledger/fabric-peer:latest "peer node start" 22 minutes ago Up 22 minutes 0.0.0.0:7051-7052->7051-7052/tcp peer1.acme.com
47ebe9ad79d1 hyperledger/fabric-orderer:latest "orderer" 22 minutes ago Up 22 minutes 0.0.0.0:8050->7050/tcp orderer2.acme.com
09a5f771f47f hyperledger/fabric-tools:latest "/bin/bash" 22 minutes ago Up 22 minutes tools
e132bb01ce22 hyperledger/fabric-orderer:latest "orderer" 22 minutes ago Up 22 minutes 0.0.0.0:9050->7050/tcp orderer3.acme.com
3c61b0316385 hyperledger/fabric-orderer:latest "orderer" 22 minutes ago Up 22 minutes
b) 我使用 3 个 docker-compose 文件作为我的配置设置。
$ docker-compose -f ./config/docker-compose-base.yaml -f ./tls/docker-compose-tls.yaml -f ./raft/docker-compose-raft.yaml up -d
- docker-撰写-base.yaml
https://gist.github.com/Skyquek/03d1ffad5643d67d8da5b268a4814a7d
- docker-撰写-tls.yaml
https://gist.github.com/Skyquek/b3b314cb2152ab541e822f72c60a2cbd
- docker-撰写-raft.yaml
https://gist.github.com/Skyquek/7f8ec2d4d1876283f4a9444675971be8
c) Core.yaml
- 极致core.yaml
https://gist.github.com/Skyquek/8cdcbc4ee3d53a2277b1c34bb2fca704
第 2 部分:区块链浏览器设置
1。连接-profile.json
{
"name": "test-network",
"version": "1.0.0",
"client": {
"tlsEnable": true,
"adminCredential": {
"id": "exploreradmin",
"password": "exploreradminpw"
},
"enableAuthentication": true,
"organization": "AcmeMSP",
"connection": {
"timeout": {
"peer": {
"endorser": "300"
},
"orderer": "300"
}
}
},
"channels": {
"airlinechannel": {
"peers": {
"peer1.acme.com": {}
}
}
},
"organizations": {
"AcmeMSP": {
"mspid": "AcmeMSP",
"adminPrivateKey": {
"path": "/tmp/crypto/peerOrganizations/acme.com/users/Admin@acme.com/msp/keystore/priv_sk"
},
"peers": ["peer1.acme.com"],
"signedCert": {
"path": "/tmp/crypto/peerOrganizations/acme.com/users/Admin@acme.com/msp/signcerts/Admin@acme.com-cert.pem"
}
}
},
"peers": {
"peer1.acme.com": {
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/acme.com/tlsca/tlsca.acme.com-cert.pem"
},
"url": "grpcs://peer1.acme.com:7051"
}
}
}
2。 docker-compose.yaml
# SPDX-License-Identifier: Apache-2.0
version: '2.1'
volumes:
pgdata:
walletstore:
networks:
mynetwork.com:
external:
name: acloudfan_airline
services:
explorerdb.mynetwork.com:
image: hyperledger/explorer-db:latest
container_name: explorerdb.mynetwork.com
hostname: explorerdb.mynetwork.com
environment:
- DATABASE_DATABASE=fabricexplorer
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWORD=password
healthcheck:
test: "pg_isready -h localhost -p 5432 -q -U postgres"
interval: 30s
timeout: 10s
retries: 5
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- mynetwork.com
explorer.mynetwork.com:
image: hyperledger/explorer:latest
container_name: explorer.mynetwork.com
hostname: explorer.mynetwork.com
environment:
- DATABASE_HOST=explorerdb.mynetwork.com
- DATABASE_DATABASE=fabricexplorer
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWD=password
- LOG_LEVEL_APP=debug
- LOG_LEVEL_DB=debug
- LOG_LEVEL_CONSOLE=info
- LOG_CONSOLE_STDOUT=true
- DISCOVERY_AS_LOCALHOST=true
volumes:
- ./config.json:/opt/explorer/app/platform/fabric/config.json
- ./connection-profile:/opt/explorer/app/platform/fabric/connection-profile
- ./organizations:/tmp/crypto
- walletstore:/opt/explorer/wallet
ports:
- 8080:8080
depends_on:
explorerdb.mynetwork.com:
condition: service_healthy
networks:
- mynetwork.com
我试过的解决方案
1。更改 tlscs 证书路径
如中所述 Hyperledger Fabric 2.0.1: Error: Failed to connect before the deadline on Discoverer- name:
这个问题很可能是由于路径错误造成的。但是问题依旧。
2。将环境变量 DISCOVERY_AS_LOCALHOST=true 更改为 false
他们中的一些人提到这将解决问题。但我似乎无法以这种方式修复它。
3。尝试使用 hyperledger fabric 2.0 测试网络
我尝试 运行 使用织物样本测试网络及其 运行 非常好。
4。 docker exec -it sh 到 explorer.mynetwork.com 来 ping 对方
ping 可以 运行 完全正常。
/opt/explorer # ping peer1.acme.com:7051
PING peer1.acme.com:7051 (172.23.0.6): 56 data bytes
64 bytes from 172.23.0.6: seq=0 ttl=64 time=0.138 ms
64 bytes from 172.23.0.6: seq=1 ttl=64 time=0.087 ms
64 bytes from 172.23.0.6: seq=2 ttl=64 time=0.090 ms
64 bytes from 172.23.0.6: seq=3 ttl=64 time=0.089 ms
64 bytes from 172.23.0.6: seq=4 ttl=64 time=0.101 ms
64 bytes from 172.23.0.6: seq=5 ttl=64 time=0.088 ms
^C
--- peer1.acme.com:7051 ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss
round-trip min/avg/max = 0.087/0.098/0.138 ms
一直显示对端宕机或与对端连接失败
几天来我一直在为这个错误而苦苦挣扎。希望有人能帮我找出问题所在。非常感谢。
所有配置似乎都不错,但是您必须升级 explorer 版本才能与 hyperledger fabric 版本兼容。
所以请使用 v1.1.4 而不是 v1.1.1
还要确保你已经正确挂载了加密配置,尝试访问容器内的这个路径/tmp/crypto/peerOrganizations/acme.com/tlsca/tlsca.acme.com-cert.pem
尝试更改 tlsCACerts
路径以使用对等 tls ca.crt
/tmp/crypto/peerOrganizations/acme.com/peers/peer1.acme.com/tls/ca.crt
您已经提到相同的配置适用于 hyperledger fabric v2,如果您在本地而不是在同一台服务器上尝试过,那么我请禁用服务器上的防火墙并试一试
要检查您是否可以访问域和端口,请尝试此操作
cat > /dev/tcp/peer1.acme.com/7051
检查这个 https://support.bluemedora.com/s/article/Using-Bash-to-test-if-a-TCP-port-on-a-remote-system-is-open
我认为你应该仔细检查你的网络。 Explorer 应该与 Fabric 在同一网络上启动,以便可以连接对等节点和其他节点。要检查 Fabric 网络名称,您应该检查设置它的 docker-compose 文件并查找 CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE
或者您可以导航到 CLI 和 运行 docker network ls
.您应该能够找到带有 DRIVER
的结构网络名称,它应该是 bridge
此外,在启动 Explorer 之前,您应该确保您的 Fabric 网络已启动并且 运行 正确连接。
我遇到过这个错误
[INFO] FabricClient - Error : Failed to connect client peer, please check the configuration and peer status
...
Error : [ 'Default client peer is down and no channel details available database' ]
我发现当我们使用 256 位与 384 位密钥长度时,会出现错误。
设置 local
/host
没有区别。
我使用的是 v1.1.4。可能会很快用 v1.1.5 测试相同的内容,并怀疑它会遇到同样的问题。
出现类似的错误,我遇到的问题是网络的密钥和证书与区块链浏览器的密钥和证书不同步。当 运行 测试网络时,这是一个特别重要的问题,因为每当您重新启动网络时(AFAICT)都会重新生成密钥和证书,并且测试网络比生产网络更频繁地重新启动。
将所有内容复制到 organizations
目录中,或者随便你怎么称呼它;每次打开要使用资源管理器的网络时重复此操作。符号链接也可以工作,尽管它可能更脆弱,我不想在生产中依赖它。