Comment puis-je résoudre l'erreur « Inadéquation des empreintes digitales des codes en chaîne : incompatibilité des données » dans Managed Blockchain ?

Dernière mise à jour : 12/11/2020

Comment puis-je résoudre l'erreur « Inadéquation des empreintes digitales des codes en chaîne : incompatibilité des données » dans Amazon Managed Blockchain ?

Brève description

« Incompatibilité des empreintes digitales des codes en chaîne : incompatibilité des données » est une erreur du côté du client. Cette erreur se produit lorsque l'ID d'empreinte digitale de code en chaîne d'un nœud de pairs ne correspond pas à l'empreinte digitale sur les autres nœuds de pairs. Cela se produit généralement lorsqu'un ou plusieurs pairs d'un canal utilisent une version ou un chemin de code en chaîne différent. Pour résoudre l'erreur, corrigez le chemin d'accès ou réinstallez le code en chaîne sur tous les nœuds de pairs.

Résolution

1.    Exécutez la commande suivante sur chaque nœud de pairs du canal :

docker exec cli peer chaincode list --installed

2.    Dans la sortie, notez le champ « Id ». Il s'agit de l'empreinte digitale des codes en chaîne. Exemple :

Name: myjointcc, Version: v3, Path: github.com/chaincode_example02/go, Id: af4a7734dac943a9b3183d339a848eeea8220d8647cefabccfbe89b3a4d23cbc

3.    Comparez les ID de tous les nœuds de pairs du canal. Si un nœud a une empreinte différente, vérifiez le chemin du code en chaîne pour vous assurer que le nœud utilise le chemin correct. Si le chemin du code en chaîne est correct, passez à l'étape suivante.

4.    Réinstallez le code en chaîne sur tous les nœuds de pairs du canal. Assurez-vous d'utiliser la même version de code en chaîne pour chaque nœud de pairs. Exemple :

docker exec cli peer chaincode install -n myjointcc -v v4 -p github.com/chaincode_example02/go

5.    Instanciez le code en chaîne sur chaque nœud de pairs du canal. Si votre réseau contient plusieurs membres, veillez à instancier la même version de code en chaîne installée sur les autres nœuds de pairs. Dans l'exemple de commande suivant, remplacez Member1ID et Member2ID par vos ID de membre.

docker exec cli peer chaincode upgrade -o $ORDERER -C ourchanneltest -n myjointcc -v v4 -c '{"Args":["init","a","100","b","200"]}' --cafile /opt/home/managedblockchain-tls-chain.pem --tls -P "AND ('
    Member1ID.member','Member2ID.member')"

Remarque : il existe un problème connu dans Hyperledger Fabric 1.x qui peut toujours provoquer l'erreur « Incompatibilité des empreintes digitale des codes en chaîne », même à la fin de ces étapes. Pour plus d'informations, reportez-vous à la section Same chaincode source receiving fingerprint mismatch error sur le site Web Hyperledger. Pour résoudre ce problème, créez un package du code en chaîne avec l'interface de ligne de commande Hyperledger Fabric. Ensuite, installez le même package sur tous les nœuds au lieu d'utiliser plusieurs clients pour installer le code en chaîne séparément. Pour plus d'informations, consultez l'exemple Créer un code en chaîne dans l'atelier AWS Blockchain relatif au suivi et à la traçabilité.</p


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?