Cycle de vie des codes chaîne
(Hyperledger Fabric v2.x) Le cycle de vie des codes chaîne décrit le processus d'installation du code chaîne sur les homologues et de déploiement sur un canal.
Le cycle de vie des codes chaîne est basé sur les fonctionnalités de la plate-forme Hyperledger Fabric v2.x, qui permet une gouvernance décentralisée des codes chaîne. Plusieurs organisations peuvent convenir des paramètres de code chaîne, y compris la stratégie d'approbation de code chaîne, avant qu'un code chaîne puisse interagir avec le registre. Ces fonctions sont implémentées dans les nouvelles options de déploiement rapide et avancée, ainsi que dans l'API REST. Pour plus d'informations sur le nouveau cycle de vie, reportez-vous à Cycle de vie des codes chaîne Fabric dans la documentation Hyperledger Fabric v2.2.4.
En règle générale, pour déployer un code chaîne installé, vous utilisez un déploiement rapide ou un déploiement avancé dans la console. Le processus de déploiement inclut le packaging et l'installation du code chaîne, ainsi que l'approbation et la validation de la définition de code chaîne. Vous pouvez également utiliser l'API REST pour effectuer les opérations d'approbation et d'engagement séparément.
Package et installation d'un code de chaîne
Lorsque vous installez le code chaîne dans Oracle Blockchain Platform, il est packagé, installé et un ID de package est généré automatiquement. L'ID de package est affiché dans l'onglet Chaincodes de la console.
Approuver une définition de code chaîne
Pour qu'un code chaîne puisse être déployé sur un canal, la définition de code chaîne doit être approuvée par suffisamment d'organisations pour satisfaire la stratégie LifecycleEndorsement du canal. La stratégie LifecycleEndorsement par défaut dans Oracle Blockchain Platform permet à toute organisation d'approuver la définition de code chaîne (par opposition à la majorité des organisations). La définition du code chaîne inclut les paramètres suivants, qui doivent être identiques pour toutes les organisations : Chaincode Name, Version, Sequence, Endorsement Policy, Private Data Collection et Init-required. Une définition de code chaîne peut également inclure un élément Package ID, qui ne doit pas nécessairement être identique pour toutes les organisations.
Une fois qu'une définition de code chaîne est approuvée, une organisation peut collecter les approbations des pairs des organisations approbatrices, puis valider la définition de code chaîne sur le canal.
Pour approuver une définition de code chaîne à l'aide de l'API REST, reportez-vous à Approbation d'une définition de code chaîne dans un canal.
Dans la console, lorsque vous utilisez un déploiement rapide ou un déploiement avancé, les étapes d'approbation et de validation sont tentées.
Valider une définition de code chaîne
Pour valider une définition de code chaîne approuvée à l'aide de l'API REST, reportez-vous à Validation d'une définition de code chaîne dans un canal.
Dans la console, vous pouvez voir les définitions de code chaîne approuvées mais non validées sur la page Codes chaîne déployés pour le canal. Vous pouvez utiliser le menu Actions supplémentaires pour valider le code chaîne approuvé.
Scénarios de cycle de vie des codes chaîne
Scenario | Description |
---|---|
Rejoindre un canal |
En général, dans la console, vous n'approuvez pas de définition de code chaîne sans la valider. Si vous rejoignez un canal partagé sur lequel une définition de code chaîne a été validée par une autre organisation, vous verrez la définition de code chaîne répertoriée comme validée mais non approuvée sur la page Codes chaîne déployés du canal. Vous pouvez utiliser le menu Actions supplémentaires pour approuver la définition de code chaîne et pour associer un ID de package. Vous n'avez pas besoin de valider à nouveau la définition du package. |
Mettre à jour une stratégie d'approbation |
Vous pouvez mettre à jour la stratégie d'approbation dans la définition de code chaîne sans réinstaller le code chaîne. Sur la page Codes chaîne déployés pour le canal, utilisez le menu Actions supplémentaires pour mettre à niveau la définition de code chaîne. Développez Stratégie d'approbation et indiquez une nouvelle stratégie, puis cliquez sur Mettre à niveau. |
Approuver une définition sans l'installer |
Dans un scénario multiorganisation, pour approuver une définition de code chaîne sans installer le package de code chaîne, ne spécifiez pas d'ID de package. Vous approuvez la définition du code chaîne qui est validé sur le canal, mais le code chaîne n'est pas installé sur les pairs de votre organisation. Vous ne pourrez pas utiliser le code chaîne pour approuver les transactions ou interroger le registre. |
Désaccord sur les définitions |
Dans un scénario multiorganisation, une organisation qui n'approuve pas de définition de code chaîne ou n'approuve pas une autre définition de code chaîne ne peut pas exécuter le code chaîne sur ses pairs. Si d'autres organisations obtiennent suffisamment d'endossements pour valider la définition sur le canal, elles peuvent utiliser le code chaîne. Les transactions sont toujours ajoutées au livre sur les pairs de toutes les organisations. Si les organisations ne sont pas d'accord sur une définition de code chaîne et qu'aucune organisation n'obtient suffisamment d'endossements pour valider la définition sur le canal, la définition ne peut pas être validée et le code chaîne ne peut donc pas être exécuté. |
Plusieurs organisations installent différents packages |
Vous pouvez spécifier un ID de package différent lorsque vous approuvez une définition de code chaîne pour un canal avec plusieurs organisations. Si le nom de définition et la stratégie d'approbation sont identiques, les membres du canal peuvent installer un code chaîne propre à leur organisation, mais qui lit et écrit les données dans le même espace de noms de code chaîne. |
Créer plusieurs codes chaîne à partir d'un même package |
De même, vous pouvez approuver et valider le même package de code chaîne plusieurs fois, en indiquant un nom différent pour chaque définition. Plusieurs instances du code chaîne sont exécutées sur le canal. Si vous indiquez également une stratégie d'approbation différente pour chaque définition, chaque instance de code chaîne est soumise à une stratégie d'approbation différente. |