Ciclo de vida de código de cadenas

(Hyperledger Fabric v2.x) El ciclo de vida del código de cadenas describe el proceso de instalación del código de cadenas en iguales y su despliegue en un canal.

El ciclo de vida del código de cadenas se basa en las capacidades de la plataforma Hyperledger Fabric v2.x, que permite la gobernanza descentralizada de los códigos de cadenas. Varias organizaciones pueden ponerse de acuerdo sobre los parámetros del código de cadenas, incluida la política de endoso del código de cadenas, antes de que un código de cadenas pueda interactuar con el libro mayor. Estas funciones se implantan en las nuevas opciones de despliegue rápido y despliegue avanzado, así como en la API de REST. Para obtener más información sobre el nuevo ciclo de vida, consulte Ciclo de vida de Fabric chaincode en la documentación de Hyperledger Fabric v2.2.4.

Normalmente, para desplegar un código de cadenas instalado, se utiliza un despliegue rápido o un despliegue avanzado en la consola. El proceso de despliegue incluye el empaquetado y la instalación del código de cadenas, así como la aprobación y confirmación de la definición del código de cadenas. También puede utilizar la API de REST para completar las operaciones de aprobación y compromiso por separado.

Empaquetar e instalar un código de cadena

Al instalar el código de cadena en Oracle Blockchain Platform, el código de cadena se empaqueta, se instala y se genera un ID de paquete automáticamente. El ID de paquete se muestra en el separador Códigos de cadenas de la consola.

Aprobación de una definición de código de cadenas

Para poder desplegar un código de cadena en un canal, las organizaciones deben aprobar la definición del código de cadena para cumplir la política LifecycleEndorsement del canal. La política LifecycleEndorsement por defecto de Oracle Blockchain Platform permite a cualquier organización aprobar la definición de código de cadenas (en lugar de la mayoría de las organizaciones). La definición de código de cadena incluye los siguientes parámetros, que deben ser los mismos para todas las organizaciones: Chaincode Name, Version, Sequence, Endorsement Policy, Private Data Collection y Init-required. Una definición de código de cadena también puede incluir un Package ID, que no tiene que ser el mismo para todas las organizaciones.

Una vez aprobada una definición de código de cadenas, una organización puede recopilar avales de colegas de las organizaciones aprobadoras y, a continuación, confirmar la definición de código de cadenas en el canal.

Para aprobar una definición de código de cadena mediante la API de REST, consulte Aprobación de una definición de código de cadena en un canal.

En la consola, cuando se utiliza un despliegue rápido o un despliegue avanzado, se intentan los pasos de aprobación y compromiso.

Confirmar una Definición de Código de Cadena

Para confirmar una definición de código de cadena aprobada mediante la API de REST, consulte Confirmación de una definición de código de cadena en un canal.

En la consola, puede ver definiciones de código de cadenas aprobadas pero no confirmadas en la página Códigos de cadenas desplegados del canal. Puede utilizar el menú Más acciones para confirmar el código de cadena aprobado.

Escenarios del ciclo de vida de Chaincode

Escenario Descripción
Unirse a un canal

Normalmente, en la consola no se aprueba una definición de código de cadena sin confirmarla. Si se une a un canal compartido en el que otra organización ha confirmado una definición de código de cadenas, verá que la definición de código de cadenas aparece como confirmada pero no aprobada en la página Códigos de cadenas desplegados del canal. Puede utilizar el menú Más acciones para aprobar la definición de código de cadenas y también para asociar un ID de paquete. No es necesario volver a confirmar la definición del paquete.

Actualizar una política de endoso

Puede actualizar la política de endoso en la definición del código de cadenas sin volver a instalar el código de cadenas. En la página Códigos de cadenas desplegados del canal, utilice el menú Más acciones para actualizar la definición del código de cadenas. Amplíe Política de endoso y especifique una nueva política y, a continuación, haga clic en Actualizar.

Aprobar una definición sin instalar

En un escenario de varias organizaciones, para aprobar una definición de código de cadenas sin instalar el paquete de código de cadenas, no especifique un ID de paquete. Aprueba la definición del código de cadenas que está comprometido con el canal, pero el código de cadenas no está instalado en iguales de la organización. No podrá utilizar el código de cadenas para avalar transacciones ni consultar el libro mayor.

Desacuerdo sobre definiciones

En un escenario de varias organizaciones, una organización que no aprueba una definición de código de cadenas o aprueba una definición de código de cadenas diferente no puede ejecutar el código de cadenas en sus iguales. Si otras organizaciones obtienen suficientes avales para confirmar la definición en el canal, esas organizaciones pueden utilizar el código de cadenas. Las transacciones se siguen agregando al libro mayor en los iguales de todas las organizaciones.

Si las organizaciones no están de acuerdo en una definición de código de cadenas y ninguna organización obtiene suficientes avales para confirmar la definición en el canal, la definición no se puede confirmar y, por lo tanto, no se puede ejecutar el código de cadenas.

Varias organizaciones instalan paquetes diferentes

Puede especificar un ID de paquete diferente al aprobar una definición de código de cadena para un canal con varias organizaciones. Si el nombre de la definición y la política de endoso son iguales, los miembros del canal pueden instalar un código de cadena específico de su organización, pero que lee y escribe datos en el mismo espacio de nombres de código de cadena.

Crear varios códigos de cadena a partir de un paquete

Del mismo modo, puede aprobar y confirmar el mismo paquete de código de cadenas varias veces, especificando un nombre diferente para cada definición. Varias instancias del código de cadenas se ejecutan en el canal. Si también especifica una política de endoso diferente para cada definición, cada instancia de código de cadena está sujeta a una política de endoso diferente.