我正在尝试按照本教程将多个组织部署到Hyperledger结构 - > https://hyperledger.github.io/composer/latest/tutorials/deploy-to-fabric-multi-org
在我尝试启动网络之前,一切都按预期工作:
composer network start -l "DEBUG" -c PeerAdmin@byfn-network-org1 -n block-aviation-network -V 0.0.1 -o endorsementPolicyFile=./tmp/composer/endorsement-policy.json -A SimonOrg1 -C SimonOrg1/admin-pub.pem -A SimonOrg2 -C SimonOrg2/admin-pub.pem -A SimonOrg3 -C SimonOrg3/admin-pub.pem
之后我收到以下错误:
error: Error trying to start business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: REQUEST_TIMEOUT
Response from attempted peer comms was an error: Error: REQUEST_TIMEOUT
Response from attempted peer comms was an error: Error: REQUEST_TIMEOUT
Response from attempted peer comms was an error: Error: REQUEST_TIMEOUT
Response from attempted peer comms was an error: Error: REQUEST_TIMEOUT
Response from attempted peer comms was an error: Error: 14 UNAVAILABLE: Connect Failed
我查看了以下链接(https://github.com/hyperledger/composer-knowledge-wiki/blob/latest/knowledge.md#information_source--composer-network-start-issues),建议将以下环境变量添加到容器中:
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
但我仍然像上面详述的那样犯了同样的错误。
同行base.yaml
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
version: '2'
services:
peer-base:
image: hyperledger/fabric-peer
environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
# the following setting starts chaincode containers on the same
# bridge network as the peers
# https://docs.docker.com/compose/networking/
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_blockaviation
#- CORE_LOGGING_LEVEL=ERROR
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
- CORE_PEER_PROFILE_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: peer node start
搬运工-撰写-base.yaml
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
version: '2'
services:
orderer.blockaviation.com:
container_name: orderer.blockaviation.com
image: hyperledger/fabric-orderer
environment:
- ORDERER_GENERAL_LOGLEVEL=debug
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_GENESISMETHOD=file
- ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
# enabled TLS
- ORDERER_GENERAL_TLS_ENABLED=true
- ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
- ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
- ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
volumes:
- ../channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
- ../crypto-config/ordererOrganizations/blockaviation.com/orderers/orderer.blockaviation.com/msp:/var/hyperledger/orderer/msp
- ../crypto-config/ordererOrganizations/blockaviation.com/orderers/orderer.blockaviation.com/tls/:/var/hyperledger/orderer/tls
ports:
- ${IP}:7050:7050
peer0.org1.blockaviation.com:
container_name: peer0.org1.blockaviation.com
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer0.org1.blockaviation.com
- CORE_PEER_ADDRESS=peer0.org1.blockaviation.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.blockaviation.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org1.blockaviation.com/peers/peer0.org1.blockaviation.com/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org1.blockaviation.com/peers/peer0.org1.blockaviation.com/tls:/etc/hyperledger/fabric/tls
ports:
- ${IP}:7051:7051
- ${IP}:7053:7053
peer1.org1.blockaviation.com:
container_name: peer1.org1.blockaviation.com
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer1.org1.blockaviation.com
- CORE_PEER_ADDRESS=peer1.org1.blockaviation.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.blockaviation.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.blockaviation.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org1.blockaviation.com/peers/peer1.org1.blockaviation.com/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org1.blockaviation.com/peers/peer1.org1.blockaviation.com/tls:/etc/hyperledger/fabric/tls
ports:
- ${IP}:8051:7051
- ${IP}:8053:7053
peer0.org2.blockaviation.com:
container_name: peer0.org2.blockaviation.com
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer0.org2.blockaviation.com
- CORE_PEER_ADDRESS=peer0.org2.blockaviation.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.blockaviation.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.blockaviation.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org2.blockaviation.com/peers/peer0.org2.blockaviation.com/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org2.blockaviation.com/peers/peer0.org2.blockaviation.com/tls:/etc/hyperledger/fabric/tls
ports:
- ${IP}:9051:7051
- ${IP}:9053:7053
peer1.org2.blockaviation.com:
container_name: peer1.org2.blockaviation.com
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer1.org2.blockaviation.com
- CORE_PEER_ADDRESS=peer1.org2.blockaviation.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.blockaviation.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.blockaviation.com:7051
- CORE_PEER_LOCALMSPID=Org2MSP
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org2.blockaviation.com/peers/peer1.org2.blockaviation.com/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org2.blockaviation.com/peers/peer1.org2.blockaviation.com/tls:/etc/hyperledger/fabric/tls
ports:
- ${IP}:10051:7051
- ${IP}:10053:7053
# ORGANISATION THREE
peer0.org3.blockaviation.com:
container_name: peer0.org3.blockaviation.com
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer0.org3.blockaviation.com
- CORE_PEER_ADDRESS=peer0.org3.blockaviation.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.blockaviation.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org3.blockaviation.com:7051
- CORE_PEER_LOCALMSPID=Org3MSP
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org3.blockaviation.com/peers/peer0.org3.blockaviation.com/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org3.blockaviation.com/peers/peer0.org3.blockaviation.com/tls:/etc/hyperledger/fabric/tls
ports:
- ${IP}:11051:7051
- ${IP}:11053:7053
peer1.org3.blockaviation.com:
container_name: peer1.org3.blockaviation.com
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer1.org3.blockaviation.com
- CORE_PEER_ADDRESS=peer1.org3.blockaviation.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org3.blockaviation.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org3.blockaviation.com:7051
- CORE_PEER_LOCALMSPID=Org3MSP
#- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=host
- CORE_CHAINCODE_STARTUPTIMEOUT=2400s
- CORE_CHAINCODE_EXECUTETIMEOUT=1600s
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org3.blockaviation.com/peers/peer1.org3.blockaviation.com/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org3.blockaviation.com/peers/peer1.org3.blockaviation.com/tls:/etc/hyperledger/fabric/tls
ports:
- ${IP}:12051:7051
- ${IP}:12053:7053
用于部署网络的命令:
mkdir channel-artifacts crypto-config
bash byfn.sh -m generate
bash byfn.sh -m up -s couchdb -a -t 5
mkdir -p ./tmp/composer/org1
mkdir -p ./tmp/composer/org2
mkdir -p ./tmp/composer/org3
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/peerOrganizations/org1.blockaviation.com/peers/peer0.org1.blockaviation.com/tls/ca.crt > ./tmp/composer/org1/ca-org1.txt
caOrg1="$(<./tmp/composer/org1/ca-org1.txt)"
echo "$caOrg1"
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/peerOrganizations/org2.blockaviation.com/peers/peer0.org2.blockaviation.com/tls/ca.crt > ./tmp/composer/org2/ca-org2.txt
caOrg2="$(<./tmp/composer/org2/ca-org2.txt)"
echo "$caOrg2"
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/peerOrganizations/org3.blockaviation.com/peers/peer0.org3.blockaviation.com/tls/ca.crt > ./tmp/composer/org3/ca-org3.txt
caOrg3="$(<./tmp/composer/org3/ca-org3.txt)"
echo "$caOrg3"
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/ordererOrganizations/blockaviation.com/orderers/orderer.blockaviation.com/tls/ca.crt > ./tmp/composer/ca-orderer.txt
caOrderer="$(<./tmp/composer/ca-orderer.txt)"
echo "$caOrderer"
export ORG1=./crypto-config/peerOrganizations/org1.blockaviation.com/users/Admin@org1.blockaviation.com/msp
cp -p $ORG1/signcerts/A*.pem ./tmp/composer/org1
cp -p $ORG1/keystore/*_sk ./tmp/composer/org1
export ORG2=./crypto-config/peerOrganizations/org2.blockaviation.com/users/Admin@org2.blockaviation.com/msp
cp -p $ORG2/signcerts/A*.pem ./tmp/composer/org2
cp -p $ORG2/keystore/*_sk ./tmp/composer/org2
export ORG3=./crypto-config/peerOrganizations/org3.blockaviation.com/users/Admin@org3.blockaviation.com/msp
cp -p $ORG3/signcerts/A*.pem ./tmp/composer/org3
cp -p $ORG3/keystore/*_sk ./tmp/composer/org3
touch ./tmp/composer/org1/byfn-network-org1.json
touch ./tmp/composer/org2/byfn-network-org2.json
touch ./tmp/composer/org3/byfn-network-org3.json
composer card create -p ./tmp/composer/org1/byfn-network-org1.json -u PeerAdmin -c ./tmp/composer/org1/Admin@org1.blockaviation.com-cert.pem -k ./tmp/composer/org1/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org1.card
composer card create -p ./tmp/composer/org2/byfn-network-org2.json -u PeerAdmin -c ./tmp/composer/org2/Admin@org2.blockaviation.com-cert.pem -k ./tmp/composer/org2/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org2.card
composer card create -p ./tmp/composer/org3/byfn-network-org3.json -u PeerAdmin -c ./tmp/composer/org3/Admin@org3.blockaviation.com-cert.pem -k ./tmp/composer/org3/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org3.card
composer card import -f PeerAdmin@byfn-network-org1.card --card PeerAdmin@byfn-network-org1
composer card import -f PeerAdmin@byfn-network-org2.card --card PeerAdmin@byfn-network-org2
composer card import -f PeerAdmin@byfn-network-org3.card --card PeerAdmin@byfn-network-org3
composer network install --card PeerAdmin@byfn-network-org1 --archiveFile ../BlockAviation/dist/block-aviation-network.bna
composer network install --card PeerAdmin@byfn-network-org2 --archiveFile ../BlockAviation/dist/block-aviation-network.bna
composer network install --card PeerAdmin@byfn-network-org3 --archiveFile ../BlockAviation/dist/block-aviation-network.bna
touch ./tmp/composer/endorsement-policy.json
cat << EOF > ./tmp/composer/endorsement-policy.json
{
"identities": [
{
"role": {
"name": "member",
"mspId": "Org1MSP"
}
},
{
"role": {
"name": "member",
"mspId": "Org2MSP"
}
}
],
"policy": {
"2-of": [
{
"signed-by": 0
},
{
"signed-by": 1
}
]
}
}
EOF
composer identity request -c PeerAdmin@byfn-network-org1 -u admin -s adminpw -d SimonOrg1
composer identity request -c PeerAdmin@byfn-network-org2 -u admin -s adminpw -d SimonOrg2
composer identity request -c PeerAdmin@byfn-network-org2 -u admin -s adminpw -d SimonOrg3
composer network start -l "DEBUG" -c PeerAdmin@byfn-network-org1 -n block-aviation-network -V 0.0.1 -o endorsementPolicyFile=./tmp/composer/endorsement-policy.json -A SimonOrg1 -C SimonOrg1/admin-pub.pem -A SimonOrg2 -C SimonOrg2/admin-pub.pem -A SimonOrg3 -C SimonOrg3/admin-pub.pem
我查看了docker容器的日志,但是我看不到任何明显的错误。 (参见log0 for peer0.org1)
2018-04-27 13:47:43.662 UTC [dockercontroller] Start -> DEBU 8d6 start-could not find image <dev-peer0.org1.blockaviation.com-block-aviation-network-0.0.1-31fe9b4f843162ae50dcbb6bf4911fbdd8769fb314de85411475e43ee76433db> (container id <dev-peer0.org1.blockaviation.com-block-aviation-network-0.0.1>), because of <no such image>...attempt to recreate image
2018-04-27 13:47:43.663 UTC [chaincode-platform] generateDockerfile -> DEBU 8d7
FROM hyperledger/fabric-baseimage:x86_64-0.4.6
ADD binpackage.tar /usr/local/src
LABEL org.hyperledger.fabric.chaincode.id.name="block-aviation-network" \
org.hyperledger.fabric.chaincode.id.version="0.0.1" \
org.hyperledger.fabric.chaincode.type="NODE" \
org.hyperledger.fabric.version="1.1.0" \
org.hyperledger.fabric.base.version="0.4.6"
ENV CORE_CHAINCODE_BUILDLEVEL=1.1.0
2018-04-27 13:47:43.745 UTC [util] DockerBuild -> DEBU 8d8 Attempting build with image hyperledger/fabric-ccenv:x86_64-1.1.0
2018-04-27 13:52:29.809 UTC [gossip/discovery] getDeadMembers -> WARN 8d9 Haven't heard from [10 94 61 126 168 3 233 141 146 255 32 24 59 157 112 91 199 47 185 79 219 186 21 43 174 78 212 36 58 249 239 248] for 26.6482049s
我注意到的一件事是我的fabric-ccenv容器在我的桥接网络中运行,而不是在我的ba_multi_org_blockaviation网络中运行所有其他容器。
网络详情:
BA_multi_org simonmullaney$ docker network list
NETWORK ID NAME DRIVER SCOPE
dfc17755fb97 ba_multi_org_blockaviation bridge local
f79a2359276a bridge bridge local
1ea87e9a0bb4 host host local
e22f1c0f8ead none null local
Simons-MBP:BA_multi_org simonmullaney$ docker inspect dfc17755fb97
[
{
"Name": "ba_multi_org_blockaviation",
"Id": "dfc17755fb97e219bfb0d3069a95f1760e5a914e0bb596613b6b266e6880d080",
"Created": "2018-04-30T14:02:57.360711604Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"0b954d9968aa160918b7672cb5bc07423cd1cd703973c6677f1c82d9fdfd057c": {
"Name": "couchdb3",
"EndpointID": "7aeed72f86e46e445753e5726abe53bec188eeef0ac30c2497e64e27cff24294",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
},
"0f753b1cdd3ae2f864e22d5bc8e0dfbb944d703af0f848ac118e36029779af38": {
"Name": "peer0.org1.blockaviation.com",
"EndpointID": "3af255d328a9390a29e96617d451ed2d6b843dca5a88b6778c6234a02fd45d5b",
"MacAddress": "02:42:ac:12:00:0d",
"IPv4Address": "172.18.0.13/16",
"IPv6Address": ""
},
"2164fbac12736d56caef42644d07e381526020f6d4dcaddeea9c475a0a02f967": {
"Name": "couchdb0",
"EndpointID": "dfb0fbabf68cd8a1d1c29213dbb04e541bf855d54bd4e8aa748c67564d937db1",
"MacAddress": "02:42:ac:12:00:08",
"IPv4Address": "172.18.0.8/16",
"IPv6Address": ""
},
"353acf5a6f4b290b5b300f315f6a30a12dd23024c08fa2ae9b9966f4efc92d30": {
"Name": "peer1.org1.blockaviation.com",
"EndpointID": "e03fd033311a7516a5d5d9a89153eb45eba090bd73a4eb78f2bb4e7d45b7e9e9",
"MacAddress": "02:42:ac:12:00:0f",
"IPv4Address": "172.18.0.15/16",
"IPv6Address": ""
},
"4f50fa5e3e68b10b792b5f466b939c26e748688a57fa117288a1bd6f0c8d5223": {
"Name": "couchdb5",
"EndpointID": "cf77a071036f7bca03358a5536490f7c34755ad393556195a7107de2d80c6708",
"MacAddress": "02:42:ac:12:00:07",
"IPv4Address": "172.18.0.7/16",
"IPv6Address": ""
},
"55952da16c664679e75c5c33e2ec7d45ba20d6c6179cc68d6238c7d9af41c077": {
"Name": "ca_peerOrg3",
"EndpointID": "7055948f7462b637105dcc1b53d37d2e0a005b98503fec3503c465daa1dc9740",
"MacAddress": "02:42:ac:12:00:05",
"IPv4Address": "172.18.0.5/16",
"IPv6Address": ""
},
"5e489993cb67bfd1df5ec7b30dbf4a463618957e8077b5463345564fc7928763": {
"Name": "ca_peerOrg1",
"EndpointID": "831a19a12cecf3b0e89443d50c70838688b14fb02e9a75ecdc7a8e51d93c9fef",
"MacAddress": "02:42:ac:12:00:0b",
"IPv4Address": "172.18.0.11/16",
"IPv6Address": ""
},
"63708fe8a9eb09619f57af9c95b63ddbb16bc196fd8ff74f3a4b6b3170149381": {
"Name": "peer1.org3.blockaviation.com",
"EndpointID": "b9095de16ce6e9e73bfa751d6058ea441cd45cf5dac8e48ad902e22adcd6fcfb",
"MacAddress": "02:42:ac:12:00:11",
"IPv4Address": "172.18.0.17/16",
"IPv6Address": ""
},
"8620a474e5c9886cc6274d708c97afd417e443c1b6d7857ff5a2c04e580a4210": {
"Name": "peer0.org2.blockaviation.com",
"EndpointID": "e452971c532f04c70b71922e86ba36941e0972099c96d8008fa93b9a8253f5bb",
"MacAddress": "02:42:ac:12:00:0c",
"IPv4Address": "172.18.0.12/16",
"IPv6Address": ""
},
"89d7f5261bb4bcbe90a1b3169aa0e3f8875dcc448ae9c7a45c50b7d51fbc75df": {
"Name": "couchdb4",
"EndpointID": "66164991a57b4ebc557438e2e135f519a43f8de40d93df52f75ed48cd03c6114",
"MacAddress": "02:42:ac:12:00:09",
"IPv4Address": "172.18.0.9/16",
"IPv6Address": ""
},
"9f66f64f2157e969283273470b1f5f0455cb165309f8bb61d63aa916e6bfd08b": {
"Name": "peer1.org2.blockaviation.com",
"EndpointID": "694966adbd07905d892c276bee84190e10997c2a706daee6db0b9650146421f0",
"MacAddress": "02:42:ac:12:00:10",
"IPv4Address": "172.18.0.16/16",
"IPv6Address": ""
},
"a7ceadc414fd8bc073de5e8d372867e028829203abf5181df7942ce04234fe96": {
"Name": "couchdb1",
"EndpointID": "b0486b4b14d4c9ea1fcdb301a55558be8a9c285dbec0ed33c67141b7550174dc",
"MacAddress": "02:42:ac:12:00:06",
"IPv4Address": "172.18.0.6/16",
"IPv6Address": ""
},
"b77c5432099968d29a56cbde7209c1417de74dd169e79762407ce5da77d4e0d4": {
"Name": "ca_peerOrg2",
"EndpointID": "de9889e88d0dc3f45239cc0a0ee1abe69b0f8aaf60419a6d3f92a5ecb89395f2",
"MacAddress": "02:42:ac:12:00:0a",
"IPv4Address": "172.18.0.10/16",
"IPv6Address": ""
},
"bdc461a21b191a09829dd221ab813f9e1233be207b7635e3f081b639ed4fa274": {
"Name": "orderer.blockaviation.com",
"EndpointID": "1a9b37450ae5dacbaf359d3cddefd50acfc75f30b9d8015c334f3633956a471a",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
},
"e4aeefaab1196824207f1a595635404c049ae15abacb773df8627d18876489b4": {
"Name": "couchdb2",
"EndpointID": "60b95f8970185d2329173634d2a393b2da31c368f893c674097f87d65ace1905",
"MacAddress": "02:42:ac:12:00:04",
"IPv4Address": "172.18.0.4/16",
"IPv6Address": ""
},
"ead8ab6770df47b51dcbeb4914c8eb9265cfd7c5c799ff49918a044945ff9171": {
"Name": "peer0.org3.blockaviation.com",
"EndpointID": "e9875505aff36628f7dad492e2158fa82ec3291272b32f5b9507cda425888bd2",
"MacAddress": "02:42:ac:12:00:0e",
"IPv4Address": "172.18.0.14/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Simons-MBP:BA_multi_org simonmullaney$ docker inspect f79a2359276a
[
{
"Name": "bridge",
"Id": "f79a2359276a533a516898109067f3f1f70188727d3c19322a74b51476c7ed8f",
"Created": "2018-04-30T11:32:09.941991502Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"0ec4fe0586842b1562f7dbe5dc442922df8d298169a25c54515190764ec45f38": {
"Name": "zealous_babbage",
"EndpointID": "49b4949cf9bb5239d3ce94b6c8d436548178b33b0007b0c2ea78515c9ca50391",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"3b0b44a65ad6e945d0a684d10fc2d118ac778a3fc1bd456595f03f9f6ecea78b": {
"Name": "friendly_curie",
"EndpointID": "13160d1d380da4f485fab930938acadfc80867704fec93d50e4af647d63d5578",
"MacAddress": "02:42:ac:11:00:05",
"IPv4Address": "172.17.0.5/16",
"IPv6Address": ""
},
"b8c6137baa9f53dafca0f20a75245ebf3f376c117a46d5004342186d303a9e05": {
"Name": "ecstatic_cray",
"EndpointID": "7dd9ddcf3f63b0b0c8ce3397ca98f7e41e7c3bb1b4e4edfda47899948f97f90b",
"MacAddress": "02:42:ac:11:00:04",
"IPv4Address": "172.17.0.4/16",
"IPv6Address": ""
},
"c0e3a87b4b919d81fa2acea85dd14b71a589cd1b0eb92eb01c4e0695a431f9cf": {
"Name": "pedantic_hodgkin",
"EndpointID": "b614ee5cbbb708b43b71a52a6aec2069392d4b64d61f5135d88d233ba98b73ac",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
},
"c5a8a0d3f76be59635b09c421445337f1ed0436e4a056c7601c8e38abc11e975": {
"Name": "wonderful_hawking",
"EndpointID": "a0b08e0921662f6ea1d3e77d2eb0c99e7fd97ad98286e09b635c3fef9d8f459f",
"MacAddress": "02:42:ac:11:00:06",
"IPv4Address": "172.17.0.6/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
Composer v0.19.1
Fabric v1.1.0
答案 0 :(得分:1)
感谢所有细节。
错误:14无法使用:连接失败
这是我之前与connection.json文件中的错误相关联的错误,CLI无法找到&#39; Fabric容器 - 通常是因为它们没有启动。值得检查connection.json文件是否有正确的地址,但我假设您已为每个组织成功composer network install
。
这是连接失败,因此您可以使用Docker网络处于正确的位置。
除非您指定不同的内容,否则Docker容器将在默认桥上运行。您可以在docker compose .yaml文件或docker run命令行中设置网络。
您可以使用docker inspect bridge
和docker inspect ba_multi_org_blockaviation
查看哪些容器位于哪个网络上。
您还可以在任何容器上启动shell会话,例如docker exec -it peer0.org1.example.com /bin/sh
然后使用wget
测试不同地址和端口的连接 - 这有助于识别连接问题。
wget不是完美的网络测试工具,但它已经安装在Fabric容器中了!我建议您在ubuntu主机上尝试这些示例,以了解成功和失败的连接:
wget www.ibm.com:80
wget www.ibm.com:9999
wget bad.bad.bad
然后从各种容器中尝试诸如
之类的命令 wget peer0.org1.example.com:7051
wget peer0.org1.example.com:7053
如果你看到wget错误这样的错误&#34;(连接由同行重置)&#34;这实际上是我们简单的寻址/端口/连接测试的成功! (我们真的不想要网络,我们只想知道我们可以“点击其他地址/端口”