Prueba del código de cadenas con Visual Studio Code

Si el código de cadenas se está ejecutando en una red, puede probar cualquiera de los métodos generados. Además, si decide crear el método executeQuery durante el desarrollo del código de cadena, puede ejecutar consultas enriquecidas SQL si el código de cadena se despliega en una red de Oracle Blockchain Platform.

Prueba del código de cadena en una red local de Hyperledger Fabric

Una vez que el proyecto de código de cadenas se esté ejecutando en una red local, puede probarlo.

Blockchain App Builder contiene un asistente integrado para ayudarle a invocar o consultar su código de cadenas.

  1. Seleccione el proyecto de código de cadenas en el panel Códigos de cadenas. En el panel Detalles de código de cadena, seleccione Ejecutar. El nombre del código de cadenas ya debe estar seleccionado. Asegúrese de que el entorno de destino esté definido en Entorno local y que el canal tenga por defecto el único canal disponible.
  2. En el campo Función, seleccione el método en la lista desplegable. Se muestran todos los métodos disponibles en el código de cadenas.
  3. En el campo Parámetro de función, seleccione el botón Más acciones (...). Esto abrirá una ventana con las propiedades disponibles para el método seleccionado. Introduzca las propiedades, haga clic en Omitir para cualquier propiedad no obligatoria que no desee enviar al llamar al método y haga clic en Guardar.
  4. Haga clic en Invocar.

La ventana de la consola Salida mostrará que se ha llamado a la función. Como alternativa, en el panel Acciones de código de cadena, la ventana Salida de función muestra la salida. Haga clic en el botón Más acciones (...) para ver esta salida con formato.

Si desea guardar el método y los parámetros que acaba de ejecutar, puede hacer clic en Guardar e introducir un nombre y una descripción para él. Se guardará en el proyecto de código de cadenas en la carpeta Queries. Para volver a utilizarlo, haga clic con el botón derecho y seleccione Abrir.

Si realiza cambios en el archivo de controlador que modificarían los métodos, seleccione el icono Recargar en la parte superior del panel Ejecución de código de cadena. El cambio se debe reflejar ahora en la lista desplegable Función.

Note:

Si no desea utilizar el asistente para realizar pruebas, también puede ejecutar las herramientas de línea de comandos de Blockchain App Builder en la ventana Terminal de Visual Studio Code. Siga las instrucciones que se proporcionan aquí para realizar la prueba con la línea de comandos: Test Your Chaincode on a Local Hyperledger Fabric Network.

Prueba local de varios usuarios de token

Para probar un proyecto de token con varios usuarios localmente, puede utilizar la propiedad tokenUser para cambiar el emisor de llamada de cada transacción. Cada proyecto de código de cadenas con andamios incluye un archivo .ochain.json, que almacena los metadatos del código de cadenas. Para cambiar el emisor de llamada, actualice el valor del campo tokenUser en el archivo .ochain.json.

{
  "name": "digiCurrCC",
  "description": "Chaincode package for digiCurrCC",
  "chaincodeName": "digiCurrCC",
  "chaincodeType": "node",
  "configFileLocation": "/Users/user1/token.yml",
  "appBuilderVersion": "21.2.3",
  "nodeVersion": "v12.18.1",
  "tokenUser": "admin"
}

Cuando se monta un proyecto en andamios, la propiedad tokenUser se establece en el usuario admin predeterminado de la red local. Para cambiar el emisor de llamada de una transacción, cambie la propiedad tokenUser para que coincida con la propiedad user_id definida cuando se creó la cuenta cuando se llamó al método createAccount (TypeScript) o CreateAccount (Go).

Instalación y despliegue automáticos después de la actualización

Cada vez que actualice y guarde el código de cadenas, los cambios se compilarán, instalarán y desplegarán automáticamente. No es necesario volver a desactivar o activar la red local. Todos los proyectos se compilarán y desplegarán automáticamente en cada cambio.

Prueba de operaciones de ciclo de vida en una red remota de Oracle Blockchain Platform

Una vez que el proyecto de código de cadena se haya desplegado correctamente en la red remota de Oracle Blockchain Platform, puede probarlo según se describe en Prueba del código de cadena en una red local de Hyperledger Fabric.

