Test del codice concatenato mediante Visual Studio Code

Se il codice concatenato è in esecuzione su una rete, è possibile eseguire il test di uno qualsiasi dei metodi generati. Inoltre, se si è scelto di creare il metodo executeQuery durante lo sviluppo del codice concatenato, è possibile eseguire query Rich SQL se il codice concatenato viene distribuito su una rete Oracle Blockchain Platform.

Test del codice concatenato su una rete Hyperledger Fabric locale

Una volta che il progetto con codice concatenato è in esecuzione su una rete locale, è possibile testarlo.

Blockchain App Builder contiene una procedura guidata integrata che consente di richiamare o eseguire query sul codice concatenato.

  1. Selezionare il progetto con codice concatenato nel riquadro Codici di catena. Nel riquadro Dettagli codice di connessione selezionare Esegui. Il nome del codice concatenato deve essere già selezionato. Assicurarsi che l'ambiente di destinazione sia impostato su Ambiente locale e che il canale sia l'unico canale disponibile per impostazione predefinita.
  2. Nel campo Funzione, selezionare il metodo dall'elenco a discesa. Vengono elencati tutti i metodi disponibili nel codice concatenato.
  3. Nel campo Parametro funzione, selezionare il pulsante Altre azioni (...). Verrà aperta una finestra con le proprietà disponibili per il metodo selezionato. Immettere le proprietà, fare clic su Ometti per le proprietà non obbligatorie che non si desidera sottomettere quando si richiama il metodo e fare clic su Salva.
  4. Fare clic su Richiama.

La finestra della console Output mostra che la funzione è stata richiamata. In alternativa, nel riquadro Azioni codice di connessione la finestra Output funzione visualizza l'output. Fare clic sul pulsante Altre azioni (...) per visualizzare il formato di questo output.

Se si desidera salvare il metodo e i parametri appena eseguiti, è possibile fare clic su Salva e immettere un nome e una descrizione. Verrà salvato nel progetto codice concatenato nella cartella Queries. Per utilizzarlo di nuovo, fare clic con il pulsante destro del mouse e selezionare Apri.

Se si apportano modifiche al file del controller che potrebbero modificare i metodi, selezionare l'icona Ricarica nella parte superiore del riquadro Esecuzione codice di connessione. La modifica deve ora essere riportata nell'elenco a discesa Funzione.

Nota

Se non si desidera utilizzare la procedura guidata per i test, è inoltre possibile eseguire gli strumenti della riga di comando di Blockchain App Builder nella finestra Terminale di Visual Studio Code. Seguire le istruzioni fornite qui per eseguire il test con la riga di comando: Test del codice concatenato su una rete Hyperledger Fabric locale.

Test di più utenti token in locale

Per eseguire il test di un progetto token con più utenti in locale, è possibile utilizzare la proprietà tokenUser per modificare il chiamante di ogni transazione. Ogni progetto di codice concatenato impalcato include un file .ochain.json, che memorizza i metadati del codice concatenato. Per modificare il chiamante, aggiornare il valore del campo tokenUser nel file .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"
}

Quando un progetto è impalcato, la proprietà tokenUser viene impostata sull'utente admin predefinito della rete locale. Per modificare il chiamante di una transazione, modificare la proprietà tokenUser in modo che corrisponda alla proprietà user_id impostata al momento della creazione dell'account al momento della chiamata del metodo createAccount (TypeScript) o CreateAccount (Go).

Installazione e distribuzione automatiche dopo l'aggiornamento

Ogni volta che si aggiorna e salva il codice concatenato, le modifiche verranno compilate, installate e distribuite automaticamente. Non è necessario rimuovere o riattivare la rete locale. Tutti i progetti verranno compilati e distribuiti automaticamente ad ogni modifica.

Test delle operazioni del ciclo di vita su una rete Oracle Blockchain Platform remota

Una volta che il progetto chaincode è stato distribuito correttamente nella rete Oracle Blockchain Platform remota, è possibile eseguirne il test come descritto in Test del codice concatenato su una rete Hyperledger Fabric locale.

