web-dev-qa-db-fra.com

la création de canaux homologues échoue dans Hyperledger Fabric

J'essaie de configurer un exemple d'environnement de tissu hyperledger avec un client et 2 pairs. Je n'utilise pas l'approche Docker mais j'exécute l'exécutable lui-même.

Le client et 2 nœuds homologues ont démarré avec succès. Cependant, la création du canal échoue avec l'erreur suivante. Toute aide serait grandement appréciée.

Erreur dans la fenêtre du donneur d'ordre

> 2017-08-17 07:28:22.338 IST [orderer/common/deliver] Handle -> WARN
> 029 Error reading from stream: rpc error: code = Canceled desc =
> context canceled 2017-08-17 07:31:08.044 IST [common/config/channel]
> CommitProposals -> WARN 02a Current configuration has no policy
> '/Channel/Application/Readers', this will likely cause problems in
> production systems 2017-08-17 07:31:08.050 IST [common/config/channel]
> CommitProposals -> WARN 02b Current configuration has no policy
> '/Channel/Application/Writers', this will likely cause problems in
> production systems 2017-08-17 07:31:08.050 IST [common/config/channel]
> CommitProposals -> WARN 02c Current configuration has no policy
> '/Channel/Application/Admins', this will likely cause problems in
> production systems 2017-08-17 07:31:08.051 IST [cauthdsl] func2 ->
> ERRO 02d Principal deserialization failure (The supplied identity is
> not valid, Verify() returned x509: certificate signed by unknown
> authority) for identity
> 0a07506565724f726712e7052d2d2d2d2d424547494e202d2d2d2d2d0a4d494943427a43434161326741774942416749514e303434797750356c6d6c3477613379723836355a6a414b42676771686b6a4f50515144416a426e4d5173770a435159445651514745774a56557a45544d4245474131554543424d4b5132467361575a76636d3570595445574d4251474131554542784d4e5532467549455a790a5957356a61584e6a627a45544d4245474131554543684d4b593246795a6d46344c6d4e76625445574d4251474131554541784d4e59324575593246795a6d46340a4c6d4e7662544165467730784e7a41344d5459784e7a41344e445261467730794e7a41344d5451784e7a41344e4452614d465578437a414a42674e56424159540a416c56544d524d77455159445651514945777044595778705a6d3979626d6c684d52597746415944565151484577315459573467526e4a68626d4e7063324e760a4d526b774677594456515144444242425a473170626b426a59584a6d59586775593239744d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a30440a4151634451674145743046756e6d577635336b6366417846785953784c44565164324d336b6d586345714b556c77507a6a444a544b626c4265317931376b39380a4c64384f2f57374c777a71394b374f563957394a3765367962736b44324b4e4e4d45737744675944565230504151482f42415144416765414d417747413155640a457745422f7751434d4141774b7759445652306a42435177496f4167445a62512f58784241523253396670326b64587a78546a666c35685055724958376635460a664d446d6b4f7377436759494b6f5a497a6a304541774944534141775251496841507a303051514962515769727a467962357978736a3168384d6a316a37482b0a333971735171445438387a684169426a6776705a777675764947456b6a624a75697663574b3172476f36416b314430362f7445527a59383538513d3d0a2d2d2d2d2d454e44202d2d2d2d2d0a
> 2017-08-17 07:31:08.052 IST [orderer/common/broadcast] Handle -> WARN
> 02e [channel: testing] Rejecting broadcast of config message because
> of error: Error authorizing update: Error validating DeltaSet: Policy
> for [Groups] /Channel/Application not satisfied: Failed to reach
> implicit threshold of 1 sub-policies, required 1 remaining 2017-08-17
> 07:31:08.063 IST [orderer/common/deliver] Handle -> WARN 02f Error
> reading from stream: rpc error: code = Canceled desc = context
> canceled

Valeur de ORDERER_TLS

