Ma version de tissu est 1.1.0-preview, l'homologue, le responsable de la commande, configtxgen vient d'être généré.
quand j'exécute l'outil configtxgen:
configtxgen -profile SoloOrdererGenesis -outputBlock genesis.block
configtxgen -profile mych -outputCreateChannelTx channel-artifacts/mych.tx -channelID mych
Il génère le genesis.block et mych.tx avec channelName est mych.
Puis, le client commençant par genesis.block, j’exécute comme suit:
peer channel create -f mych.tx -o orderer.example.com:7050 -c mych
il jette l'erreur,
Erreur: statut inattendu: FORBIDDEN - Impossible d'atteindre le seuil implicite de 1 sous-stratégies, nécessaire 1 restante: autorisation refusée
quelle est la mauvaise étape?
mon fichier configtx.yaml est:
---
Profiles:
SoloOrdererGenesis:
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Consortiums:
SampleConsortium4:
Organizations:
- *Org1
- *Org2
- *Org3
- *Org4
SampleConsortium3:
Organizations:
- *Org1
- *Org2
- *Org3
SampleConsortium2:
Organizations:
- *Org1
- *Org2
SampleConsortium1:
Organizations:
- *Org1
mych4:
Consortium: SampleConsortium4
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
- *Org3
- *Org4
mych3:
Consortium: SampleConsortium3
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
- *Org3
mych2:
Consortium: SampleConsortium2
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
mych1:
Consortium: SampleConsortium1
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
Organizations:
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP
MSPDir: orderer/msp
- &Org1
Name: Org1MSP
ID: Org1MSP
MSPDir: org1/peer/msp
AnchorPeers:
- Host: peer.org1.example.com
Port: 17051
- &Org2
Name: Org2MSP
ID: Org2MSP
MSPDir: org2/peer/msp
AnchorPeers:
- Host: peer.org2.example.com
Port: 27051
Orderer: &OrdererDefaults
OrdererType: solo
Addresses:
- orderer.example.com:7050
BatchTimeout: 2s
BatchSize:
MaxMessageCount: 10
AbsoluteMaxBytes: 99 MB
PreferredMaxBytes: 512 KB
Organizations:
Application: &ApplicationDefaults
Organizations:
Quand j’ai eu ce problème, mes solutions étaient assez simples. J’avais déjà démarré mon réseau en utilisant
/byfn.sh -m up
oublié de le faire et essayait de le démarrer en générant d'abord la crypto puis en utilisant la même commande .
/byfn.sh -m down
et a recommencé avec la même commande up.
Il pourrait très bien s'agir simplement du mauvais chemin d'accès à un fichier. Lorsque vous avez généré le fichier mych.tx
, vous l'avez écrit dans channel-artifacts/mych.tx
, mais lorsque vous essayez de créer le canal, vous avez oublié le répertoire channel-artifacts
. Vous pourriez essayer peer channel create -f channel-artifacts/mych.tx -o orderer.example.com:7050 -c mych
Cela dit, je viens d'avoir un problème similaire avec la même erreur. Je testais un bloc de genèse et un crypto nouvellement créés. Dans mon cas, c'était le résultat de la cryptographie et du canal précédents qui étaient stockés dans un volume Docker à partir de l'un de mes tests précédents. Cela peut être le cas avec vous {pas} _ puisque vous avez dit que vous créez un nouveau pair et un nouvel utilisateur.
Vous pouvez vérifier cela en vous connectant à l'un des pairs (ou au conteneur cli si vous en avez un) avec docker exec -it <container name> bash
, puis en exécutant peer channel list
. Si vous recevez quelque chose comme ça, alors c'est votre problème:
root@4cf873123669:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel list
2018-04-05 14:09:40.734 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-04-05 14:09:40.734 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-04-05 14:09:40.739 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized
2018-04-05 14:09:40.740 UTC [msp/identity] Sign -> DEBU 004 Sign: plaintext: 0AAE070A5C08031A0C08A4DC98D60510...631A0D0A0B4765744368616E6E656C73
2018-04-05 14:09:40.740 UTC [msp/identity] Sign -> DEBU 005 Sign: digest: 93EFB49DD86ABB5568DE1E2C8FC53FA99AB52929AFA24D7B317C270DE8CDC80B
Channels peers has joined:
mych
2018-04-05 14:09:40.743 UTC [main] main -> INFO 006 Exiting.....
Si vous ne voyez pas la mych
répertoriée sous "Les canaux que nos pairs ont rejoints:", ma réponse ne vous concerne pas. (Mais peut être à quelqu'un d'autre!)
Voici comment vous pourriez restaurer votre instance Hyperledger Docker locale à l'état pur:
docker-compose -f docker-compose.yaml down --volumes
Le --volumes
indique à Docker de supprimer tous les volumes associés aux conteneurs du fichier de configuration.
Pour faire bonne mesure, j'ai tout effacé (tous conteneurs et volumes Docker - il s'agissait d'un système de test) et le processus a commencé:
docker-compose -f docker-compose.yaml down --volumes
docker rm $(docker ps -aq)
docker volume Prune
rm genesis.block channel-artifacts/mych.tx
Une fois ceux-ci supprimés et la sauvegarde de Fabric démarrée, j'ai pu créer le canal sans obtenir cette erreur.
Si cela ne fonctionne pas, le dernier recours sera Sudo service docker restart
qui redémarrera tous les services de menu fixe tels que le système de menu fixe, le réseau et les volumes.
Si l’une des solutions de cette page ne convient à personne, essayez de supprimer votre réseau des réseaux Docker. Affichez vos réseaux Docker en exécutant docker network ls
et supprimez votre réseau en exécutant docker network rm <network-name>
.
Supprimer le réseau Docker a fonctionné pour moi, mais je l’ai fait sur un serveur de développement.
Il serait plus clair si vous partagez le journal de débogage du client. Pour activer le débogage, ajoutez
- ORDERER_GENERAL_LOGLEVEL=debug
dans votre menu fixe composez le fichier sous le service des commandes et redémarrez votre réseau. vous pouvez ensuite imprimer le journal à l'aide de la commande
docker logs CONTAINER_NAME --details
Je suggère d’imprimer le journal avant et après l’exécution de la commande create channel.