2017-07-12 5 views
0

Je peux exécuter l'exemple Hyperledger Fabric 1.0 "premier réseau".Hyperledger Fabric 1.0 obtient une erreur lors de l'ajout de la persistance CouchDB

Maintenant, je suis en train d'ajouter la persistance CouchDB à cet échantillon comme décrit à https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#using-couchdb et https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#a-note-on-data-persistence

je modifier la fonction en tissu-échantillons/premier réseau/byfn.sh changer la ligne de networkUp():

CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE up -d 2>&1 

à:

CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml up -d 2>&1 

I également fichier d'édition tissu-échantillons/premier réseau/docker-Compose-couch.yaml bloc changeant :

services: 
    couchdb0: 
    container_name: couchdb0 
    image: hyperledger/fabric-couchdb 
    ports: 
     - "5984:5984" 
    networks: 
     - byfn 

à:

services: 
    couchdb0: 
    container_name: couchdb0 
    image: hyperledger/fabric-couchdb 
    ports: 
     - "5984:5984" 
    networks: 
     - byfn 
    volumes: 
     - /var/hyperledger/couchdb0:/opt/couchdb/data 

Lorsque je l'exécute avec des commandes:

yes | sudo ./byfn.sh -m generate 
yes | sudo ./byfn.sh -m up 

droit après LISTES Channel "mychannel" est créé avec succès ", je reçois l'erreur:

UTC [grpc] Printf -> DEBU 003 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: Error while dialing dial tcp 172.18.0.8:7051: getsockopt: connection refused"; Reconnecting to {peer0.org1.example.com:7051 <nil>} 

Toute aide grandement ap prisé.

Merci d'avance!

+0

Après la ligne d'erreur ci-dessus, je LSO obtenir: Erreur d'obtention canal client endosseur: PER: 404 - Erreur d'essayer de se connecter à pair locale –

Répondre

0

Ce problème ne se produisait pas sur RHEL 7.3, donc j'ai mis à jour mon CentOS de 7.2 à 7.3 comme décrit au http://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-update-centos-7-07-17-2-to-centos-7-3.html et mon problème a été résolu.

Les modifications apportées:

1) dossier créé

mkdir /home/vagrant/db0 

2) a changé en networkUp() de byfn.sh:

# CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f $COMPOSE_FILE up -d 2>&1 
CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=$CLI_TIMEOUT docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml up -d 2>&1 

3) a ajouté deux volumes ":" lignes dans docker-compose-couchdb.yaml:

services: 
    couchdb0: 
    container_name: couchdb0 
    image: hyperledger/fabric-couchdb 
    ports: 
     - "5984:5984" 
    networks: 
     - byfn 
    volumes: 
     - /home/vagrant/db0:/opt/couchdb/data 
0

Le conteneur docker commence par l'utilisateur couchdb. Ainsi, lorsque vous essayez de partager le volume pour le répertoire de données, le conteneur docker tente de créer ce dossier et d'attribuer la propriété à la racine. Donc, je pense que la variable utilisateur doit être laissée vide dans le dockerfile au lieu de le spécifier comme couchdb. Mon environnement est la version 7.3 de RHEL (Maipo). Pour résoudre ce problème, j'ai commencé le conteneur avec les commandes suivantes et spécifiées à l'utilisateur en tant que root

docker run --rm -itd --name couchdb0 --user root \ 
--publish 5984:5984 \ 
--volume /var/hyperledger/couchdb0:/opt/couchdb/data \ 
hyperledger/fabric-couchdb:x86_64-1.0.0