O AWS Blockchain Templates foi descontinuado em 30 de abril de 2019. Nenhuma atualização adicional será feita para este serviço ou nesta documentação de suporte. Para obter a melhor experiência de Managed Blockchain AWS, recomendamos que você use o Amazon Managed Blockchain (AMB)
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando o AWS Blockchain Template para o Hyperledger Fabric
O Hyperledger Fabric é uma estrutura de blockchain que executa contratos inteligentes chamados de chaincode, escritos em Go. Você pode criar uma rede privada com o Hyperledger Fabric, limitando os pares que podem se conectar e participar da rede. Para obter mais informações sobre o Hyperledger Fabric, consulte a documentação do Hyperledger Fabric
O AWS Blockchain Template para o Hyperledger Fabric só oferece suporte a uma plataforma de contêiner docker-local, ou seja, os contêineres do Hyperledger Fabric são implantados em uma única instância do EC2.
Links para execução
Consulte Getting Started with AWS Blockchain Templates
AWS Blockchain Template para componentes do Hyperledger Fabric
O AWS Blockchain Template para o Hyperledger Fabric cria uma instância do EC2 com o Docker e executa uma rede da Hyperledger Fabric usando contêineres nessa instância. A rede inclui um serviço de pedidos e três organizações, cada uma com um serviço de um colega. O modelo também inicia um contêiner do Hyperledger Explorer que permite que você procure dados de blockchain. Um contêiner de servidor PostgreSQL é executado para oferecer suporte ao Hyperledger Explorer.
O diagrama a seguir descreve uma rede do Hyperledger Fabric criada usando o modelo:
Pré-requisitos
Antes de lançar uma rede do Hyperledger Fabric usando o modelo, verifique se os seguintes requisitos foram atendidos:
O princípio de IAM; (usuário ou grupo) que você utiliza deve ter permissão para trabalhar com todos os serviços relacionados.
Você precisa ter acesso a um par de chaves que pode ser usado para acessar instâncias do EC2 (por exemplo, usando SSH). A chave precisa existir na mesma região que a instância.
É necessário ter um perfil de instância do EC2 com uma política de permissões anexada que permita acesso ao Amazon S3 e ao Amazon Elastic Container Registry (Amazon ECR) para a extração de contêineres. Para um exemplo de política de permissões, consulte Exemplo de permissões IAM para o perfil de instância do EC2.
Você deve ter uma rede Amazon VPC com uma sub-rede pública ou uma sub-rede privada com um gateway NAT e endereço IP elástico para que o Amazon S3 e o Amazon ECR possam ser acessados. CloudFormation
É necessário ter um grupo de segurança EC2 com regras de entrada que permitam o tráfego SSH (porta 22) dos endereços IP que precisam se conectar à instância usando SSH, e o mesmo para os clientes que precisam se conectar ao Hyperledger Explorer (porta 8080).
Exemplo de permissões IAM para o perfil de instância do EC2
Você especifica um ARN do perfil de instância do EC2 como um dos parâmetros ao usar o AWS Blockchain Template para o Hyperledger Fabric.. Use a seguinte declaração de política como ponto de partida para a política de permissões anexada ao perfil de instância e à função do EC2.
Conectando-se aos recursos do Hyperledger Fabric
Quando a pilha raiz que você criou com o modelo exibir CREATE_COMPLETE, será possível se conectar aos recursos do Hyperledger Fabric na instância do EC2. Se você especificou uma sub-rede pública, você poderá se conectar à instância do EC2 da mesma maneira como faria com qualquer outra instância do EC2. Para obter mais informações, consulte Conectar-se à instância do Linux usando SSH, no Guia do usuário do Amazon EC2.
Se você tiver especificado uma sub-rede privada, será possível configurar e usar um bastion host em conexões de proxy para recursos do Hyperledger Fabric. Para obter mais informações, consulte Conexões de proxy usando um Bastion Host abaixo.
nota
Você pode notar que o modelo aloca um endereço IP público para a instância do EC2 que hospeda os serviços do Hyperledger Fabric. No entanto, esse endereço IP não está acessível publicamente porque as políticas de roteamento na sub-rede privada que você especifica não permitem o tráfego entre esse endereço IP e as fontes públicas.
Conexões de proxy usando um Bastion Host
Com algumas configurações, os serviços do Hyperledger Fabric podem não estar disponíveis publicamente. Nesses casos, você pode se conectar aos recursos do Hyperledger Fabric por meio de um bastion host. Para obter mais informações sobre bastion hosts, consulte Arquitetura de Bastion Host do Linux no Guia de início rápido de Bastion Hosts do Linux.
O bastion host é uma instância do EC2. Certifique-se de cumprir os seguintes requisitos:
A instância EC2 do bastion host está em uma sub-rede pública com atribuição automática de IP público habilitada e inclui gateway da internet.
O bastion host tem o par de chaves que permite conexões ssh.
O bastion host está associado a um grupo de segurança que permite o tráfego SSH de entrada dos clientes que se conectam.
O grupo de segurança atribuído aos hosts do Hyperledger Fabric (por exemplo, o Application Load Balancer, se o ECS for a plataforma de contêiner, ou a instância EC2 do host, se o docker-local for a plataforma de contêiner) permite tráfego de entrada em todas as portas a partir de fontes dentro da VPC.
Com um bastion host configurado, certifique-se de que os clientes que se conectam usem o bastion host como proxy. O exemplo a seguir demonstra a configuração de uma conexão proxy usando o Mac OS. BastionIPSubstitua pelo endereço IP da instância EC2 do bastion host e MySshKey.pem pelo arquivo key pair que você copiou para o bastion host.
Na linha de comando, digite o seguinte:
ssh -imySshKey.pemec2-user@BastionIP-D 9001
Isto configura o encaminhamento de portas para a porta 9001 na máquina local para o bastion host.
Em seguida, configure seu navegador ou sistema para usar o proxy SOCKS para localhost:9001. Por exemplo, ao usar o Mac OS, selecione System Preferences (Preferências do sistema), Network (Rede), Advanced (Avançado), selecione SOCKS proxy (Proxy SOCKS) e digite localhost:9001.
Usando o FoxyProxy Padrão com o Chrome, selecione Mais ferramentas, extensões. Em FoxyProxy Padrão, selecione Detalhes, Opções de extensão e Adicionar novo proxy. Selecione Manual Proxy Configuration (Configuração manual de proxy). Em Host or IP Address (Host ou endereço IP), digite localhost e para Port (Porta), digite 9001. Selecione SOCKS Proxy?, Save (Salvar).
Agora você deve poder conectar-se aos endereços de host do Hyperledger Fabric listados na saída do modelo.