Ciclo di vita codice concatenato

(Hyperledger Fabric v2.x) Il ciclo di vita del codice concatenato descrive il processo di installazione del codice concatenato sui peer e di distribuzione su un canale.

Il ciclo di vita del codice concatenato si basa sulle funzionalità della piattaforma Hyperledger Fabric v2.x, che consente la governance decentralizzata dei codici concatenati. Più organizzazioni possono concordare i parametri del codice concatenato, incluso il criterio di approvazione del codice concatenato, prima che un codice concatenato possa interagire con il libro contabile. Queste funzioni vengono implementate nelle nuove opzioni di distribuzione rapida e avanzata, nonché nell'API REST. Per ulteriori informazioni sul nuovo ciclo di vita, vedere Fabric chaincode lifecycle nella documentazione Hyperledger Fabric v2.2.4.

In genere, per distribuire un codice concatenato installato, è possibile utilizzare una distribuzione rapida o una distribuzione avanzata nella console. Il processo di distribuzione include il packaging e l'installazione del codice concatenato, nonché l'approvazione e il commit della definizione del codice concatenato. È inoltre possibile utilizzare l'API REST per completare le operazioni di approvazione e impegno separatamente.

Package e installazione di un codice concatenato

Quando si installa il codice concatenato in Oracle Blockchain Platform, il codice concatenato viene inserito in un package, installato e l'ID di un package viene generato automaticamente. L'ID del pacchetto viene visualizzato nella scheda Codici di connessione della console.

Approva una definizione di codice concatenato

Per poter distribuire un codice concatenato in un canale, la definizione del codice concatenato deve essere approvata da un numero sufficiente di organizzazioni per soddisfare il criterio LifecycleEndorsement del canale. Il criterio LifecycleEndorsement predefinito in Oracle Blockchain Platform consente a qualsiasi organizzazione di approvare la definizione del codice concatenato (a differenza della maggior parte delle organizzazioni). La definizione del codice concatenato include i seguenti parametri, che devono essere uguali per tutte le organizzazioni: Chaincode Name, Version, Sequence, Endorsement Policy, Private Data Collection e Init-required. Una definizione di codice concatenato può includere anche un valore Package ID, che non deve essere uguale per tutte le organizzazioni.

Dopo l'approvazione della definizione di un codice concatenato, un'organizzazione può raccogliere le approvazioni dai pari livello delle organizzazioni di approvazione e quindi eseguire il commit della definizione del codice concatenato nel canale.

Per approvare una definizione di codice concatenato mediante l'API REST, vedere Approvare una definizione di codice concatenato in un canale.

Nella console, quando si utilizza una distribuzione rapida o una distribuzione avanzata, vengono tentati entrambi i passi di approvazione e impegno.

Esegui commit di una definizione di codice concatenato

Per eseguire il commit di una definizione di codice concatenato approvata mediante l'API REST, vedere Eseguire il commit di una definizione di codice concatenato in un canale.

Nella console è possibile visualizzare le definizioni dei codici concatenati approvate ma di cui non è stato eseguito il commit nella pagina Codici concatenati distribuiti per il canale. È possibile utilizzare il menu Altre azioni per eseguire il commit del codice concatenato approvato.

Scenari ciclo di vita codice concatenato

Scenario Descrizione
Unisciti a un canale

In genere, nella console non si approva una definizione di codice concatenato senza eseguirne il commit. Se si partecipa a un canale condiviso in cui è stato eseguito il commit di una definizione di codice concatenato da un'altra organizzazione, la definizione di codice concatenato verrà elencata come impegnata ma non approvata nella pagina Codici concatenati distribuiti per il canale. È possibile utilizzare il menu Altre azioni per approvare la definizione del codice concatenato e anche per associare un ID package. Non è necessario eseguire di nuovo il commit della definizione del package.

Aggiorna un criterio di approvazione

È possibile aggiornare il criterio di approvazione nella definizione del codice concatenato senza reinstallare il codice concatenato. Nella pagina Codici concatenati distribuiti per il canale, utilizzare il menu Altre azioni per aggiornare la definizione del codice concatenato. Espandere Criterio dichiarazione a sostegno e specificare un nuovo criterio, quindi fare clic su Aggiorna.

Approva una definizione senza installarla

In uno scenario di più organizzazioni, per approvare una definizione di codice concatenato senza installare il package codice concatenato, non specificare un ID pacchetto. È possibile approvare la definizione del codice concatenato di cui è stato eseguito il commit nel canale, ma il codice concatenato non è installato sui pari livello dell'organizzazione. Non sarà possibile utilizzare il codice concatenato per approvare le transazioni o eseguire query sul libro contabile.

Disaccordo sulle definizioni

In uno scenario di più organizzazioni, un'organizzazione che non approva una definizione di codice concatenato o approva una definizione di codice concatenato diversa non è in grado di eseguire il codice concatenato sui propri pari livello. Se altre organizzazioni ottengono approvazioni sufficienti per eseguire il commit della definizione nel canale, tali organizzazioni possono utilizzare il codice concatenato. Le transazioni vengono ancora aggiunte al libro contabile sui pari livello di tutte le organizzazioni.

Se le organizzazioni non concordano su una definizione di codice concatenato e nessuna organizzazione ottiene un numero di approvazioni sufficiente per eseguire il commit della definizione nel canale, non è possibile eseguire il commit della definizione e pertanto il codice concatenato non può essere eseguito.

Più organizzazioni installano pacchetti diversi

È possibile specificare un ID package diverso quando si approva una definizione di codice concatenato per un canale con più organizzazioni. Se il nome della definizione e il criterio di approvazione sono uguali, i membri del canale possono installare il codice concatenato specifico della propria organizzazione, ma che legge e scrive i dati nello stesso spazio di nomi del codice concatenato.

Crea più codici concatenati da un unico package

Analogamente, è possibile approvare ed eseguire il commit dello stesso package di codici concatenati più volte, specificando un nome diverso per ogni definizione. Sul canale vengono eseguite più istanze del codice concatenato. Se si specifica anche un criterio di approvazione diverso per ogni definizione, ogni istanza del codice concatenato è soggetta a un criterio di approvazione diverso.