Instalación, configuración e implementación de la solución

Para implementar esta solución, hay tres áreas principales en las que trabajar, como se describe en la siguiente sección.

  1. Preparación de la infraestructura de blockchain.
  2. Desarrollo y despliegue del contrato inteligente.
  3. Creación de la(s) aplicación(s) que hará uso de nuestro contrato inteligente.


oracle-blockchain-cms-plan-oracle.zip

Cree una red de Hyperledger Fabric, que inicialmente estará compuesta por una sola organización, pero se puede escalar fácilmente a tantos miembros como necesite.

Luego, procederemos a crear el contrato inteligente para manejar la lógica necesaria para persistir y administrar en blockchain las entidades requeridas por nuestro caso de uso comercial.

Una vez creado el proyecto de contrato inteligente, lo instalaremos y desplegaremos en la red blockchain que creamos antes, luego configuraremos las cuentas, inscripciones y finalmente ejecutaremos la inicialización del contrato inteligente y sus NFT.

En este punto, los métodos de contrato inteligente ya se han publicado a través de API Gateway de nuestra instancia de Oracle Blockchain, también conocida como RESTPROXY, por lo que están listos para ser utilizados por las aplicaciones cliente, en nuestro caso la aplicación web que ya hemos creado con VBCS, y proporcionaremos en la última sección.

Junto al último paso está la creación del cubo de almacenamiento de OCI donde se almacenarán los documentos y, por último, la reconfiguración de la aplicación de ejemplo de VBCS para apuntar a nuestra red de blockchain recién creada y al nuevo cubo configurado en nuestro arrendamiento. Una vez realizada toda la reconfiguración, la aplicación se desplegará en nuestro arrendamiento.

Creación de una red de Oracle Blockchain

Para la creación de una red de Hyperledger Fabric (HLF) basada en Oracle Blockchain, estamos utilizando Oracle Blockchain Cloud Service.

Vamos a crear una red HLF de instancia única, según el caso de uso, podemos mostrar la funcionalidad dentro de una sola organización que pertenece a la red. Las nuevas organizaciones pueden unirse a la red incorporando su propia instancia de Blockchain, lo que permite a los nuevos usuarios de estas organizaciones poseer sus carpetas o revisar el contenido de las carpetas existentes propiedad de otros miembros.

Creación de la instancia de fundador

  1. En el menú Servicios de OCI, seleccione Servicios para desarrolladores y haga clic en Blockchain Platform.
  2. En el selector de combinación de compartimentos ubicado en la parte izquierda de la consola de OCI, asegúrese de que el compartimento en el que desea crear la instancia está seleccionado.
  3. Haga clic en Crear plataforma de blockchain.
  4. Asigne a la plataforma un Nombre mostrado (por ejemplo, org1), agregue opcionalmente una Descripción y mantenga las selecciones por defecto restantes, ya que son la configuración para crear una instancia de Founder. que será el fundador de una nueva red de Hyperledger Fabric y utilizará la unidad estándar, que tiene exactamente la misma funcionalidad que la unidad Enterprise, pero a un costo menor, pero válida para el trabajo de desarrollo. Haga clic en Create.
    La creación de la instancia para esta organización (org1) se ha enviado y estará lista en unos minutos.
Cuando se cree la instancia del fundador, podrá acceder a la consola de Oracle Blockchain para esta instancia haciendo clic en Consola de servicio.

Creación de Canal

Necesitamos unirnos a las organizaciones a nivel de canal para permitir la comunicación entre el fundador y el participante. Esta acción se ejecutará mediante la consola de servicio de blockchain.

  1. En la consola de servicio Blockchain de la instancia de fundador (org1), seleccione el separador Canales y haga clic en Crear un nuevo canal.
  2. Complete los campos requeridos.
    • Defina wedocms como nombre de canal o cualquier nombre según sus preferencias.
    • Seleccione las opciones (peer0 y peer1) para la sección Peers to Join Channel.
  3. Confirme la creación haciendo clic en en la ventana emergente de confirmación.
    Compruebe que la tabla de canales muestra el nuevo canal. Haga clic en el nombre del canal (wedocms) para ver los detalles del canal. Puede ver todos los detalles sobre el canal, como las transacciones guardadas en los bloques del libro mayor, los códigos de cadenas desplegados en el canal, los solicitantes y peers configurados, las organizaciones que pertenecen al canal, etc.

Crear cuentas de usuario

Utilizaremos Oracle Identity Cloud Service para crear al menos un usuario para cada uno de los departamentos de las carpetas que se pueden intercambiar. Para cada uno de esos usuarios, se creará una cuenta para retener en ella las diferentes carpetas que poseen.

