Cycle de vie des codes chaîne
Le cycle de vie des codes chaîne décrit le processus d'installation et de déploiement du code chaîne sur des pairs sur un canal.
Le cycle de vie des codes chaîne est basé sur les capacités de la plate-forme Hyperledger Fabric, qui permet la gouvernance décentralisée des codes chaîne. Plusieurs organisations peuvent s'accorder sur les paramètres de code chaîne, y compris la stratégie d'approbation des codes 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ées, ainsi que dans l'API REST. Pour plus d'informations sur le cycle de vie, reportez-vous à Cycle de vie des codes chaîne Fabric dans la documentation Hyperledger Fabric.
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 du code chaîne. Vous pouvez également utiliser l'API REST pour effectuer les opérations d'approbation et d'engagement séparément.
Packagez et installez un code chaîne
Lorsque vous installez un code chaîne dans Oracle Blockchain Platform, le code chaîne est packagé, installé et un ID de package est généré automatiquement. L'ID de package est affiché sur 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 répondre à la stratégie LifecycleEndorsement du canal. La stratégie LifecycleEndorsement par défaut d'Oracle Blockchain Platform permet à toute organisation d'approuver la définition de code chaîne (par opposition à la majorité des entreprises). La définition de 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 une valeur Package ID, qui n'a pas à être identique pour toutes les organisations.
Une fois la définition d'un code chaîne approuvée, une organisation peut collecter les soutiens des homologues des organisations approbatrices, puis valider la définition du 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 d'engagement sont toutes deux 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é dont la définition de code chaîne a été validée par une autre organisation, la définition de code chaîne est répertoriée comme validée mais non approuvée sur la page Codes chaîne déployés pour le canal. Vous pouvez utiliser le menu Actions supplémentaires pour approuver la définition de code chaîne et 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 installer |
Dans un scénario d'organisation multiple, 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 d'organisation multiple, une organisation qui n'approuve pas de définition de code chaîne ou qui approuve une définition de code chaîne différente ne peut pas exécuter le code chaîne sur ses pairs. Si d'autres organisations obtiennent suffisamment d'approbation 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'approbation 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 indiquer un autre ID de package lorsque vous approuvez une définition de code chaîne pour un canal comportant 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. |