È possibile utilizzare gli stessi comandi di richiamo ed esecuzione di query per eseguire tutte le transazioni del metodo su una rete remota di Oracle Blockchain Platform Cloud o Enterprise Edition. Tutti gli elementi supportati nella rete locale sono supportati anche nella rete remota. Selezionare l'istanza di Oracle Blockchain Platform come ambiente di destinazione durante l'esecuzione dei test.

Test dei progetti token su una rete Oracle Blockchain Platform remota

Puoi testare i progetti con codice concatenato che funzionano con i token utilizzando Blockchain App Builder, il proxy REST di Oracle Blockchain Platform o l'SDK Hyperledger Fabric.

App Builder di blockchain

È possibile utilizzare l'estensione Visual Studio Code per richiamare le transazioni con più utenti per eseguire il test dei codici concatenati token. Per eseguire il test con più utenti, modificare i parametri di autorizzazione (nome utente e password) nella scheda Ambienti, quindi salvare l'ambiente. Durante il richiamo delle transazioni, selezionare lo stesso ambiente dall'elenco a discesa, quindi eseguire la transazione.

Proxy REST di Oracle Blockchain Platform

È possibile utilizzare il proxy REST in Oracle Blockchain Platform per eseguire un codice concatenato di token su una rete Oracle Blockchain Platform remota. Utilizzare qualsiasi client proxy REST, ad esempio il client REST Postman, per eseguire il test del progetto con codice concatenato.

Per eseguire il test di più utenti, modificare i parametri di autorizzazione (nome utente e password) nel client REST o connettersi a un'altra istanza di Oracle Blockchain Platform.

Esegui query Rich SQL DB Berkeley

Se si è scelto di creare il metodo executeQuery durante lo sviluppo del codice concatenato, è possibile eseguire query Rich SQL se il codice concatenato viene distribuito su una rete Oracle Blockchain Platform.

Se si è utilizzato executeQuery nella sezione customMethods del file di specifica, nel controller verrà creato un metodo executeQuery corrispondente.

File specifica:
customMethods:
    - executeQuery
    - "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
    - "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
    - "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
    - "sendProductsToDistribution()"
File controller:
**
*
* 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;
}

Puoi richiamare questo metodo per eseguire query rich SQL DB Berkeley sulla rete Oracle Blockchain Platform, assicurandoti di selezionare l'ambiente Oracle Blockchain Platform creato come ambiente di destinazione durante l'esecuzione delle query.

Esempio:
  1. Nel riquadro Dettagli codice di connessione selezionare Esegui. Il nome del codice concatenato, l'ambiente di destinazione e il canale devono essere già precompilati dal passo di distribuzione.
  2. Nel campo Nome funzione, selezionare executeQuery dall'elenco a discesa.
  3. Nel campo Parametro funzione, selezionare il pulsante Altre azioni (...). Verrà visualizzata una finestra in cui è possibile immettere la stringa di query. Immettere gli argomenti della query e fare clic su Salva.
  4. Fare clic su Query.
La finestra Output mostrerà la query in esecuzione e il risultato.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" 

L'intera query SQL viene utilizzata nell'argomento, in modo da poter apportare modifiche alla query in tempo reale.

Genera comandi CLI dalle query

Se sono state salvate query in un progetto con codice concatenato in Visual Studio Code, è possibile generare automaticamente i comandi CLI equivalenti.

Per generare comandi CLI per Mac OSX e Linux e per Microsoft Windows, è necessario disporre di almeno una query salvata in un progetto con codice concatenato.

  1. Espandere il progetto nel riquadro Codici di catena.
  2. Fare clic con il pulsante destro del mouse su Interrogazioni.
  3. Fare clic su Generate CLI Commands.

Nella sezione Query del riquadro Codici di catena vengono generati e visualizzati due file di testo: CLIcommandsForLinux.txt e CLIcommandsForWindows.txt. Selezionare il nome del file per aprire il file e mostrare i comandi CLI corrispondenti.