Образ Docker создан, однако контейнер не запускается при создании экземпляра цепного кода в Hyperledger Fabric с использованием Java-SDK - PullRequest
0 голосов
/ 08 ноября 2018

При создании цепного кода с использованием java-sdk создается образ докера для контейнера.Однако контейнер цепного кода не запускается с журналами, приведенными ниже.

2018-11-08 07:05:20.774 UTC [shim] userChaincodeStreamGetter -> ERRO 001 context deadline exceeded
error trying to connect to local peer
github.com/hyperledger/fabric/core/chaincode/shim.userChaincodeStreamGetter
    /opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/chaincode.go:112
github.com/hyperledger/fabric/core/chaincode/shim.Start
    /opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/shim/chaincode.go:151
main.main
    /chaincode/input/src/github.com/fabcar/fabcar.go:200
runtime.main
    /opt/go/src/runtime/proc.go:198
runtime.goexit
    /opt/go/src/runtime/asm_amd64.s:2361
Error creating new Smart Contract: error trying to connect to local peer: context deadline exceeded%

Пир запускается с использованием docker-compose.yaml в режиме роя в качестве стека.

  peer0org1:
    image: hyperledger/fabric-peer:1.2.0
    deploy:
      placement:
        constraints:
          - node.role == manager
          - node.id == vbka1smkqlqflno3hfp69rbr7
    environment:
      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_ADDRESS=peer0org1:7051
      - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
      - CORE_VM_ENDPOINT=http://10.80.102.27:4243
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer0org1:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0org1:7051
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/crypto/peer/msp
      - CORE_PEER_TLS_ENABLED=false
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/crypto/peer/tls/server.key
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/crypto/peer/tls/server.crt
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/crypto/peer/tls/ca.crt
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start
    volumes:
        - /var/run/:/host/var/run/
    ports:
      - 7051:7051
      - 7052:7052
      - 7053:7053
    volumes:
        - ./channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/crypto/peer
    depends_on:
      - orderer
    networks:
      - networky

Журналы SDK:

INFO: fabcar- Chain code instantiation response {
  status: 500
  message: "failed to execute transaction Tx_ID:timeout expired while starting chaincode fabcar:1 for transaction Tx_ID"
}

1 Ответ

0 голосов
/ 09 ноября 2018

Ваш контейнер с цепочкой не может связаться с одноранговым узлом. Вам нужно установить переменную среды CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE (или vm.docker.hostConfig.NetworkMode в core.yaml) для ваших пиров (ов) на имя оверлейной сети Docker, используемой вашим кластером Swarm. Вам также необходимо пометить эту сеть как подключаемую, так как контейнеры с цепочечным кодом не смогут подключаться в оверлейной сети. Документы Docker Compose для использования Swarm Mode имеют раздел с соответствующими параметрами.

...