2017-10-18 4 views
1

Erreur récipient de démarrage: Impossible de générer docker spécifique à la plateforme build: erreur retourné à partir de l'accumulation: 1 « ne peut pas charger le paquet: paquet ../../bin/github .com/hyperledger/tissu/chaincode/marbres: ouvert /bin/github.com/hyperledger/fabric/chaincode/marbles: aucun fichier ou répertoire Hyperledger Tissu: pairs chaincode erreur instancier

Je le vois est à la recherche d'un répertoire relatif. par rapport à quoi? chaincode install était bien Si le chaincode est installé, pourquoi ne peut-il pas être trouvé pour instantiate? 1 pair.l'ordonnateur solo. canal rejoint bien

+0

il semble qu'il ne peut pas compiler le chaincode car il a besoin d'un paquet dépendant qui n'est pas installé dans le conteneur. – christo4ferris

Répondre

2

Chaincode installation ne signifie pas que vous avez correctement cartographié votre chemin chaincode,

peer chaincode install -p {path} -n {} -v {} 

Chaincode instancier construit et instancier votre chaincode.

peer chaincode instantiate -n {} -v {} -c {} -C {} 
  • Dans le fichier de menu fixe de composition à double vérifier le volume/la cartographie chaincode de la cli.
  • Utiliser le chemin réel lors de l'installation de la chaîne de caractères.
+0

J'ai installé à partir du répertoire dans lequel se trouve la chaîne. Par exemple, -p ./ La tentative de réinstallation donne l'erreur correcte de existe déjà. Le fichier Chaincode.0 existe dans/var/hyperledger/production/chaincodes. Ne pas utiliser docker. Je sais que ça s'est bien passé lors de l'installation et je crois qu'il a été dit 0 bloc reçu ou quelque chose comme ça. – jworthington

+0

Ah. Donc, le chemin de chaincode doit être quelque chose comme github.com/hyperledger/fabric/chaincode/ccname qui est en quelque sorte relatif à Gopath. Le chemin complet est /usr/local/go/src/github.com/hyperledger/fabric/chaincode/ccname. $ GOPATH est/usr/local/go/bin. $ GOROOT est/usr/local/go. Donc le fabric attend chaincode dans $ GOROOT/src /? Cela semble étrange mais ça fonctionne. thx – jworthington

+0

oui, il attend chaincode dans/opt/gopath/src / –

0

Il existe une attente "cachée" dans le mappage de chemin. Il s'attend à ce qu'il y ait un répertoire/src sous gopathique qui m'a causé quelques problèmes jusqu'à ce que je l'ai compris.

Voici ma solution FWIW:

Dans votre yaml Compose pour le poste que vous définissez la variable d'env:

- GOPATH=/opt/gopath

Ensuite, dans la CLI, vous pouvez installer et instancier ainsi:

SIGNED_CHAINCODE_LOCATION=/opt/gopath/src/chaincode/<cc_dir>/<signed_cc>.out 

peer chaincode install /${SIGNED_CHAINCODE_LOCATION} 

Et d'instancier comme d'habitude. Utilisez simplement le répertoire au lieu du fichier .out si vous n'avez pas besoin de créer un package et de le signer.

Dans mon cas, j'ai ajouté un répertoire de travail dans l'homologue qui définit le code de la chaîne à un répertoire relatif à mon répertoire de base de la blockchain: - ./chaincode/:/opt/gopath/src/chaincode/ et jeté le dossier aller là-bas.