Implementar uma rede de blockchain Ethereum no Azure Stack Hub

O modelo de solução Ethereum foi concebido para tornar mais fácil e rápido implementar e configurar uma rede de blockchain Ethereum de consórcio multi-membro com conhecimentos mínimos sobre o Azure e o Ethereum.

Com um punhado de entradas de utilizador e uma implementação com um único clique através do portal de inquilinos do Azure Stack Hub, cada membro pode aprovisionar a respetiva pegada de rede. A pegada de rede de cada membro consiste em três aspetos:

  1. Um conjunto de nós de transação com balanceamento de carga com os quais uma aplicação ou utilizador pode interagir para submeter transações.
  2. Um conjunto de nós de mineração para registar transações.
  3. Uma Aplicação Virtual de Rede (NVA).

Um passo de ligação posterior liga as NVAs para criar uma rede de blockchain multi-membro totalmente configurada.

Para configurar:

  • Escolha uma arquitetura de implementação.
  • Implemente uma rede autónoma, líder de consórcio ou membro do consórcio.

Pré-requisitos

Transfira os itens mais recentes a partir do Marketplace:

  • Ubuntu Server 16.04 LTS
  • Windows Server 2016
  • Script Personalizado para Linux 2.0
  • Extensão de Script Personalizado para o Windows

Arquitetura de implementação

Este modelo de solução pode implementar uma rede de consórcio Ethereum individual ou multi-membro. A rede virtual está ligada numa topologia de cadeia com a Aplicação Virtual de Rede e os recursos de ligação.

O modelo pode implementar o consórcio Ethereum para líder e membro de várias formas. Eis as que testámos:

  • Num Azure Stack Hub com vários nós, com Microsoft Entra ID ou AD FS, implemente oportunidade potencial e membro com a mesma subscrição ou com subscrições diferentes.
  • Num Azure Stack Hub de nó único (com Microsoft Entra ID), implemente o lead e o membro com a mesma subscrição.

Implementação autónoma e líder de consórcio

O modelo de coordenador de consórcio configura a pegada do primeiro membro na rede.

  1. Transfira o modelo de líder a partir do GitHub.

  2. No portal de inquilinos do Azure Stack Hub, selecione + Criar uma implementação de Modelo de recurso > para implementar a partir de um modelo personalizado.

  3. Selecione Criar o seu próprio modelo no editor para editar o novo modelo personalizado.

  4. No painel de edição à direita, copie e cole o modelo de coordenador JSON que transferiu anteriormente.

    Editar modelo com o modelo de líder colado

  5. Selecione Guardar.

  6. No separador Noções básicas , conclua as seguintes definições.

    Nome do parâmetro Descrição Valor da amostra
    Subscrição A subscrição para a qual pretende implementar a rede do consórcio. Subscrição de Consumo
    Grupo de recursos O grupo de recursos para o qual pretende implementar a rede do consórcio. EthereumResources
    Region A região do Azure para recursos. local
    Prefixo de nome Cadeia utilizada como base para atribuir nomes aos recursos implementados. Utilize um máximo de seis carateres alfanuméricos. eth
    Tipo de autenticação O método para autenticar na VM. Os valores permitidos são palavra-passe ou chave pública SSH. Palavra-passe
    Nome de utilizador de administrador Administração nome de utilizador de cada VM implementada. Utilize de um a 64 carateres. gethadmin
    Administração palavra-passe (Tipo de autenticação = Palavra-passe) A palavra-passe da conta de administrador para cada uma das VMs implementadas. A palavra-passe tem de conter 3 dos seguintes requisitos: 1 caráter maiúsculo, 1 caráter minúsculo, 1 número e 1 caráter especial.
    Embora todas as VMs tenham inicialmente a mesma palavra-passe, pode alterar a palavra-passe após o aprovisionamento. Utilize entre 12 e 72 carateres.
    Administração chave SSH (Tipo de autenticação = sshPublicKey) A cadeia de chave pública RSA de shell segura utilizada para o início de sessão remoto.
    Bloco Gênesis Cadeia JSON que representa o bloco de géneses personalizado. Especificar um valor para este parâmetro é opcional.
    Palavra-passe da conta Ethereum A palavra-passe de administrador utilizada para proteger a conta Ethereum.
    Frase de acesso da conta Ethereum A frase de acesso utilizada para gerar chave privada associada à conta Ethereum. Considere uma palavra-passe com aleatoriedade suficiente para garantir uma chave privada forte.
    ID de rede Ethereum O ID de rede do consórcio. Utilize qualquer valor entre 5 e 999.999.999. 72
    ID de membro do consórcio O ID associado a cada membro da rede do consórcio. Este ID deve ser exclusivo na rede. 0
    Nós de extração de números Número de nós mineiros para cada membro do consórcio. Utilize um valor entre 2 e 15. 2
    Tamanho da VM do nó de mineração Tamanho da VM dos nós mineiros. Standard_A1
    Tipo de conta de armazenamento de mineração Desempenho do armazenamento dos nós de mineração. Standard_LRS
    Nós TX numéricos Número de nós de transação com balanceamento de carga. Utilize um valor entre 1 e 5. 1
    Tamanho da VM do nó TX Tamanho da VM dos nós de transação. Standard_A1
    Tipo de conta de armazenamento TX Desempenho do armazenamento dos nós de transação. Standard_LRS
    URL Base URL base onde obter os modelos de implementação. Utilize o valor predefinido, a menos que pretenda personalizar os modelos de implementação.
  7. Selecione Rever + criar. Após a validação bem-sucedida, selecione Criar.

