Ciclo de Vida del Código de Cadena

(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 pares 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 códigos de cadenas. Varias organizaciones pueden acordar los parámetros del código de cadena, incluida la política de endoso del código de cadena, antes de que este pueda interactuar con el libro mayor. Estas funciones se implantan en las nuevas opciones de despliegue rápido y avanzado, así como en la API de REST. Para obtener más información sobre el nuevo ciclo de vida, consulte Ciclo de vida del código de cadena de Fabric en la documentación de Hyperledger Fabric v2.2.4.

Normalmente, para desplegar un código de cadena instalado, se utiliza un despliegue rápido o 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 cadenas en Oracle Blockchain Platform, el código de cadenas se empaqueta, se instala y se genera automáticamente un ID de paquete. El ID de paquete se muestra en el separador Chaincodes de la consola.

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

Para poder desplegar un código de cadenas en un canal, la definición del código de cadenas debe estar aprobada por suficientes organizaciones 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 del código de cadenas (en contraposición a la mayoría de las organizaciones). La definición del código de cadenas 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 cadenas también puede incluir Package ID, que no tiene que ser la misma para todas las organizaciones.

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

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

En la consola, al utilizar el despliegue rápido o avanzado, se intentan los pasos de aprobación y compromiso.

Confirmación de 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 las definiciones de código de cadenas que están aprobadas pero no confirmadas en la página Códigos de cadenas desplegados para el canal. Puede utilizar el menú Más acciones para confirmar el código de cadenas aprobado.

Escenarios de ciclo de vida de código de cadena

Escenario Descripción
Unirse a un canal

Normalmente, en la consola no se aprueba una definición de código de cadenas 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 para el canal. Puede utilizar el menú Más acciones para aprobar la definición del 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 aval 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. Debe aprobar la definición del código de cadenas que está confirmado en el canal, pero el código de cadenas no está instalado en iguales de su 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, 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 recibe suficientes avales para confirmar la definición en el canal, la definición no se puede confirmar y, por lo tanto, el código de cadenas no se puede ejecutar.

Varias organizaciones instalan diferentes paquetes

Puede especificar un ID de paquete diferente al aprobar una definición de código de cadenas 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 para 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 cadenas 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.