Programmazione lato server in Azure Confidential Ledger

Azure Confidential Ledger offre funzionalità di programmazione lato server per eseguire logica personalizzata all'interno del libro mastro. Usando queste funzionalità, è possibile estendere la funzionalità del libro mastro scrivendo codice personalizzato che viene eseguito in un ambiente riservato e interagisce con i dati del libro mastro.

È possibile creare funzioni definite dall'utente e endpoint definiti dall'utente per eseguire varie operazioni con diversi livelli di personalizzazione. Le UDF e le UDE erano chiamate in precedenza rispettivamente funzioni semplici definite dall'utente e funzioni avanzate definite dall'utente. Dopo aver definito UDF e UDE, è possibile richiamarli dai client di Azure confidential ledger per eseguirli direttamente all'interno del motore del libro mastro.

UDF e UDE

Azure confidential ledger offre due funzionalità di programmazione lato server:

  • Funzioni definite dall'utente (UDF): le funzioni definite dall'utente sono semplici funzioni personalizzate definite ed eseguite all'interno del libro mastro. Consentono di eseguire operazioni semplici usando l'API JavaScript e possono integrarsi con l'API di scrittura del libro mastro esistente. Per altre informazioni, vedere Funzioni definite dall'utente in Azure Confidential Ledger.

  • Endpoint definiti dall'utente (UDE): gli UDE sono endpoint personalizzati che definisci ed esponi in un'applicazione di ledger. Usare questi endpoint per esporre API più sofisticate con parametri personalizzabili, formati di dati e meccanismi di autenticazione. Per altre informazioni, vedere Endpoint definiti dall'utente in Azure Confidential Ledger.

Ecco un confronto tra le caratteristiche e funzionalità principali di UDF e UDE:

Capacità UDFs UDEs
Eseguire la logica aziendale personalizzata Sì Sì
Personalizzazione degli argomenti e dei parametri di runtime Sì Sì
Esporre nuove API/endpoint NO Sì
Eseguire singole funzioni Sì NO
Eseguire hook prima o dopo un'operazione di scrittura nel libro mastro Sì NO
Creazione e aggiornamento di codice personalizzato Sì (aggiornamento/eliminazione granulare di ogni funzione) Sì (aggiornamento del bundle di applicazioni singolo per tutti gli endpoint)
Opzioni di runtime JavaScript personalizzate Sì (per ogni esecuzione) Sì (a livello globale)
Esecuzione nei nodi di backup NO Sì
Supportare più formati di dati per input e output NO Sì
Autenticazione e autorizzazione personalizzate NO Sì
Scenari di destinazione Esecuzione di una semplice logica personalizzata e integrazione con l'API libro mastro Casi d'uso avanzati che richiedono API personalizzate e controllo sui parametri JavaScript avanzati

Passaggio tra funzioni definite dall'utente e entità definite dall'utente

Le UDF e le UDE si escludono a vicenda. Non è possibile creare o eseguire UDF se sono definiti UDE e viceversa. Usare la procedura seguente per passare da una funzionalità all'altra.

Importante

Il passaggio tra UDF e UDE è un'operazione distruttiva. Tutti gli UDF o UDE esistenti vengono eliminati quando si passa all'altra funzionalità. Eseguire il backup di qualsiasi dato importante prima di procedere.

Dalle funzioni definite dall'utente (UDF) agli UDE

Per passare da UDF a UDE, eliminare tutti gli UDF esistenti:

  1. Elencare tutte le UDF archiviate nel libro mastro usando l'API GET /app/userDefinedFunctions.

  2. Eliminare ogni UDF, una alla volta, usando l'API DELETE /app/userDefinedFunctions/{functionId}.

Da UDE a UDF

Per passare dagli UDE agli UDF, definire gli UDE con definizioni vuote di moduli ed endpoint.

  1. Creare un nuovo bundle di applicazioni con la struttura seguente:

    {
        "metadata": {
            "endpoints": {}
        }, 
       "modules": []
    }
    
  2. Distribuire il bundle dell'applicazione con il corpo della richiesta definito nel passaggio 1 usando l'API PUT /app/userDefinedEndpoints .

Passaggi successivi

Per iniziare a usare la programmazione lato server in Azure Confidential Ledger, vedere gli articoli seguenti: