首页 > 解决方案 > 无法初始化本地 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

标签: dockerhyperledger-fabric

解决方案


今天大部分时间都有同样的信息。与其他运行网络的人一起工作,并确认这是我的机器,只是出现了这个错误……结果是陈旧的 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 拉取与上述一致的图像,它应该可以工作。


推荐阅读