ORDERER_TLS = "- c’est vrai - cafile /opt/gopath/src/github.com/hyperledger/fabric/sampleconfig/tls/ca.crt"

Erreur lors de la création du canal

node1@ubuntu:/opt/gopath/src/github.com/hyperledger/fabric/build/bin$ peer channel create $ORDERER_TLS -f /home/node1/Downloads/fabricDeployment-master/testing.tx -c testing -o node1.honda.com:7050 --logging-level DEBUG  -v
2017-08-17 07:28:21.953 IST [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2017-08-17 07:28:21.953 IST [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2017-08-17 07:28:21.996 IST [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized
2017-08-17 07:28:22.014 IST [msp] GetLocalMSP -> DEBU 004 Returning existing local MSP
2017-08-17 07:28:22.019 IST [msp] GetDefaultSigningIdentity -> DEBU 005 Obtaining default signing identity
2017-08-17 07:28:22.019 IST [msp] GetLocalMSP -> DEBU 006 Returning existing local MSP
2017-08-17 07:28:22.019 IST [msp] GetDefaultSigningIdentity -> DEBU 007 Obtaining default signing identity
2017-08-17 07:28:22.019 IST [msp/identity] Sign -> DEBU 008 Sign: plaintext: 0AF3050A07506565724F726712E7052D...69636174696F6E2F41646D696E731801 
2017-08-17 07:28:22.019 IST [msp/identity] Sign -> DEBU 009 Sign: digest: 63EBD4B3B350685B39A0C8E8E216EFCB3D4C3C82F74B6FA2638D2A7974EB1E74 
2017-08-17 07:28:22.020 IST [msp] GetLocalMSP -> DEBU 00a Returning existing local MSP
2017-08-17 07:28:22.020 IST [msp] GetDefaultSigningIdentity -> DEBU 00b Obtaining default signing identity
2017-08-17 07:28:22.020 IST [msp] GetLocalMSP -> DEBU 00c Returning existing local MSP
2017-08-17 07:28:22.020 IST [msp] GetDefaultSigningIdentity -> DEBU 00d Obtaining default signing identity
2017-08-17 07:28:22.020 IST [msp/identity] Sign -> DEBU 00e Sign: plaintext: 0AA6060A1108021A0608BEF0D3CC0522...1A843140B4B661FA8CBCB3170133AC2B 
2017-08-17 07:28:22.020 IST [msp/identity] Sign -> DEBU 00f Sign: digest: EB039E58FB665150B556394FD464155BBB349CEBB591A578DE402789465EDA84 
Error: Got unexpected status: BAD_REQUEST -- Error authorizing update: Error validating DeltaSet: Policy for [Groups] /Channel/Application not satisfied: Failed to reach implicit threshold of 1 sub-policies, required 1 remaining
Usage:
  peer channel create [flags]

Flags:
  -c, --channelID string   In case of a newChain command, the channel ID to create.
  -f, --file string        Configuration transaction file generated by a tool such as configtxgen for submitting to orderer
  -t, --timeout int        Channel creation timeout (default 5)

Global Flags:
      --cafile string                       Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
      --logging-level string                Default logging level and overrides, see core.yaml for full syntax
  -o, --orderer string                      Ordering service endpoint
      --ordererTLSHostnameOverride string   The hostname override to use when validating the TLS connection to the orderer.
      --test.coverprofile string            Done (default "coverage.cov")
      --tls                                 Use TLS when communicating with the orderer endpoint
  -v, --version                             Display current version of fabric peer server

Modifier le début

Merci pour votre réponse, Yacovm. Je suis toujours confronté au même problème. En fait, j’utilise votre code github pour essayer cet exemple. Le script était génial et facile à comprendre

Permettez-moi de faire un bref exposé sur la configuration actuelle que j'ai. 

Environnement 3 nœuds en cours d'exécution - Ubuntu 16

> **Node1 Details** Hostname : node1 Domain name : honda.com User1 : node1 User2 : Admin
> 
> **Node2 Details** Hostname : node2 Domain name : carfax.com User1 : node2 User2 : Admin
> 
> **Node3 Details** Hostname : node3 Domain name : carfax.com User1 : node3 User2 : Admin

Étape 1: Téléchargé la source Fabric dans les 3 machines et lance «make» - Tout a été un succès 

La source est présente dans le chemin suivant: /opt/gopath/src/github.com/hyperledger/fabric

Étape 2 :

Téléchargeable fabricDeployment-master/home/node1/Téléchargements/fabricDeployment-master sur la machine node1 À partir de la machine node1,

[[ -z $GOPATH ]] && (echo "Environment variable GOPATH isn't set!"; exit 1)
FABRIC=$GOPATH/src/github.com/hyperledger/fabric
[[ -d "$FABRIC" ]] || (echo "Directory $FABRIC doesn't exist!"; exit 1)
for file in configtxgen peer cryptogen; do
    [[ -f $file ]] && continue
    binary=$FABRIC/build/bin/$file
    [[ ! -f $binary ]] && ( cd $FABRIC ; make $file)
    cp $binary $file && continue
done

for file in configtxgen peer cryptogen; do
    [[ ! -f $file ]] && echo "$file isn't found, aborting!" && exit 1
done

. config.sh

bootPeer=$(echo ${peers} | awk '{print $1}')
anchorPeer=$(echo ${peers} | awk '{print $1}')
PROPAGATEPEERNUM=${PROPAGATEPEERNUM:-3}
i=0
for p in $orderer $peers ; do

        echo "Making Directory structure for $p"
        mkdir -p $p/sampleconfig/crypto
        mkdir -p $p/sampleconfig/tls
        ip=$(getIP $p)
        echo "${p}'s ip address is ${ip}"
        orgLeader=false
        bootstrap=$anchorPeer:7051
        if [[ $i -eq 1 ]];then
                orgLeader=true
        fi
        (( i += 1 ))
        echo "Creating core.yaml from core.yaml.template for $p"
        cat core.yaml.template | sed "s/PROPAGATEPEERNUM/${PROPAGATEPEERNUM}/ ; s/PEERID/$p/ ; s/ADDRESS/$p/ ; s/ORGLEADER/$orgLeader/ ; s/BOOTSTRAP/$bootPeer:7051/ ; s/TLS_CERT/$p.carfax.com-cert.pem/" > $p/sampleconfig/core.yaml
done

        echo "Creating configtx.yaml from configtx.yaml.template with ANCHOR_PEER_IP & ORDERER_IP"

cat configtx.yaml.template | sed "s/ANCHOR_PEER_IP/$anchorpeer/ ; s/ORDERER_IP/$orderer/" > configtx.yaml


        echo "Creating crypto-config.yml from crypto-config.yml.template with ORDERER_IP and adding hostname node2 & node3"


cat crypto-config.yml.template | sed "s/ORDERER_IP/$orderer/" > crypto-config.yml
for p in $peers ; do
    echo "        - Hostname: $p" >> crypto-config.yml
done
cat << EOF >> crypto-config.yml
    Users:
      Count: 1
EOF

./cryptogen generate --config crypto-config.yml
./configtxgen -profile Genesis -outputBlock genesis.block  -channelID system
./configtxgen -profile Channels -outputCreateChannelTx yacov.tx -channelID yacov
./configtxgen -profile Channels -outputAnchorPeersUpdate OrdererOrganchors.tx -channelID yacov -asOrg PeerOrg

mv genesis.block node1/sampleconfig/
cp orderer.yaml node1/sampleconfig/
cp -r crypto-config/ordererOrganizations/honda.com/orderers/node1.honda.com/msp/* node1/sampleconfig/crypto
cp -r crypto-config/ordererOrganizations/honda.com/orderers/node1.honda.com/tls/* node1/sampleconfig/tls

cp -r crypto-config/peerOrganizations/carfax.com/peers/node2.carfax.com/msp/* node2/sampleconfig/crypto
cp -r crypto-config/peerOrganizations/carfax.com/peers/node2.carfax.com/tls/* node2/sampleconfig/tls/

cp -r crypto-config/peerOrganizations/carfax.com/peers/node3.carfax.com/msp/* node3/sampleconfig/crypto
cp -r crypto-config/peerOrganizations/carfax.com/peers/node3.carfax.com/tls/* node3/sampleconfig/tls/

echo "Deploying configuration - Moving configurations to respective machines"
scp -r node1/sampleconfig/* node1@node1:/opt/gopath/src/github.com/hyperledger/fabric/sampleconfig/
scp -r node2/sampleconfig/* node2@node2:/opt/gopath/src/github.com/hyperledger/fabric/sampleconfig/
scp -r node3/sampleconfig/* node3@node3:/opt/gopath/src/github.com/hyperledger/fabric/sampleconfig/

Étape 3 :

Résultat crypto-config.yaml

OrdererOrgs:
  - Name: Org0
    Domain: honda.com
PeerOrgs:
  - Name: Org1
    Domain: carfax.com
        - Hostname: node2
        - Hostname: node3
    Users:
      Count: 1

Resulting crypto-config.yaml
Profiles:
    Genesis:
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
        Consortiums:
             SampleConsortium:
                Organizations:
                - *PeerOrg
    Channels:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *PeerOrg
Organizations:
    - &OrdererOrg
        Name: OrdererOrg
        ID: OrdererOrg
        MSPDir: crypto-config/ordererOrganizations/honda.com/msp
        AdminPrincipal: Role.ADMIN
    - &PeerOrg
        Name: PeerOrg
        ID: PeerOrg
        MSPDir: crypto-config/peerOrganizations/carfax.com/msp
        AdminPrincipal: Role.ADMIN

        AnchorPeers:
            - Host: node2
              Port: 7051

Orderer: &OrdererDefaults

    OrdererType: solo
    Addresses:
        - node1:7050
    BatchTimeout: 1ms
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB

    MaxChannels: 0

    Kafka:
        Brokers:
            - 127.0.0.1:9092

    Organizations:

Application: &ApplicationDefault

s

Étape 4: Démarrage du client à partir du nœud 1 en tant qu'utilisateur du nœud 1 Démarrage de peer1 à partir du nœud 2 en tant qu'utilisateur du nœud2.

Jusque là les choses marchent bien

Étape 5: Création d'un canal

De noeud1 en tant qu'utilisateur noeud1, en exécutant les commandes suivantes

node1 @ ubuntu: ~/Téléchargements/fabricDeployment-master $ pwd

/home/node1/Downloads/fabricDeployment-master

export FABRIC=$GOPATH/src/github.com/hyperledger/fabric
export ORDERER_TLS="--tls true --cafile `pwd`/crypto-config/ordererOrganizations/honda.com/orderers/node1.honda.com/tls/ca.crt"
export CORE_PEER_TLS_ROOTCERT_FILE=`pwd`/crypto-config/peerOrganizations/carfax.com/peers/node2.carfax.com/tls/ca.crt
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_MSPCONFIGPATH=`pwd`/crypto-config/peerOrganizations/carfax.com/users/[email protected]/msp 
export CORE_PEER_LOCALMSPID=PeerOrg 
/opt/gopath/src/github.com/hyperledger/fabric/build/bin/peer channel create $ORDERER_TLS -f yacov.tx  -c yacov -o node1:7050

Contenu de configtx.yaml

---
Profiles:

    Genesis:
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
        Consortiums:
             SampleConsortium:
                Organizations:
                - *PeerOrg
    Channels:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *PeerOrg

Organizations:

    - &OrdererOrg
        Name: OrdererOrg

        ID: OrdererOrg

        MSPDir: crypto-config/ordererOrganizations/honda.com/msp

        AdminPrincipal: Role.ADMIN


    - &PeerOrg
        Name: PeerOrg

        ID: PeerOrg

        MSPDir: crypto-config/peerOrganizations/carfax.com/msp

        AdminPrincipal: Role.ADMIN


        AnchorPeers:
            - Host: 
              Port: 7051


Orderer: &OrdererDefaults

    OrdererType: solo

    Addresses:
        - node1:7050

    BatchTimeout: 1ms

    BatchSize:

        MaxMessageCount: 10

        AbsoluteMaxBytes: 99 MB

        PreferredMaxBytes: 512 KB

    MaxChannels: 0

    Kafka:
        Brokers:
            - 127.0.0.1:9092

    Organizations:

Application: &ApplicationDefaults

    Organizations:

Sortie des instructions en ligne de commande lors de l'exécution de Genesis Block

2017-08-18 16:50:37.015 IST [common/tools/configtxgen] main -> INFO 001 Loading configuration

2017-08-18 16: 50: 37.175 IST [common/tools/configtxgen] doOutputBlock -> INFO 002 Génération d'un bloc de genèse 2017-08-18 16: 50: 37.179 IST [common/tools/configtxgen] doOutputBlock -> INFO 003 Bloc de genèse d'écriture

Sortie du bloc Genesis

 <1.{��������G<&�����n��ix*s!�0
�0
�0
t
����"system*@d6a8b389f09cd34562dda9af564c11bd28fed0ae9c42070f11a56c678b19e704h�N�b����S���>%��_bٮ�/
�/�/�

Consortiums��
SampleConsortium��
PeerOrg��
MSP���
PeerOrg�-----BEGIN CERTIFICATE-----
MIICKzCCAdGgAwIBAgIQCxUbHYlT+2GRvjnArG6gZjAKBggqhkjOPQQDAjBnMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzETMBEGA1UEChMKY2FyZmF4LmNvbTEWMBQGA1UEAxMNY2EuY2FyZmF4
LmNvbTAeFw0xNzA4MTgxMTIwMzZaFw0yNzA4MTYxMTIwMzZaMGcxCzAJBgNVBAYT
AlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv
MRMwEQYDVQQKEwpjYXJmYXguY29tMRYwFAYDVQQDEw1jYS5jYXJmYXguY29tMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUufxUYHLgvaxfm6AObKj60v4dIwd0/gT
Xd17VLEWlUpNR63se9yjzIbKzBw2rxje+9GalDDOaNJzFG+XXNz6wKNfMF0wDgYD
VR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zAp
BgNVHQ4EIgQgEk7d6Qvvq5FBNjXfHh0Fa4MjzHXcsIKg0+B+vdZT6D8wCgYIKoZI
zj0EAwIDSAAwRQIhAI7atq+JHSmzBwZ034y6u54+uBPe+S9qyqrTVDQ9a6RoAiBG
n8WRFVKobSeMJR6igf78tAjWVuSdEhhBJV2rGKmD1Q==
-----END CERTIFICATE-----
"�-----BEGIN CERTIFICATE-----
MIICBzCCAa2gAwIBAgIQfWg0mgPDxGOBJpfWRqJ3tzAKBggqhkjOPQQDAjBnMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzETMBEGA1UEChMKY2FyZmF4LmNvbTEWMBQGA1UEAxMNY2EuY2FyZmF4
LmNvbTAeFw0xNzA4MTgxMTIwMzZaFw0yNzA4MTYxMTIwMzZaMFUxCzAJBgNVBAYT
AlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv
MRkwFwYDVQQDDBBBZG1pbkBjYXJmYXguY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEWmAAX6Xj0/H7a5S6K5lA7u1pQLYZ/6iTTLn2E1JTWTd0jI5sh0zcL9qf
dkfIk/8G0u6rLUA8WDv0EZqvi8Mt8KNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1Ud
EwEB/wQCMAAwKwYDVR0jBCQwIoAgEk7d6Qvvq5FBNjXfHh0Fa4MjzHXcsIKg0+B+
vdZT6D8wCgYIKoZIzj0EAwIDSAAwRQIhAI3IKnk6Rxw3s78GuTpwiVjObwR1ylOo
juILM99AMMFrAiAUx31MEvAZaw89QQ8KirZzl/JnCERoQ0kz8ov3jiFJzA==
-----END CERTIFICATE-----
B
SHA2SHA256J�-----BEGIN CERTIFICATE-----
MIICMDCCAdegAwIBAgIQbuC39Z6/ccEP3hMMe5cGSjAKBggqhkjOPQQDAjBqMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzETMBEGA1UEChMKY2FyZmF4LmNvbTEZMBcGA1UEAxMQdGxzY2EuY2Fy
ZmF4LmNvbTAeFw0xNzA4MTgxMTIwMzZaFw0yNzA4MTYxMTIwMzZaMGoxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
c2NvMRMwEQYDVQQKEwpjYXJmYXguY29tMRkwFwYDVQQDExB0bHNjYS5jYXJmYXgu
Y29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2oEQ9GicVdKYvI9pHj3iWb4P
rjT7VO8weBDbDe0/MfxwhDsXe5uReASpL2YcbUYb1nCc/n9z/qvq23LXzPusaKNf
MF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUw
AwEB/zApBgNVHQ4EIgQg/o+D3yG/Yzjm3Ka2AcI8VU63RSvF8aHIvnD10/EQtZgw
CgYIKoZIzj0EAwIDRwAwRAIgXM/MWiZFfRQdAy1ybRHV8/A2IO8Xu6+aIKcSK5kF
mXgCIBFDIzDA0DjeO0O3F7dBEf3nbiSvCQgIBQQbjGKm15+D
-----END CERTIFICATE-----
Admins"1
Admins'

PeerOrgAdmins"0
Readers%

PeerOrgAdmins"0
Writers%

PeerOrgAdmins*Admins@
ChannelCreationPolicy'

Admins/Channel/Orderer/Admins*/Channel/Orderer/Admins"
AdminsAdmins*/Channel/Orderer/Admins�
Orderer��

OrdererOrg��
MSP���

OrdererOrg�-----BEGIN CERTIFICATE-----
MIICJzCCAc6gAwIBAgIRAIMBXTi8vzqOVhQiXB+ovQMwCgYIKoZIzj0EAwIwZTEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xEjAQBgNVBAoTCWhvbmRhLmNvbTEVMBMGA1UEAxMMY2EuaG9uZGEu
Y29tMB4XDTE3MDgxODExMjAzNloXDTI3MDgxNjExMjAzNlowZTELMAkGA1UEBhMC
VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28x
EjAQBgNVBAoTCWhvbmRhLmNvbTEVMBMGA1UEAxMMY2EuaG9uZGEuY29tMFkwEwYH
KoZIzj0CAQYIKoZIzj0DAQcDQgAEm3VY12jlinzimYav4K39anZGIyd7DrygL7fV
b57S7tpvwTXWfGNt58tDBf584w1Bw7Yr6M3unJjWfNj7VaLwd6NfMF0wDgYDVR0P
AQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNV
HQ4EIgQgMfMrGCUNqJqCehc2xsAYVyWqVTV3jYDcnmkyBhtFSGcwCgYIKoZIzj0E
AwIDRwAwRAIgMrdpDfMnULyS2dMtjfdWGAXPxDj4URM0nelcSjOpmAoCIB24mFvn
C34fP8icL0QVIOf+mPin2jD4HgsDP58dDFtu
-----END CERTIFICATE-----
"�-----BEGIN CERTIFICATE-----
MIICBDCCAaqgAwIBAgIQOHnvuaxK4NLP1+Qb7OIm+DAKBggqhkjOPQQDAjBlMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzESMBAGA1UEChMJaG9uZGEuY29tMRUwEwYDVQQDEwxjYS5ob25kYS5j
b20wHhcNMTcwODE4MTEyMDM2WhcNMjcwODE2MTEyMDM2WjBUMQswCQYDVQQGEwJV
UzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEY
MBYGA1UEAwwPQWRtaW5AaG9uZGEuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEUe6whrR0aqrwMJ+kKZaAetMAYmBON4S9yu0VPaGDuaEmQufj6guOFP6eQ+6A
LPRa1LaDEWAO0sPg9xtSc2P0MaNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB
/wQCMAAwKwYDVR0jBCQwIoAgMfMrGCUNqJqCehc2xsAYVyWqVTV3jYDcnmkyBhtF
SGcwCgYIKoZIzj0EAwIDSAAwRQIhAMS9lF1z1wyp90zW2rgrIz7m0iX/hCUyR15N
kSPTuzTQAiB6HWU0nabnzQHOcWwalz4WoCeIJRA6kjpQoP7yq7JmrQ==
-----END CERTIFICATE-----
B
SHA2SHA256J�-----BEGIN CERTIFICATE-----
MIICLjCCAdSgAwIBAgIRAP+2jzBK3BFU8vDd0QvneV4wCgYIKoZIzj0EAwIwaDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xEjAQBgNVBAoTCWhvbmRhLmNvbTEYMBYGA1UEAxMPdGxzY2EuaG9u
ZGEuY29tMB4XDTE3MDgxODExMjAzNloXDTI3MDgxNjExMjAzNlowaDELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xEjAQBgNVBAoTCWhvbmRhLmNvbTEYMBYGA1UEAxMPdGxzY2EuaG9uZGEuY29t
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3vaA4FhLDOMH7h39Ih2ivixOlg+n
OI7+mF0GQrG8f2qop4gSaZQwtVIj5MpzTBcKqaa0l0k8FDdlobDtJ94QVKNfMF0w
DgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB
/zApBgNVHQ4EIgQgxL6aI6nufoznFDDukcIWHhrAYIrNu7tNFYfHsoxgX0IwCgYI
KoZIzj0EAwIDSAAwRQIhAJ5fLjps0Fq0r0l0Vfi1/35TMYgo9/6rNRkjnCZ3xPEV
AiAVbQba7Pg9s8Ej6ok2zta1biohj5+k/flDM5KXM1NfOg==
-----END CERTIFICATE-----
Admins"4
Admins*

OrdererOrgAdmins"3
Readers(


OrdererOrgAdmins"3
Writers(


OrdererOrgAdmins*Admins!
ConsensusType
soloAdmins"
    BatchSize

���1�� Admins

BatchTimeout
1msAdmins
ChannelRestrictionsAdmins"*
ockValidation
WritersAdmins""
aders
ReadersAdmins""
iters
WritersAdmins""
Admins

AdminsAdmins*Admins&
HashingAlgorithm
SHA256Admins-
BlockDataHashingStructure����Admins;
OrdererAddresses'


node1:7050/Channel/Orderer/Admins""
aders
ReadersAdmins""
iters
WritersAdmins""
Admins

AdminsAdmins*Admins
14
sun

Erreur: Statut inattendu: BAD_REQUEST - Erreur lors de l'autorisation de la mise à jour: Erreur lors de la validation de DeltaSet: Stratégie pour [Groupes]/Canal/Application non satisfaite: Impossible d'atteindre le seuil implicite de 1 sous-stratégie, nécessaire 1 restante.

Ceci habituellement indique que le signataire de la transaction de création de canal ne dispose pas des droits d’administrateur pour l’une des organisations du consortium, mais peut indiquer un échec pour plusieurs autres raisons.

Malheureusement, l'erreur doit être quelque peu cryptique, afin d'éviter toute fuite d'informations sur l'appartenance à un consortium ou à un canal. Pour connaître la cause sous-jacente, vous devez consulter les journaux du client. Si ce n'est pas déjà fait, vous voudrez que le niveau de journalisation atteigne debug dans orderer.yaml ou alternativement en définissant ORDERER_GENERAL_LOGLEVEL=debug avant de démarrer le module de commande. Dans les journaux de votre client, vous verrez le même texte d'erreur que celui généré par le client homologue, mais dans les lignes précédentes, vous verrez des causes supplémentaires de votre erreur.

Les raisons les plus courantes sont:

  1. L'identité n'est pas dans la liste des administrateurs pour l'org.
  2. Le certificat de l'identité n'est pas valablement signé par la chaîne de l'autorité de certification de l'organisation.
  3. L'organisation de l'identité n'est pas connue du donneur d'ordre.

Certaines autres possibilités improbables, car vous utilisez le fichier binaire homologue et non le code personnalisé:

  1. La signature ne correspond pas à l'identité ou aux octets signés.
  2. L'identité est mal formée.

En supposant que la cause ne soit pas évidente à partir des journaux du client, si vous les publiez ici, je serais ravi de vous aider à les diagnostiquer.

Oh, et comme un conseil utile. Vous pouvez voir une version plus lisible de votre genesisblock en utilisant configtxgen -inspectBlock <genesis.block>.

Edit: En regardant en haut de votre message, je vois cette sortie dans le journal du client:

ERRO 02d Echec de la désérialisation du principal (l'identité fournie est Non valide, Verify () a renvoyé x509: certificat signé par une autorité inconnue ) Pour l'identité.

Cela indiquerait que le certificat prétend être émis par une autorité de certification, mais n'est pas signé par l'autorité de certification que le client connaît (type d'erreur 2 ci-dessus). Cela se produit généralement si vous démarrez le client, puis régénérez le matériel de chiffrement de votre environnement sans supprimer le répertoire de stockage du client.

Il est important de se rappeler que le ORDERER_GENERAL_GENESISFILE n'est lu que si le système n'est pas encore amorcé. Par conséquent, la modification du bloc de genèse pour le donneur d'ordre n'aura aucun effet, à moins que la mémoire de ce dernier ne soit également supprimée.

14
Jason Yellick

Cela n’a rien à voir avec TLS, puisque la demande est parvenue au client ..__ s’il s’agissait d’un problème TLS - vous n’auriez pas eu l’erreur suivante:

Erreur: Vous avez un statut inattendu: BAD_REQUEST - Erreur lors de l’autorisation de la mise à jour: Erreur de validation de DeltaSet: politique pour [Groupes]/Canal/Application non satisfait: impossible d'atteindre le seuil implicite de 1 sous-stratégies, nécessaire 1 restant

Désormais, l'erreur signifie essentiellement que vous avez essayé d'envoyer une transaction pour la création de canal, mais que la transaction a été signée par un utilisateur (un certificat client) qui n'est pas un administrateur de canal.

Vous devez préfixer la commande avec quelque chose de similaire à this :

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp
7
yacovm

La solution ci-dessous a fonctionné pour moi.

Entrez dans votre conteneur de docker homologue. Allez à /etc/hyperledger/msp/users/[email protected]/msp et lancez export CORE_PEER_MSPCONFIGPATH=$PWD

Exécutez à nouveau votre commande peer channel create avec les indicateurs appropriés.

1
Kartik Chauhan

Dans mon cas, la seule chose qui manquait était de définir le CORE_PEER_MSPCONFIGPATH correctement ... en utilisant la structure 1.1 J'espère que cela aidera les autres.

0
Guillaume Cisco

dans mon cas, il manquait quelques entrées dans le fichier docker-compos pour le client:

ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt] a été changé en ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt, /etc/hyperledger/crypto/peerORG1/tls/ca.crt, /etc/hyperledger/crypto/peerORG2/tls/ca.crt, /etc/hyperledger/crypto/peerORG3/tls/ca.crt] et ensuite cela a fonctionné.

c'est donc quelque chose que vous voudrez peut-être vérifier, surtout si vous avez une configuration personnalisée.

0
nagu