Distribuire una rete blockchain Ethereum nell'hub di Azure Stack

Il modello di soluzione Ethereum è progettato per semplificare e semplificare la distribuzione e la configurazione di una rete blockchain Ethereum del consorzio multi-membro con una conoscenza minima di Azure e Ethereum.

Con pochi input utente e una distribuzione a clic singolo tramite il portale tenant dell'hub di Azure Stack, ogni membro può effettuare il provisioning del footprint di rete. Il footprint di rete di ogni membro è costituito da tre elementi:

  1. Set di nodi delle transazioni con carico bilanciato con cui un'app o un utente può interagire per inviare transazioni.
  2. Set di nodi di data mining per registrare le transazioni.
  3. Appliance virtuale di rete.

Un passaggio successivo di connessione connette le appliance virtuali di rete per creare una rete blockchain multi-membro completamente configurata.

Per configurare:

  • Scegliere un'architettura di distribuzione.
  • Distribuire una rete autonoma, leader del consorzio o membro del consorzio.

Prerequisiti

Scaricare gli elementi più recenti dal Marketplace:

  • Ubuntu Server 16.04 LTS
  • Windows Server 2016
  • Script personalizzato per Linux 2.0
  • Estensione Script personalizzato per Windows

Architettura di distribuzione

Questo modello di soluzione può distribuire una rete di consorzio Ethereum singolo o multi-membro. La rete virtuale è connessa in una topologia di catena usando l'appliance virtuale di rete e le risorse di connessione.

Il modello può distribuire ethereum consortium per leader e membro in diversi modi. Ecco quelli che abbiamo testato:

  • In un hub di Azure Stack a più nodi, con ID Microsoft Entra o AD FS, distribuire lead e membro usando la stessa sottoscrizione o con sottoscrizioni diverse.
  • In un hub di Azure Stack a nodo singolo (con MICROSOFT ENTRA ID), distribuire lead e membri usando la stessa sottoscrizione.

Distribuzione autonoma e leader del consorzio

Il modello leader del consorzio configura il footprint del primo membro nella rete.

  1. Scaricare il modello leader da GitHub.

  2. Nel portale tenant dell'hub di Azure Stack selezionare + Crea una distribuzione del modello di risorsa > da distribuire da un modello personalizzato.

  3. Selezionare Compila un modello personalizzato nell'editor per modificare il nuovo modello personalizzato.

  4. Nel riquadro di modifica a destra copiare e incollare il modello di leader JSON scaricato in precedenza.

    Modificare il modello con il modello leader incollato

  5. Selezionare Salva.

  6. Nella scheda Informazioni di base completare le impostazioni seguenti.

    Nome parametro Descrizione Valore di esempio
    Subscription Sottoscrizione a cui distribuire la rete del consorzio. Sottoscrizione a consumo
    Gruppo di risorse Gruppo di risorse nel quale eseguire la distribuzione della rete di consorzio. EthereumResources
    Region Area di Azure per le risorse. locali
    Prefisso del nome Stringa usata come base per la denominazione delle risorse distribuite. Usare un massimo di sei caratteri alfanumerici. Eth
    Tipo di autenticazione Metodo per l'autenticazione nella macchina virtuale. I valori consentiti sono password o chiave pubblica SSH. Password
    Nome utente amministratore Amministrazione nome utente di ogni macchina virtuale distribuita. Usare da uno a 64 caratteri. gethadmin
    Amministrazione password (tipo di autenticazione = password) Password per l'account amministratore per ognuna delle macchine virtuali distribuite. La password deve contenere 3 dei requisiti seguenti: un carattere maiuscolo, un carattere minuscolo, un numero e un carattere speciale.
    Inizialmente tutte le macchine virtuali hanno la stessa password, ma è possibile modificarla dopo il provisioning. Usare da 12 a 72 caratteri.
    Amministrazione chiave SSH (tipo di autenticazione = sshPublicKey) Stringa di chiave pubblica RSA della shell protetta usata per l'accesso remoto.
    Blocco Genesi Stringa JSON che rappresenta il blocco originale personalizzato. Specificare un valore per questo parametro è facoltativo.
    Password dell'account Ethereum Password amministratore usata per proteggere l'account Ethereum.
    Passphrase dell'account Ethereum Passphrase usata per generare la chiave privata associata all'account Ethereum. Prendere in considerazione una password con casualità sufficiente per garantire una chiave privata complessa.
    ID di rete Ethereum ID di rete del consorzio. Usare qualsiasi valore compreso tra 5 e 999.999.999. 72
    ID membro del consorzio ID associato a ogni membro della rete del consorzio. Questo ID deve essere univoco nella rete. 0
    Numero di nodi di data mining Numero di nodi di data mining per ogni membro del consorzio. Usare un valore compreso tra 2 e 15. 2
    Dimensioni della macchina virtuale del nodo di data mining Dimensioni della macchina virtuale dei nodi di data mining. Standard_A1
    Tipo di account di archiviazione di data mining Prestazioni di archiviazione dei nodi di data mining. Standard_LRS
    Numero di nodi TX Numero di nodi delle transazioni con carico bilanciato. Usare un valore compreso tra 1 e 5. 1
    Dimensioni della macchina virtuale del nodo TX Dimensioni della macchina virtuale dei nodi delle transazioni. Standard_A1
    Tipo di account di archiviazione TX Prestazioni di archiviazione dei nodi delle transazioni. Standard_LRS
    URL di base URL di base in cui ottenere i modelli di distribuzione. Usare il valore predefinito a meno che non si voglia personalizzare i modelli di distribuzione.
  7. Selezionare Rivedi e crea. Dopo aver completato la convalida, selezionare Crea.

