2017-07-12 1 views
0

Ich kann das Hyperledger Fabric 1.0 "erste Netzwerk" Beispiel fein ausführen.Hyperledger Fabric 1.0 Fehler beim Hinzufügen von CouchDB Persistenz

Jetzt ab Ich versuche, CouchDB Ausdauer zu dieser Probe hinzufügen, wie ich die networkUp() Funktion in Gewebeproben/First-Netzwerk/byfn.sh die Linie

bei https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#using-couchdb und https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#a-note-on-data-persistence beschrieben bearbeiten zu ändern:

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

zu:

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

I auch Bearbeiten Datei Stoffproben/first-Netzwerk/Andockfensters-compose-couch.yaml Ändern Block :

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

zu:

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

Wenn ich laufe es mit den Befehlen:

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

Gleich nach dem es Listen 'Channel "mychannel" erfolgreich erstellt wurde', ich den Fehler:

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>} 

Jede Hilfe sehr ap genervt.

Vielen Dank im Voraus!

+0

Nach der obigen Fehlerzeile, ich lso bekommen: Fehler Kanal bekommen Endorser Client: PER: 404 - Fehler beim Versuch, den lokalen Peer verbinden –

Antwort

0

Dieses Problem trat unter RHEL 7.3 nicht auf. Daher aktualisierte ich mein CentOS von 7.2 auf 7.3, wie unter http://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-update-centos-7-07-17-2-to-centos-7-3.html beschrieben, und mein Problem wurde behoben.

Änderung:

1) Erstellt Ordner

mkdir /home/vagrant/db0 

2) geändert in networkUp() von 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) hinzugefügt letzten zwei "Band:" Linien in 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

Der Andockbehälter beginnt mit dem Benutzer couchdb. Wenn Sie also versuchen, das Volume für das Datenverzeichnis freizugeben, versucht der Andock-Container, diesen Ordner zu erstellen und dem Root den Eigentümer zuzuweisen. Ich denke also, die Benutzervariable sollte in der Dockerdatei leer gelassen werden, anstatt sie als Couchdb anzugeben. Meine Umgebung ist RHEL Release 7.3 (Maipo). Um dies zu beheben begann ich den Behälter mit den folgenden Befehlen und spezifiziert den Benutzer als 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 
Verwandte Themen