

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)](https://aws.amazon.com/managed-blockchain/). Para saber mais sobre como começar a usar o Amazon Managed Blockchain, veja o nosso [workshop sobre o Hyperledger Fabric](https://catalog.us-east-1.prod.workshops.aws/workshops/008da2cb-8454-42d0-877b-bc290bff7fcf/en-US) ou o nosso [blog sobre a implantação de um nó Ethereum](https://aws.amazon.com/blogs/database/deploy-an-ethereum-node-on-amazon-managed-blockchain/). Se você tiver dúvidas sobre o AMB ou precisar de mais suporte, [entre em contato com Suporte](https://console.aws.amazon.com/support/home#/case/create?issueType=technical) nossa equipe de AWS contas.

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
<a name="blockchain-templates-hyperledger"></a>

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](https://hyperledger-fabric.readthedocs.io/en/release-1.1/). Para obter mais informações sobre chaincode, consulte o tópico [Chaincode para desenvolvedores](https://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html) na documentação do [Hyperledger Fabric](https://hyperledger-fabric.readthedocs.io/en/release-1.1/).

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
<a name="blockchain-hyperledger-launch"></a>

Consulte [Getting Started with AWS Blockchain Templates](https://aws.amazon.com/blockchain/templates/getting-started/) para obter links para lançamento CloudFormation em regiões específicas usando os modelos do Hyperledger Fabric.

## AWS Blockchain Template para componentes do Hyperledger Fabric
<a name="blockchain-hyperledger-architecture"></a>

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:

![\[AWS architecture diagram showing EC2 instance with containers in a VPC, connected to ECR and S3.\]](http://docs.aws.amazon.com/pt_br/blockchain-templates/latest/developerguide/images/hyperledger-docker-local-arch.png)


## Pré-requisitos
<a name="blockchain-hyperledger-prerequisites"></a>

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](#blockchain-hyperledger-ec2profile).
+ 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
<a name="blockchain-hyperledger-ec2profile"></a>

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.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "ecr:ListImages",
                "ecr:DescribeImages",
                "ecr:BatchGetImage",
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Conectando-se aos recursos do Hyperledger Fabric
<a name="blockchain-hyperledger-connecting"></a>

Quando a pilha raiz que você criou com o modelo exibir **CREATE\$1COMPLETE**, 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html), 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](blockchain-templates-ethereum.md#ethereum-create-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
<a name="hyperledger-create-bastion-host"></a>

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](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html) 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. *BastionIP*Substitua 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 -i mySshKey.pem  ec2-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.