docker - 无法初始化本地 MSP:设置错误:nil conf 参考
问题描述
我试图用 3 个组织(每个有 3 个对等点)和 2 个排序节点与 kafka&zookeeper 一起创建结构网络,但是当我启动排序节点并检查日志时,出现类似“无法初始化本地 MSP:设置错误:nil conf 参考”之后的错误制作本地MSP。
|──directories
| └──────artifacts
| | └──────channel.tx
| | └──────genesis.block
| |
| └──────bin
| | └──────crypto-config
| | | └──────...
| | └──────...
| |
| └──────network
| └──────docker-compose-mq.yaml
| └──────docker-compose-orderer.yaml
docker-compose-mq.yaml
version: '2'
networks:
blockchain_network:
services:
kafka0:
container_name: kafka0.example.com
image: hyperledger/fabric-kafka:0.4.14
restart: always
environment:
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
- KAFKA_MESSAGE_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_REPLICA_FETCH_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_BROKER_ID=0
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
ports:
- '9092'
networks:
- blockchain_network
kafka1:
container_name: kafka1.example.com
image: hyperledger/fabric-kafka:0.4.14
restart: always
environment:
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
- KAFKA_MESSAGE_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_REPLICA_FETCH_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_BROKER_ID=1
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
ports:
- '9092'
networks:
- blockchain_network
kafka2:
container_name: kafka2.example.com
image: hyperledger/fabric-kafka:0.4.14
restart: always
environment:
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
- KAFKA_MESSAGE_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_REPLICA_FETCH_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_BROKER_ID=2
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
ports:
- '9092'
networks:
- blockchain_network
kafka3:
container_name: kafka3.example.com
image: hyperledger/fabric-kafka:0.4.14
restart: always
environment:
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0:2181,zookeeper1:2181,zookeeper2:2181
- KAFKA_MESSAGE_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_REPLICA_FETCH_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_BROKER_ID=3
- KAFKA_MIN_INSYNC_REPLICAS=2
- KAFKA_DEFAULT_REPLICATION_FACTOR=3
ports:
- '9092'
networks:
- blockchain_network
zookeeper0:
container_name: zookeeper0
image: hyperledger/fabric-zookeeper:0.4.14
restart: always
ports:
- '2181'
- '2888'
- '3888'
environment:
- ZOO_MY_ID=1
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
networks:
- blockchain_network
zookeeper1:
container_name: zookeeper1
image: hyperledger/fabric-zookeeper:0.4.14
restart: always
ports:
- '2181'
- '2888'
- '3888'
environment:
- ZOO_MY_ID=2
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
networks:
- blockchain_network
zookeeper2:
container_name: zookeeper2
image: hyperledger/fabric-zookeeper:0.4.14
restart: always
ports:
- '2181'
- '2888'
- '3888'
environment:
- ZOO_MY_ID=3
- ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 server.3=zookeeper2:2888:3888
networks:
- blockchain_network
docker-compose-orderer.yaml
version: '2'
networks:
blocckchain_network:
services:
orderer0.example.com:
container_name: orderer0.example.com
image: hyperledger/fabric-orderer:1.4.0
environment:
- FABRIC_LOGGING_SPEC=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
- 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]
- ORDERER_KAFKA_RETRY_SHORTINTERVAL=1s
- ORDERER_KAFKA_RETRY_SHORTTOTAL=30s
- ORDERER_KAFKA_VERBOSE=true
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
ports:
- 7050:7050
networks:
- blocckchain_network
volumes:
- ../artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
- ../bin/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp:/var/hyperledger/orderer/msp
- ../bin/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls:/var/hyperledger/orderer/tls
orderer1.example.com:
container_name: orderer1.example.com
image: hyperledger/fabric-orderer:1.4.0
environment:
- FABRIC_LOGGING_SPEC=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
- 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]
- ORDERER_KAFKA_RETRY_SHORTINTERVAL=1s
- ORDERER_KAFKA_RETRY_SHORTTOTAL=30s
- ORDERER_KAFKA_VERBOSE=true
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
ports:
- 8050:7050
networks:
- blocckchain_network
volumes:
- ../artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
- ../bin/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp:/var/hyperledger/orderer/msp
- ../bin/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls:/var/hyperledger/orderer/tls
解决方案
今天大部分时间都有同样的信息。与其他运行网络的人一起工作,并确认这是我的机器,只是出现了这个错误……结果是陈旧的 docker 图像。
此修复可能/可能不适合您,但如果上述所有其他方法均失败,则它是一种选择。
删除所有/相关的 docker 图像并从头开始。
我现在正在使用的 Docker 图像(验证图像 ID):
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dev-peer0.org1.example.com-docume... latest 185ef6801c2b 9 minutes ago 165MB
hyperledger/fabric-couchdb latest d369d4eaa0fd 45 hours ago 261MB
hyperledger/fabric-tools latest 18ed4db0cd57 2 months ago 1.55GB
hyperledger/fabric-ca latest c18a0d3cc958 2 months ago 253MB
hyperledger/fabric-ccenv latest 3d31661a812a 2 months ago 1.45GB
hyperledger/fabric-orderer latest b666a6ebbe09 2 months ago 173MB
hyperledger/fabric-peer latest fa87ccaed0ef 2 months ago 179MB
hyperledger/fabric-baseos amd64-0.4.15 9d6ec11c60ff 7 months ago 145MB
docker images
列出泊坞窗图像
docker rmi [IMAGE_ID]
删除不需要的 docker 图像(提示:删除上述图像的任何版本,以便下载新的图像)。
docker rmi -f [IMAGE_ID]
如果由于某种原因没有删除图像,您可以强制删除它
假设您的 docker-compose.yml 拉取与上述一致的图像,它应该可以工作。
推荐阅读
- python-3.x - 在两个巨大的数据集中找到相同的值
- typescript - Typescript:至少实现一个特定接口的类
- javascript - How to handle dynamic image paths with webpack
- javascript - JavaScript Uglify 不同且正确?
- android - 如果使用 FLAG_LAYOUT_NO_LIMITS,则无法使用 setStatusBarColor 设置状态栏颜色
- c - 用于变量属性的 GCC 扩展 __attribute__ ((未使用))
- javascript - Bootstrap Twitter输入类型文件如何清除文件?
- python - 生产环境中如何处理tqdm/tqdm_notebook
- r - 在 r 中进行 polr 总结时出错
- glfw - 带有glfw的简单opengl三角形程序呈现黑屏