A implementação pode demorar 20 minutos ou mais a concluir.

Após a conclusão da implementação, reveja o resumo da implementação de Microsoft.Template na secção de implementação do grupo de recursos. O resumo contém valores de saída utilizados para associar membros do consórcio.

Para verificar a implementação do líder, aceda ao site de administração do líder. O endereço do site de administração encontra-se na secção de saída da implementação Microsoft.Template .

Resumo da implementação do líder

Aderir à implementação de membros do consórcio

  1. Transfira o modelo de membro do consórcio a partir do GitHub.

  2. No portal de inquilinos do Azure Stack Hub, selecione + Criar uma implementação de Modelo de recurso > para implementar a partir de um modelo personalizado.

  3. Selecione Criar o seu próprio modelo no editor para editar o novo modelo personalizado.

  4. No painel de edição à direita, copie e cole o modelo de membro do consórcio JSON que transferiu anteriormente.

  5. Selecione Guardar.

  6. No separador Noções básicas , conclua as seguintes definições.

    Nome do parâmetro Descrição Valor da amostra
    Subscrição A subscrição para a qual pretende implementar a rede do consórcio. Subscrição de Consumo
    Grupo de recursos O grupo de recursos para o qual pretende implementar a rede do consórcio. EthereumResources
    Region A região do Azure para recursos. local
    Prefixo de nome Cadeia utilizada como base para atribuir nomes aos recursos implementados. Utilize um máximo de seis carateres alfanuméricos. eth
    Tipo de autenticação O método para autenticar na VM. Os valores permitidos são Palavra-passe ou chave pública SSH. Palavra-passe
    Nome de utilizador de administrador Administração nome de utilizador de cada VM implementada. Utilize de um a 64 carateres. gethadmin
    Administração palavra-passe (Tipo de autenticação = Palavra-passe) A palavra-passe da conta de administrador para cada uma das VMs implementadas. A palavra-passe tem de conter 3 dos seguintes requisitos: 1 caráter maiúsculo, 1 caráter minúsculo, 1 número e 1 caráter especial.
    Embora todas as VMs tenham inicialmente a mesma palavra-passe, pode alterar a palavra-passe após o aprovisionamento. Utilize entre 12 e 72 carateres.
    Administração chave SSH (Tipo de autenticação = sshPublicKey) A cadeia de chave pública RSA de shell segura utilizada para o início de sessão remoto.
    Bloco Gênesis Cadeia JSON que representa o bloco de géneses personalizado. Especificar um valor para este parâmetro é opcional.
    Palavra-passe da conta Ethereum A palavra-passe de administrador utilizada para proteger a conta Ethereum.
    Frase de acesso da conta Ethereum A frase de acesso utilizada para gerar chave privada associada à conta Ethereum. Considere uma palavra-passe com aleatoriedade suficiente para garantir uma chave privada forte.
    ID de membro do consórcio O ID associado a cada membro da rede do consórcio. Este ID deve ser exclusivo na rede. 0
    Nós de extração de números Número de nós mineiros para cada membro do consórcio. Utilize um valor entre 2 e 15. 2
    Tamanho da VM do nó de mineração Tamanho da VM dos nós mineiros. Standard_A1
    Tipo de conta de armazenamento de mineração Desempenho do armazenamento dos nós de mineração. Standard_LRS
    Nós TX numéricos Número de nós de transação com balanceamento de carga. Utilize um valor entre 1 e 5. 1
    Tamanho da VM do nó TX Tamanho da VM dos nós de transação. Standard_A1
    Tipo de conta de armazenamento TX Desempenho do armazenamento dos nós de transação. Standard_LRS
    Dados do consórcio O URL que aponta para os dados de configuração do consórcio relevantes fornecidos pela implementação de outro membro. Este valor pode ser encontrado na saída de implementação do líder.
    Espaço de endereços da VNET de membro remoto O espaço de endereços da VNET do líder. Este valor pode ser encontrado na saída de implementação do líder.
    IP público da NVA de membro remoto O endereço IP da NVA do coordenador. Este valor pode ser encontrado na saída de implementação do líder.
    Chave partilhada de ligação Um segredo pré-estabelecido entre os membros da rede de consórcio que estão a estabelecer uma ligação de gateway.
    URL Base URL base onde obter os modelos de implementação. Utilize o valor predefinido, a menos que pretenda personalizar os modelos de implementação.
  7. Selecione Rever + criar. Após a validação bem-sucedida, selecione Criar.