Puede utilizar los mismos comandos de llamada y consulta para realizar todas las transacciones de método en una red remota de Oracle Blockchain Platform Cloud o Enterprise Edition; todo lo soportado en la red local también está soportado en la red remota. Seleccione la instancia de Oracle Blockchain Platform como entorno de destino al ejecutar las pruebas.

Prueba de proyectos de token en una red remota de Oracle Blockchain Platform

Puede probar proyectos de código de cadenas que funcionan con tokens mediante el creador de aplicaciones de blockchain, el proxy de REST de Oracle Blockchain Platform o el SDK de Hyperledger Fabric.

Creador de Aplicaciones de Blockchain

Puede utilizar la extensión Visual Studio Code para llamar a transacciones con varios usuarios para probar los códigos de cadenas de token. Para realizar pruebas con varios usuarios, cambie los parámetros de autorización (nombre de usuario y contraseña) en el separador Entornos y, a continuación, guarde el entorno. Al llamar a transacciones, seleccione el mismo entorno en la lista desplegable y, a continuación, ejecute la transacción.

Proxy REST de Oracle Blockchain Platform

Puede utilizar el proxy REST en Oracle Blockchain Platform para ejecutar su código de cadena de token en una red remota de Oracle Blockchain Platform. Utilice cualquier cliente de proxy REST, como Postman REST Client, para probar el proyecto de código de cadenas.

Para probar varios usuarios, cambie los parámetros de autorización (nombre de usuario y contraseña) en el cliente REST o conéctese a una instancia diferente de Oracle Blockchain Platform.

Ejecutar consultas enriquecidas de SQL de base de datos de Berkeley

Si decide crear el método executeQuery durante el desarrollo del código de cadenas, puede ejecutar consultas enriquecidas de SQL si el código de cadenas se despliega en una red de Oracle Blockchain Platform.

Si ha utilizado executeQuery en la sección customMethods del archivo de especificación, se creará un método executeQuery correspondiente en el controlador.

Archivo de especificaciones:
customMethods:
    - executeQuery
    - "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
    - "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
    - "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
    - "sendProductsToDistribution()"
Archivo controlador:
**
*
* BDB sql rich queries can be executed in OBP CS/EE.
* This method can be invoked only when connected to remote OBP CS/EE network.
*
*/
@Validator(yup.string())
public async executeQuery(query: string) {
    const result = await OchainController.query(query); 
    return result;
}

Puede llamar a este método para ejecutar consultas enriquecidas SQL de Berkeley DB en la red de Oracle Blockchain Platform, asegurándose de seleccionar el entorno de Oracle Blockchain Platform que ha creado como entorno de destino al ejecutar las consultas.

Por ejemplo:
  1. En el panel Detalles de código de cadena, seleccione Ejecutar. El nombre del código de cadenas, el entorno de destino y el canal ya deben rellenarse previamente desde el paso de despliegue.
  2. En el campo Nombre de función, seleccione executeQuery en la lista desplegable.
  3. En el campo Parámetro de función, seleccione el botón Más acciones (...). Esto abrirá una ventana en la que puede introducir la cadena de consulta. Introduzca los argumentos para la consulta y haga clic en Guardar.
  4. Haga clic en Consulta.
La ventana Salida mostrará la consulta que se está ejecutando y el resultado.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" 

Toda la consulta SQL se incluye en el argumento, por lo que puede realizar cambios en la consulta sobre la marcha.

Generación de comandos de la CLI a partir de consultas

Si ha guardado consultas en un proyecto de código de cadenas en Visual Studio Code, puede generar automáticamente los comandos equivalentes de la CLI.

Debe tener al menos una consulta guardada en un proyecto de código de cadenas para generar comandos de la CLI para Mac OSX y Linux y para Microsoft Windows.

  1. Amplíe el proyecto en el panel Códigos de cadena.
  2. Haga clic con el botón derecho en Consultas.
  3. Haga clic en Generate CLI Commands (Generar comandos de la CLI).

Se generan dos archivos de texto y se muestran en la sección Queries (Consultas) del panel Chaincodes (Códigos principales): CLIcommandsForLinux.txt y CLIcommandsForWindows.txt. Seleccione el nombre de archivo para abrir el archivo y mostrar los comandos de la CLI correspondientes.