Vamos a crear el usuario cmsrsk001 que pertenece al departamento de riesgos, el usuario cmsfin001 que pertenece al departamento de finanzas y el usuario cmsleg001 que pertenece al departamento legal.
  1. En el menú de navegación de la consola de OCI en la esquina superior izquierda, haga clic en Identidad y seguridad y seleccione la opción Federación en la sección Identidad.
  2. Haga clic en el enlace de nombre del proveedor de identidad.
  3. Haga clic en Crear usuario.
  4. Defina como nombre de usuario el valor que desea utilizar para conectarse a la consola o como nombre de usuario de autorización para ejecutar las API de REST de nuestro contrato inteligente. En el campo de correo electrónico, defina el correo electrónico de su cuenta de OCI, de modo que recibirá el correo electrónico para restablecer la contraseña de este usuario y haga clic en Crear.
  5. Haga clic en Asignar roles.
  6. En el servicio AUTOBLOCKCHAIN, haga clic en los puntos suspensivos de la derecha y seleccione Gestionar acceso a instancia.
  7. En función del usuario que haya creado, asigne permisos en función de la siguiente tabla y, después de asignar los roles correctos, haga clic en Actualizar configuración de instancia. Debe ver los roles asignados correctamente.

    Tabla - Asignación de rol

    Usuario Instancia Roles
    cmsrsk001 org1 ADMINISTRADOR, REST_CLIENT
    cmsfin001 org1 ADMINISTRADOR, REST_CLIENT
    cmsleg001 org1 ADMINISTRADOR, REST_CLIENT
  8. (Opcional) Se le pedirá que envíe un correo electrónico a la dirección de correo electrónico del usuario informando de los roles que se han otorgado.
  9. Durante el proceso de creación de usuarios, recibirá un correo electrónico en la cuenta de correo electrónico asociada al usuario creado recientemente para restablecer la contraseña de este usuario. Utilice el enlace proporcionado para definir la contraseña del usuario que acaba de crear.

Crear inscripciones en los nodos de proxy REST

Oracle Blockchain Platform admite inscripciones en el proxy REST. Estas inscripciones se utilizan en códigos de cadenas en los que existen tokens FT o NFT, para asignar la identidad del emisor de llamada al rol que ejecuta la transacción. Para ello, debe crear la relación del usuario con el rol definido en blockchain y, para simplificar, puede nombrar el rol como usuario.

Cada inscripción se debe crear en la instancia en la que el usuario con dicho rol puede ejecutar transacciones mediante el proxy REST en esa instancia de blockchain. Por lo tanto, la inscripción cmsrsk001 asignada al usuario cmsrsk001 se debe crear en el nodo de proxy REST de la instancia de fundador (org1) y lo mismo para los otros dos usuarios, como se describe en la siguiente tabla.
Nombre de usuario Inscripción Instancia
cmsrsk001 cmsrsk001 org1
cmsfin001 cmsfin001 org1
cmsleg001 cmsleg001 org1
  1. En la consola de servicio Blockchain de la instancia fundadora (org1), vaya al separador Nodos.
  2. Haga clic en el menú de hamburguesa además de restproxy y seleccione Ver o gestionar inscripciones.
  3. Seleccione Crear nueva inscripción.
  4. Defina el ID de inscripción como cmsrsk001, el ID de usuario como cmsrsk001 y haga clic en Inscribirse.
Repita el paso 4 para crear inscripciones para los otros dos usuarios: cmsfin001 y cmsleg001. En caso de que se hayan creado usuarios de otra organización, las inscripciones de esos usuarios se deben crear en el proxy REST de la instancia de blockchain a la que pertenecen.

Preparar el entorno de desarrollo de Oracle Blockchain App Builder

La creación de un contrato inteligente de Hyperledger Fabric (HLF) requiere conocimientos intrínsecos sobre HLF, cómo codificar en Java, Typescript o GoLang, y cómo desplegar y gestionar todo el ciclo de vida del proyecto de contrato inteligente.

Oracle Blockchain App Builder se ha creado para simplificar la creación de un proyecto de contrato inteligente, de hecho, Oracle Blockchain App Builder es una herramienta con poco código que puede crear todo el proyecto de código de cadenas desde cero, excluyendo cualquier código personalizado requerido por su caso de negocio. Oracle Blockchain App Builder también le ayudará en las fases de prueba, el empaquetado del proyecto y, también, en el despliegue del código de cadenas localmente en su propia computadora para pruebas unitarias, o de forma remota en una red real de Hyperledger Fabric.

oracle-app-builder-oracle.zip

Oracle Blockchain App Builder se ha creado en dos tipos: puede utilizarlo como una herramienta de línea de comandos destinada a automatizar los pasos de creación y despliegue en procesos de integración y despliegue continuos, o bien puede utilizarlo como un plugin de Microsoft Visual Code. Ambos te permitirán ejecutar exactamente la misma funcionalidad, solo selecciona la que prefieras dependiendo de tus preferencias. Oracle Blockchain App Builder tiene las siguientes funciones:

  • Desarrollo: el creador de aplicaciones de Oracle Blockchain creará todo el proyecto de código de cadena con solo crear lo que se conoce como un archivo de especificación personalizado. El proyecto incluirá todas las entidades codificadas, todos sus accesos junto con todos los métodos CRUD para gestionar esas entidades, así como la firma de cualquier método personalizado requerido para cualquier lógica de negocio no estándar o compleja requerida por su aplicación, que se convertirá en el único código necesario para ser implementado manualmente.
  • Despliegue: una vez que el proyecto de código de cadena esté listo para la prueba, puede desplegarlo localmente en la red de Hyperledger Fabric preconfigurada o de forma remota en cualquier instancia de Oracle Blockchain Platform local o en la nube existente. Otra opción es empaquetar el proyecto que se desplegará manualmente a través de la consola de Oracle Blockchain.
  • Prueba: una vez desplegado el proyecto, puede probar cualquiera de los métodos generados automáticamente o los métodos personalizados del proyecto de código de cadenas.
  • Depurar: en caso de que utilice la extensión de Visual Studio Code, también podrá realizar una depuración línea por línea del código de cadenas.