La distribuzione può richiedere 20 minuti o più minuti per completare.

Al termine della distribuzione, esaminare il riepilogo della distribuzione per Microsoft.Template nella sezione distribuzione del gruppo di risorse. Il riepilogo contiene valori di output usati per partecipare ai membri del consorzio.

Per verificare la distribuzione del leader, passare al sito di amministrazione del leader. L'indirizzo del sito di amministrazione è disponibile nella sezione di output della distribuzione di Microsoft.Template .

Riepilogo della distribuzione leader

Aggiunta alla distribuzione dei membri del consorzio

  1. Scaricare il modello membro del consorzio da GitHub.

  2. Nel portale tenant dell'hub di Azure Stack selezionare + Crea una distribuzione modello di risorsa > da distribuire da un modello personalizzato.

  3. Selezionare Compila un modello personalizzato nell'editor per modificare il nuovo modello personalizzato.

  4. Nel riquadro di modifica a destra copiare e incollare il file JSON del modello membro del consorzio scaricato in precedenza.

  5. Selezionare Salva.

  6. Nella scheda Nozioni di base completare le impostazioni seguenti.

    Nome parametro Descrizione Valore di esempio
    Subscription Sottoscrizione a cui distribuire la rete del consorzio. Sottoscrizione a consumo
    Gruppo di risorse Gruppo di risorse nel quale eseguire la distribuzione della rete di consorzio. EthereumResources
    Region Area di Azure per le risorse. locali
    Prefisso del nome Stringa usata come base per la denominazione delle risorse distribuite. Usare un massimo di sei caratteri alfanumerici. Eth
    Tipo di autenticazione Metodo da autenticare nella macchina virtuale. I valori consentiti sono Password o chiave pubblica SSH. Password
    Nome utente amministratore Amministrazione nome utente di ogni macchina virtuale distribuita. Usare da uno a 64 caratteri. gethadmin
    password Amministrazione (tipo di autenticazione = password) Password per l'account amministratore per ognuna delle macchine virtuali distribuite. La password deve contenere 3 dei requisiti seguenti: un carattere maiuscolo, un carattere minuscolo, un numero e un carattere speciale.
    Inizialmente tutte le macchine virtuali hanno la stessa password, ma è possibile modificarla dopo il provisioning. Usare da 12 a 72 caratteri.
    Amministrazione chiave SSH (tipo di autenticazione = sshPublicKey) Stringa di chiave pubblica RSA sicura usata per l'accesso remoto.
    Blocco Genesi Stringa JSON che rappresenta il blocco originale personalizzato. Se si specifica un valore per questo parametro, è facoltativo.
    Password dell'account Ethereum Password amministratore usata per proteggere l'account Ethereum.
    Passphrase dell'account Ethereum Passphrase usata per generare una chiave privata associata all'account Ethereum. Prendere in considerazione una password con una casualità sufficiente per garantire una chiave privata complessa.
    ID membro del consorzio ID associato a ogni membro della rete del consorzio. Questo ID deve essere univoco nella rete. 0
    Nodi di data mining numerici Numero di nodi di data mining per ogni membro del consorzio. Usare un valore compreso tra 2 e 15. 2
    Dimensioni della macchina virtuale del nodo di data mining Dimensioni della macchina virtuale dei nodi di data mining. Standard_A1
    Tipo di account di archiviazione di data mining Prestazioni di archiviazione dei nodi di data mining. Standard_LRS
    Numero di nodi TX Numero di nodi transazioni con carico bilanciato. Usare un valore compreso tra 1 e 5. 1
    Dimensioni della macchina virtuale del nodo TX Dimensioni della macchina virtuale dei nodi delle transazioni. Standard_A1
    Tipo di account di archiviazione TX Prestazioni di archiviazione dei nodi delle transazioni. Standard_LRS
    Dati del consorzio L'URL che indica i dati relativi alla configurazione del consorzio forniti dalla distribuzione di un altro membro. Questo valore è disponibile nell'output della distribuzione leader.
    Spazio indirizzi della rete virtuale del membro remoto Spazio indirizzi rete virtuale del leader. Questo valore è disponibile nell'output della distribuzione leader.
    IP pubblico del membro remoto Indirizzo IP NVA del leader. Questo valore è disponibile nell'output della distribuzione leader.
    Chiave condivisa di connessione Segreto pre-stabilito tra i membri della rete del consorzio che stabilisce una connessione gateway.
    URL di base URL di base in cui ottenere i modelli di distribuzione. Usare il valore predefinito a meno che non si voglia personalizzare i modelli di distribuzione.
  7. Selezionare Rivedi e crea. Dopo aver completato la convalida, selezionare Crea.

