Ciclo de vida del código de cadena
El ciclo de vida del código de cadenas describe el proceso de instalación del código de cadenas en peers 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, que permite la gobernanza descentralizada de los códigos de cadenas. Varias organizaciones pueden acordar parámetros de código de cadena, incluida la política de endoso de código de cadena, antes de que un código de cadena 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 ciclo de vida, consulte Ciclo de vida del código de cadenas de Fabric en la documentación de Hyperledger Fabric.
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 cadena, así como la aprobación y confirmación de la definición del código de cadena. También puede usar la API de REST para completar las operaciones de aprobación y compromiso por separado.
Paquete e instalación de 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 automáticamente un ID de paquete. El ID de paquete se muestra en el separador Chaincodes de la consola.
Aprobar definición de código de cadena
Para que un código de cadena se pueda desplegar en un canal, la definición de código de cadena debe ser 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 cadena (en lugar de a 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 cadena, una organización puede recopilar avales de compañeros de las organizaciones aprobadoras y, a continuación, confirmar la definición de código de cadena 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 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 cadena que están aprobadas pero no confirmadas en la página Códigos de cadena desplegados del canal. Puede utilizar el menú Más acciones para confirmar el código de cadena 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 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 cadena, verá la definición de código de cadena como confirmada pero no aprobada en la página Códigos de Cadena Desplegados del canal. Puede utilizar el menú Más Acciones para aprobar la definición del código de cadena y también para asociar un ID de paquete. No es necesario volver a confirmar la definición del paquete. |
| Actualizar política de endoso |
Puede actualizar la política de endoso en la definición de código de cadena sin volver a instalar el código de cadena. En la página Códigos de Cadena Desplegados del canal, utilice el menú Más Acciones para actualizar la definición del código de cadena. 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 cadena sin instalar el paquete de código de cadena, no especifique un ID de paquete. Se aprueba la definición del código de cadena que se ha confirmado para el canal, pero el código de cadena no está instalado en pares de la organización. No podrá utilizar el código de cadena para aprobar transacciones ni consultar el libro mayor. |
| Desacuerdo sobre las definiciones |
En un escenario de varias organizaciones, una organización que no aprueba una definición de código de cadena o una definición de código de cadena diferente no puede ejecutar el código de cadena 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 pares de todas las organizaciones. Si las organizaciones no están de acuerdo en una definición de código de cadena 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, el código de cadena 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 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 cadenas a partir de un paquete |
Del mismo modo, puede aprobar y confirmar el mismo paquete de códigos 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. |