Puede instalar cualquiera de las siguientes dos versiones de Oracle Blockchain App Builder disponibles:

Si no se siente cómodo instalando este tipo de herramientas de desarrollo y todas sus dependencias, pero tiene acceso a Oracle Cloud, puede optar por crear una caja de desarrollo dedicada con todos estos productos ya instalados y preparados para su uso en la nube y acceder a ella de forma remota. Estas máquinas son rentables debido a la unidad de computación necesaria y solo se facturan mientras están activas y en ejecución.

Oracle LiveLabs tiene un laboratorio en el que puede desplegar una máquina remota en minutos, en función de una imagen de máquina virtual ya preconfigurada por el equipo de desarrollo de Oracle Blockchain. Para obtener más información, consulte Desarrollo de aplicaciones de cadena de bloques con poco código mediante Apex y Blockchain App Builder.

Note:

En el laboratorio, para preparar una máquina en la nube con Visual Code Studio y el plugin de poco código de Oracle Blockchain App Builder instalado en ella, solo necesita ejecutar los pasos de Preparar configuración y configuración de entorno.

Creación y configuración del cubo de OCI Object Storage

Configuraremos el cubo de OCI Object Storage que le permitirá almacenar y recuperar documentos de la aplicación web de Oracle Visual Builder.

Las acciones las ejecuta la aplicación web en sincronización con la creación del hash del documento que se almacenará en Blockchain durante la carga del documento en el cubo, y la verificación de la validez del hash cuando se descarga el documento.

Note:

Para obtener más información sobre cómo codificar una aplicación de Oracle Visual Builder para cargar o descargar archivos de OCI Object Storage, consulte: Carga/descarga de archivos de OCI Storage en una aplicación de Visual Builder.

Para activar el uso de cubos a través de la API de REST que ofrecen los cubos de OCI Object Storage, debemos crear una clave de API de OCI relacionada con el usuario que puede ejecutar la API de REST. Ejecute las dos tareas de configuración siguientes para utilizar los cubos de OCI Object Storage en nuestra aplicación web de VBCS.

Para activar el uso de cubos de OCI Object Storage desde la aplicación Oracle Visual Builder, debe crear una clave de API de OCI para obtener acceso a los servicios de OCI a través de la API de REST.

  1. Conéctese a la consola de OCI y haga clic en el icono Perfil en la parte superior derecha de la consola para acceder a la configuración del usuario.
  2. Desplácese hacia abajo y haga clic en Claves de API en el menú Recursos.
  3. Haga clic en Agregar clave de API para agregar una nueva clave de API.
  4. Seleccione Generar par de claves de API.

    Note:

    Puede utilizar sus propias claves públicas y privadas en formato pem, pero en este manual de soluciones, utilizaremos las claves generadas automáticamente.
  5. Descargue las claves privada y pública y marque un archivo .pem como público.
  6. Haga clic en Agregar.
  7. Haga clic en el enlace de copia para copiar las credenciales de la API de OCI en un archivo de texto de la computadora local, ya que las necesitará para realizar pasos posteriores.
  8. Haga clic en Cerrar
    Debe tener una nueva clave de API creada y ver la clave de huella en la consola web de OCI. Puede acceder al archivo de configuración que ha copiado antes en el escritorio haciendo clic en los puntos suspensivos de la fila de huella y seleccionando Ver archivo de configuración.

    Note:

    Guarde los detalles, ya que necesitará algunos de ellos junto con la clave privada para los siguientes pasos.
  9. Cree un cubo en el que se almacenarán nuestros objetos. Vaya a Almacenamiento y, a continuación, haga clic en Cubos.
    Por simplicidad, se puede crear como público, de modo que no requiera autenticación, pero también puede lograr lo mismo con cubos de visibilidad privada.
  10. Seleccione un compartimento en el que desea crear el cubo y haga clic en Crear cubo.
  11. En la pantalla Crear cubo, asigne un nombre al cubo, deje los demás parámetros de configuración por defecto y haga clic en Crear para terminar la creación del cubo.
    El nuevo cubo se mostrará en el compartimento seleccionado. Seleccione el nombre del cubo para ver los detalles. Haga clic en Objetos en el menú de la izquierda para ver los objetos cargados en este cubo.