Hyperledger Fabric Multi-Org - PullRequest
       5

Hyperledger Fabric Multi-Org

0 голосов
/ 31 августа 2018

Я слежу за официальным руководством по развертыванию бизнес-сети блокчейна Hyperledger Composer в Hyperledger Fabric (несколько организаций). Я смог запустить сеть, используя пример провайдера Org1 и Org2. Теперь я хочу настроить организацию как свою собственную. Но после выполнения команды ./byfn.sh -m up -s couchdb -a. Я получаю приведенную ниже ошибку; Я проверяю все файлы yaml, но не смог найти возможную основную причину ошибки. Мне просто нужна помощь в этом. Спасибо.

Starting for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds and using database 'couchdb',   and using Fabric CAs
Continue? [Y/n] Y
proceeding ...
LOCAL_VERSION=1.2.0
DOCKER_IMAGE_VERSION=1.2.0
WARNING: The COMPOSE_PROJECT_NAME variable is not set. Defaulting to a blank string.
ERROR: The Compose file is invalid because:
Service peer0.org2.example.com has neither an image nor a build context specified. At least one must be provided.
ERROR !!!! Unable to start network

1 Ответ

0 голосов
/ 31 августа 2018

Похоже, ваш файл peer-base.yaml неверен. Одной из проблем является переменная COMPOSE_PROJECT_NAME. Если он не задан, то в качестве сетевого имени папка использует папку. Но если это не так, при загрузке сети произойдет ошибка. Мы строим торговую сеть, и она называется trade-network. Итак, пример записи в файле peer-base.yaml:

- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_basic

Перед бустреппингом мы определяем COMPOSE_PROJECT_NAME с trade-network, поэтому сеть называется trade-network_basic. Я не уверен на 100%, но я думаю, что после (или во время) начальной загрузки есть момент, когда Fabric все равно использует имя папки. Поэтому мы решили использовать имя папки по умолчанию, и ничего не случилось неправильно.

Другой проблемой может быть запись изображения для пира. В нашем файле это:

image: hyperledger/fabric-peer:x86_64-1.1.0

Вы можете docker images list и будете знать, какие у вас есть изображения, вы должны использовать одно для пиров. После двоеточия вы можете быть более конкретным, и я бы предложил.

Вот пример нашего полного файла peer-base.yaml:

version: '2'

services:
  peer-base:
    image: hyperledger/fabric-peer:x86_64-1.1.0
    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}_basic
      #- CORE_LOGGING_LEVEL=INFO
      - 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
...