Hyperledger Fabric peer join завершается неудачно с «неправильным ответом на предложение» - PullRequest
0 голосов
/ 25 августа 2018

У меня проблемы с настройкой простой сети Hyperledger Fabric v1.2.0. Сеть, которую я пытаюсь построить, состоит из одного заказчика и одной организации с одним партнером.Я успешно прошел учебник по сборке вашей первой сети и хотел начать все заново.Тем не менее, я всегда сталкиваюсь с ошибкой при присоединении однорангового узла к каналу.

docker exec -e "CORE_PEER_LOCALMSPID=FooMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@foo.bcn.org/msp" -e "CORE_PEER_ADDRESS=peer0.foo.bcn.org:7051" peer0.foo.bcn.org peer channel join -b /etc/hyperledger/configtx/genesis.block
2018-08-25 17:50:18.970 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Error: proposal failed (err: bad proposal response 500)

Ни в журнале заказа, ни в журнале однорангового узла не содержится какой-либо раскрывающей информации (по крайней мере, для меня).

журналы peer0.foo.bcn.org

2018-08-25 17:50:13.676 UTC [nodeCmd] serve -> INFO 01d Started peer with ID=[name:"peer0.foo.bcn.org" ], network ID=[dev], address=[peer0.foo.bcn.org:7051]
2018-08-25 17:50:18.972 UTC [endorser] ProcessProposal -> ERRO 01e [][20e127e8] simulateProposal() resulted in chaincode name:"cscc"  response status 500 for txid: 20e127e8af5dc8f513da9ea287b1ae2940df834be0f1b0404560b3e94e94627a

журналы orderer.bcn.org

В журналах заказчика нет ничего подозрительного для меня, кромесо следующей строки.

2018-08-25 17:50:18.784 UTC [common/deliver] Handle -> WARN 2fc Error reading from 172.18.0.3:50860: rpc error: code = Canceled desc = context canceled

Команды, которые привели меня к ошибке, были прямыми, генерируя артефакты канала и соединяясь с одноранговым узлом, чтобы создать и присоединиться к каналу.

# generate crypto material
cryptogen generate --config=./crypto-config.yaml
# generate genesis block for orderer
configtxgen -profile OrdererGenesis -outputBlock ./channel-artifacts/genesis.block
# generate channel configuration transaction
configtxgen -profile OrgChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID bcnchannel
docker-compose -f docker-compose.yaml up -d
# Create the channel
docker exec -e "CORE_PEER_LOCALMSPID=FooMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@foo.bcn.org/msp" -e "CORE_PEER_ADDRESS=peer0.foo.bcn.org:7051" peer0.foo.bcn.org peer channel create -o orderer.bcn.org:7050 -c bcnchannel -f /etc/hyperledger/configtx/channel.tx
# Join peer to the channel.
docker exec -e "CORE_PEER_LOCALMSPID=FooMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@foo.bcn.org/msp" -e "CORE_PEER_ADDRESS=peer0.foo.bcn.org:7051" peer0.foo.bcn.org peer channel join -b /etc/hyperledger/configtx/genesis.block

Есть идеи, что может вызвать эту проблему и как ее решить?

Заранее спасибо!

crypto-config.yaml

OrdererOrgs:
  - Name: Orderer
    Domain: bcn.org
    Specs:
      - Hostname: orderer
PeerOrgs:
  - Name: Foo
    Domain: foo.bcn.org
    Template:
      Count: 1
      Start: 0      
    Users:
      Count: 1

configtx.yaml

Organizations:
    - &OrdererOrg
        Name: BCNOrdererOrg
        ID: BCNOrdererMSP
        AdminPrincipal: Role.ADMIN
        MSPDir: crypto-config/ordererOrganizations/bcn.org/msp

    - &Org1
        Name: Foo
        ID: FooMSP
        AdminPrincipal: Role.ADMIN
        MSPDir: crypto-config/peerOrganizations/foo.bcn.org/msp

        AnchorPeers:
            - Host: peer0.foo.bcn.org
              Port: 7051


Application: &ApplicationDefaults
    Organizations:

Orderer: &OrdererDefaults   
    OrdererType: solo

    Addresses:
        - orderer.bcn.org:7050

    BatchTimeout: 2s
    MaxChannels: 0

    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB

    Organizations:

Profiles:    
    OrdererGenesis:
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
        Consortiums:
            BCNConsortium:
                Organizations:
                    - *Org1
    OrgChannel:
        Consortium: BCNConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1

docker-compose.yaml

version: '2'

networks:
  bcn-net:

services:
  orderer.bcn.org:
    container_name: orderer.bcn.org
    image: hyperledger/fabric-orderer
    environment:
      - ORDERER_GENERAL_LOGLEVEL=debug
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block
      - ORDERER_GENERAL_LOCALMSPID=BCNOrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
    command: orderer
    ports:
      - 7050:7050
    volumes:
        - ./channel-artifacts/:/etc/hyperledger/configtx
        - ./crypto-config/ordererOrganizations/bcn.org/orderers/orderer.bcn.org/:/etc/hyperledger/msp/orderer
    networks:
      - bcn-net

  peer0.foo.bcn.org:
    container_name: peer0.foo.bcn.org
    image: hyperledger/fabric-peer
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_PEER_ID=peer0.foo.bcn.org
      - CORE_LOGGING_PEER=debug
      - CORE_CHAINCODE_LOGGING_LEVEL=debug
      - CORE_PEER_LOCALMSPID=FooMSP
      - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/
      - CORE_PEER_ADDRESS=peer0.foo.bcn.org:7051
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_bcn-net
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: peer node start
    ports:
      - 7051:7051
      - 7053:7053
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/foo.bcn.org/peers/peer0.foo.bcn.org/msp:/etc/hyperledger/msp/peer
        - ./crypto-config/peerOrganizations/foo.bcn.org/users:/etc/hyperledger/msp/users
        - ./channel-artifacts:/etc/hyperledger/configtx
    depends_on:
      - orderer.bcn.org
    networks:
      - bcn-net

1 Ответ

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

После бесчисленных часов проверки моих файлов конфигурации, я наконец нашел, что я запутался. Проблема заключается в использовании неправильного файла блока при присоединении к каналу.

Для присоединения к каналу я использовал блок генезиса заказчика вместо того, который создавался во время "создания канала равноправного узла".

Итак, после создания канала с

peer channel create -o orderer.bcn.org:7050 -c bcnchannel -f /etc/hyperledger/configtx/channel.tx

Я должен был использовать

peer channel join -b bcnchannel.block

вместо

peer channel join -b /etc/hyperledger/configtx/genesis.block
...