La distribuzione può richiedere 20 minuti o più minuti per completare.

Al termine della distribuzione, esaminare il riepilogo della distribuzione per Microsoft.Template nella sezione relativa alla distribuzione del gruppo di risorse. Il riepilogo contiene i valori di output usati per connettere i membri del consorzio.

Per verificare la distribuzione del membro, esplorare il sito di amministrazione del membro. È possibile trovare l'indirizzo del sito di amministrazione nella sezione output della distribuzione Microsoft.Template .

Riepilogo della distribuzione dei membri

Come illustrato nell'immagine, lo stato dei nodi del membro non è in esecuzione. Questo stato è dovuto al fatto che la connessione tra membro e leader non viene stabilita. La connessione tra membro e leader è una connessione bidirezionale. Quando si distribuisce il membro, il modello crea automaticamente la connessione dal membro al leader. Per creare la connessione dal leader al membro, andare al passaggio successivo.

Connetti membro e leader

Questo modello crea una connessione dal leader a un membro remoto.

  1. Scaricare il modello di membro e leader connect da GitHub.

  2. Nel portale tenant dell'hub di Azure Stack selezionare + Crea una distribuzione del modello di risorsa > da distribuire da un modello personalizzato.

  3. Selezionare Compila un modello personalizzato nell'editor per modificare il nuovo modello personalizzato.

  4. Nel riquadro di modifica a destra copiare e incollare il file JSON del modello membro del consorzio scaricato in precedenza.

  5. Selezionare Salva.

  6. Completare le impostazioni seguenti.

    Nome parametro Descrizione Valore di esempio
    Subscription Sottoscrizione a cui distribuire la rete del consorzio. Sottoscrizione a consumo
    Gruppo di risorse Gruppo di risorse nel quale eseguire la distribuzione della rete di consorzio. EthereumResources
    Region Area di Azure per le risorse. locali
    Prefisso del nome del membro Stringa usata come base per la denominazione delle risorse distribuite. Usare un massimo di sei caratteri alfanumerici. Eth
    Nome tabella di route membro Nome della tabella di route del leader. Questo valore è disponibile nell'output della distribuzione leader.
    Spazio indirizzi della rete virtuale del membro remoto Spazio indirizzi del membro. Questo valore è disponibile nell'output di distribuzione del membro.
    IP pubblico dell'appliance virtuale di rete membro remoto Indirizzo IP dell'appliance virtuale di rete a cui connettersi. Questo valore è disponibile nell'output di distribuzione del membro.
    Chiave condivisa di connessione Un segreto preesistente tra i membri della rete del consorzio che stabiliscono una connessione.
    IP privato dell'appliance virtuale di rete membro Indirizzo IP dell'appliance virtuale di rete del membro. Questo valore è disponibile nell'output di distribuzione del membro.
    URL di base URL di base in cui ottenere i modelli di distribuzione. Usare il valore predefinito a meno che non si voglia personalizzare i modelli di distribuzione.
  7. Selezionare Rivedi e crea. Dopo aver completato la convalida, selezionare Crea.

Al termine della distribuzione, l'avvio della comunicazione tra leader e membro richiede alcuni minuti. Per verificare la distribuzione, aggiornare il sito di amministrazione del membro. Lo stato dei nodi del membro deve essere in esecuzione.

Verificare la distribuzione

Passaggi successivi

Per altre informazioni su Ethereum e Azure, vedere Tecnologia e applicazioni Blockchain.