A implementação pode demorar 20 minutos ou mais a concluir.

Após a conclusão da implementação, reveja o resumo da implementação de Microsoft.Template na secção de implementação do grupo de recursos. O resumo contém valores de saída utilizados para ligar membros do consórcio.

Para verificar a implementação do membro, procure o site de administração do membro. Pode encontrar o endereço do site de administração na secção de saída da implementação Microsoft.Template .

Resumo da implementação de membros

Conforme mostrado na imagem, o estado dos nós do membro não está em execução. Este estado deve-se ao facto de a ligação entre membro e líder não estar estabelecida. A ligação entre membro e líder é uma ligação bidirecional. Quando implementa um membro, o modelo cria automaticamente a ligação de membro para o líder. Para criar a ligação de líder para membro, avance para o passo seguinte.

Ligar membro e líder

Este modelo cria uma ligação do líder a um membro remoto.

  1. Transfira o modelo de líder e membro de ligação a partir do GitHub.

  2. No portal de inquilinos do Azure Stack Hub, selecione + Criar uma implementação de Modelo de recurso > para implementar a partir de um modelo personalizado.

  3. Selecione Criar o seu próprio modelo no editor para editar o novo modelo personalizado.

  4. No painel de edição à direita, copie e cole o modelo de membro do consórcio JSON que transferiu anteriormente.

  5. Selecione Guardar.

  6. Conclua as seguintes definições.

    Nome do parâmetro Descrição Valor da amostra
    Subscrição A subscrição para a qual pretende implementar a rede do consórcio. Subscrição de Consumo
    Grupo de recursos O grupo de recursos para o qual pretende implementar a rede do consórcio. EthereumResources
    Region A região do Azure para recursos. local
    Prefixo de nome de membro Cadeia utilizada como base para atribuir nomes aos recursos implementados. Utilize um máximo de seis carateres alfanuméricos. eth
    Nome da tabela de rotas de membro Nome da tabela de rotas do líder. Este valor pode ser encontrado na saída de implementação do líder.
    Espaço de endereços da VNET de membro remoto Espaço de endereços do membro. Este valor pode ser encontrado na saída de implementação do membro.
    IP público da NVA de membro remoto O endereço IP da NVA ao qual se ligar. Este valor pode ser encontrado na saída de implementação do membro.
    Chave partilhada de ligação Um segredo pré-estabelecido entre os membros da rede de consórcio que estabelecem uma ligação.
    IP privado da NVA membro O endereço IP da NVA do membro. Este valor pode ser encontrado na saída de implementação do membro.
    URL Base URL base onde obter os modelos de implementação. Utilize o valor predefinido, a menos que pretenda personalizar os modelos de implementação.
  7. Selecione Rever + criar. Após a validação bem-sucedida, selecione Criar.

Após a conclusão da implementação, o coordenador e o membro demoram alguns minutos a iniciar a comunicação. Para verificar a implementação, atualize o site de administração do membro. O estado dos nós do membro deve estar em execução.

Verificar a implementação

Passos seguintes

Para saber mais sobre o Ethereum e o Azure, veja Tecnologia e Aplicações de Blockchain.