WEB3DEV

Cover image for Implantando o Sandbox em uma VM Linux no Azure - Algorand
Panegali
Panegali

Posted on

Implantando o Sandbox em uma VM Linux no Azure - Algorand

A prevalência da computação em nuvem é inegável e está crescendo cada vez mais. Este tutorial fornecerá as informações necessárias para que qualquer pessoa, de qualquer nível de experiência, configure um ambiente de desenvolvimento para a blockchain Algorand em execução no Azure. Acredito que esta é a melhor maneira de começar com o desenvolvimento da Algorand, pois fornece um ambiente fechado para testar e experimentar. Este também é o primeiro passo para se envolver no ecossistema de desenvolvimento Algorand muito mais amplo.

Requisitos

  • Tenha uma conta no Azure com uma assinatura ativa: crie uma conta
  • Tenha um terminal habilitado para SSH. Se você estiver no Windows, o Windows Terminal é recomendado.
  • Crie um par de chaves SSH: Guia 1, Guia 2
  • Conheça sua chave pública SSH

Passos

  1. Criando e configurando a máquina virtual
  2. Conectando-se à máquina virtual
  3. Instalando o Docker Engine
  4. Instalando o Docker Compose
  5. Adicionando-nos ao grupo Docker
  6. Instalando o Sandbox
  7. Próximos passos
  8. Desmontar
  9. Repositório do GitHub

Criando e configurando a máquina virtual

Com o poder dos modelos do Azure, esta etapa pode ser ignorada se você estiver familiarizado com o Azure. Haverá instruções no repositório associado, que pode ser acessado na parte inferior da página, para usar um modelo do Azure para configurar esse ambiente de máquina virtual em poucos minutos! No entanto, se você não estiver familiarizado com o Azure, recomendo que você siga esta seção, pois ela servirá de base para configurar recursos adicionais em tutoriais futuros.

Criar a máquina virtual

Comece logando no portal do Azure: https://portal.azure.com/

Se for a primeira vez que você faz login, sua tela pode parecer um pouco diferente, mas isso não é um problema. Procure um botão que diz “Create a resource” conforme mostrado na Figura 1-1. Isso também pode ser acessado a partir do menu suspenso no canto superior esquerdo, se necessário.

1

Figura 1-1 : Criar um recurso

Como você deve ter esperado, agora você verá a tela para criar um recurso. Existem muitas opções padrão para escolher, mas estaremos criando um recurso Ubuntu Server 20.04 LTS, conforme mostrado na Figura 1-2. No momento da redação deste tutorial, é uma recomendação padrão fornecida pelo Azure, mas sempre pode ser pesquisada se tiver problemas para encontrá-la.

2

Figura 1-2 : Ubuntu Server 20.04 LTS

Sob o recurso, clique no botão “Create e você será movido para outra tela. Agora estaremos definindo as partes configuráveis ​​desta máquina virtual. Exceto quaisquer alterações na interface do usuário, nome da assinatura ou campos padrão de preenchimento automático, sua tela deve ser semelhante à da Figura 1-3. Ao concluir as próximas ações, seus campos também devem ser preenchidos de forma semelhante aos da Figura 1-3.

3

Figura 1-3 : Crie uma máquina virtual

Em primeiro lugar, você vai querer criar um novo grupo de recursos. Os grupos de recursos são uma maneira conveniente de organizar recursos no Azure. Vamos nomear nosso grupo de recursos como SandboxResourceGroup. Faça isso clicando em “Create new” em grupo de recursos e inserindo o nome. Isso pode ser visto na Figura 1-4.

4

Figura 1-4 : Criar novo grupo de recursos

Em seguida, clique em Ok para que possamos prosseguir com a nomeação da própria máquina virtual. Vamos nomear nossa máquina virtual SandboxVM porque ela é clara e concisa. Como moro na Filadélfia, definirei a região da minha máquina virtual como Leste dos EUA. No entanto, é melhor configurá-la para uma região próxima a você para baixa latência.

A partir daqui, deixaremos as próximas configurações em seu padrão e passaremos para Size. Este é um passo crucial. Apenas algumas máquinas virtuais no Azure dão suporte à virtualização aninhada e isso é necessário para usar o Algorand Sandbox. No estilo típico da Microsoft, há informações limitadas disponíveis sobre quais máquinas virtuais oferecem suporte à virtualização aninhada. Para este tutorial, listarei as máquinas virtuais que atualmente oferecem suporte à virtualização aninhada. No entanto, aqui está o único recurso que indica o suporte à virtualização aninhada: https://azure.microsoft.com/en-us/blog/nested-virtualization-in-azure/ caso você precise acessá-lo. A lista de máquinas que atualmente suportam virtualização aninhada pode ser vista na Figura 1-5.

5

Figura 1-5 : Tamanhos de máquina que suportam virtualização aninhada

Usaremos D2s_v3 (também indicado como Standard_D2s_v3) porque 8 GB de RAM serão úteis com a virtualização aninhada, mas praticamente não há diferença entre estas opções. Qualquer um desses quatro servirá perfeitamente às nossas necessidades. (Dica: clique em See all sizes na opção size para ver a lista completa)

A etapa final na criação de nossa máquina virtual será decidir como gostaríamos de definir nossa conta de administrador. Conforme indicado nos requisitos, usaremos a chave SSH pública do nosso computador pessoal para autenticar. Eu faço isso selecionando SSH public key como o tipo de autenticação, definindo o Username como meu nome, wes, definindo SSH public key source como Use existing public key, e, finalmente, copiando minha chave pública SSH pessoal para o campo fornecido. Por favor, anote o Username usado porque ele será usado posteriormente para conectar-se à máquina virtual (ortografia exata). Se você seguiu estas etapas, as configurações da sua conta de administrador devem ser semelhantes à Figura 1-6.

6

Figura 1-6 : Conta de administrador

Concluímos agora a configuração inicial da nossa máquina virtual. Para o restante das configurações, usaremos todas as opções padrão, portanto, não há necessidade de se preocupar com elas. Há muito mais que uma máquina virtual precisa para ser executada, mas o Azure faz o trabalho pesado para nós. Agora estamos prontos para revisar as configurações de nossa máquina virtual. Você deve ter notado que o Azure está avisando sobre uma porta SSH exposta (com razão!). No entanto, este é um ambiente de desenvolvimento, portanto, não há necessidade de se preocupar. Em um tutorial futuro, haverá orientações sobre como proteger esses recursos dentro de uma rede virtual por meio de acesso VPN. Por enquanto, você pode ir em frente e clicar em Review and Create no canto inferior esquerdo, como mostrado na Figura 1-7.

7

Figura 1-7 : Revisar + criar

Você será recebido por uma tela onde poderá ver os preços da máquina virtual por hora, definir alguns detalhes de contato e revisar as opções de configuração da máquina virtual. Não alteramos nenhuma configuração fora da configuração básica, portanto, dê uma olhada rápida e certifique-se de que suas configurações sejam semelhantes às configurações da Figura 1-8.

8

Figura 1-8 : Opções básicas

Nesta tela, sua Subscription será diferente da minha. Sua região pode ser diferente se você a definir para um local diferente próximo a você. Seu Size pode ser diferente se você optar por não usar o D2s_v3. Por fim, Username provavelmente será diferente, a menos que seu nome também seja wes.

Aviso: a conclusão da etapa a seguir começará imediatamente a incorrer em cobranças em sua assinatura do Azure. Por favor, entenda as implicações disso antes de continuar.

Se tudo estiver de acordo com as especificações, vá em frente e clique em Create no canto inferior esquerdo!

Você passará rapidamente para uma nova tela onde poderá ver o progresso de sua implantação. Durante essa implantação, você não apenas criará uma máquina virtual, mas também a infraestrutura de suporte para ela. Esse processo criará seis recursos no total e eles podem ser vistos na guia Deployment details.

  • A máquina virtual - esta é a “máquina” real na qual seu servidor estará sendo executado. Ela hospedará todo o código Sandbox. Pequena isenção de responsabilidade: não é um servidor físico, mas sim um grupo de recursos alocado de forma inteligente na nuvem.
  • Uma rede virtual - o nome é bastante auto-explicativo. Esta é uma rede que existe virtualmente, mas emula uma rede física (como sua rede wifi doméstica). Você pode controlar a maneira como elas interagem de maneira ampla ou detalhada com a Internet mais ampla.
  • Um endereço IP público - é assim que você acessará sua máquina virtual Sandbox pela Internet.
  • Um grupo de segurança de rede - é assim que você controla qual tráfego é permitido dentro e fora de sua máquina virtual Sandbox.
  • Uma interface de rede - isso traduz o tráfego público da Internet em tráfego de rede virtual.
  • Um disco - é onde todos os dados serão armazenados dentro de sua máquina virtual.

Definir as configurações de rede da máquina virtual

Quando a implantação da máquina virtual for concluída, você poderá ver o recurso, conforme representado na Figura 2-1.

9

Figura 2-1 : Vá para o recurso

Agora você chegará à página de visão geral da máquina virtual. Há muitas informações úteis aqui, mas, por enquanto, só precisamos de duas coisas aqui. Primeiro, anote o _ Public IP address_ da sua máquina virtual. Você pode anotar isso, salvá-lo no bloco de notas ou apenas lembrar onde encontrá-lo. Usaremos isso mais tarde para conectar. Em segundo lugar, precisamos acessar a guia Networking da máquina virtual para abrir três portas. Ambos estão destacados na Figura 2-2.

10

Figura 2-2 : Endereço IP público e guia Rede

Na guia de configuração Networking, precisamos adicionar uma nova regra de porta de entrada, conforme mostrado na Figura 2-3.

11

Figura 2-3 : Adicionar regra de porta de entrada

Você será recebido com uma janela lateral com algumas opções para definir. Para o nosso caso, precisamos editar apenas dois campos: Destination port ranges e Name. No momento da escrita, as portas necessárias para o Sandbox são 4001 para Algod, 4002 para Kmd e 8980 para o Indexer, mas como essas coisas tendem a mudar, sempre pode ser verificado aqui: https://github.com/ algorand/sandbox#usage. Sua nova regra de porta de entrada deve ser semelhante à Figura 2-4. Você pode clicar em Add se tudo estiver bem.

12

Figura 2-4 : Adicionar regra de segurança de entrada

Uma vez que estas regras de segurança são adicionadas, finalmente terminamos de configurar nossa máquina virtual! Agora podemos nos conectar e começar a configurar nosso Ambiente Sandbox.

Conectando-se à máquina virtual

Podemos finalmente nos conectar à nossa nova máquina virtual. Lembra quando você anotou esse endereço IP público anteriormente? Você vai precisar disto agora. Você também se lembra de quando anotou seu Username durante a configuração? Você precisa disso agora também. Depois de encontrar a nota adesiva em que foram escritas, vá para o seu terminal de escolha com recursos SSH. Vou usar o Windows Terminal para isso, mas faz pouca diferença.

Você deve estar pronto para se conectar à sua máquina virtual usando o comando ssh <username>@<public-ip address>. No meu caso específico, usarei o comando ssh [email protected], mas o seu será específico para o seu nome de usuário e o endereço IP público da máquina virtual. Ao conectar, seu cliente ssh perguntará se você confia no endpoint, confirme isso digitando y.

Agora você está conectado à sua máquina virtual! A partir daqui, instalaremos alguns recursos necessários para executar o Sandbox.

Instalando o Docker Engine

Sem entrar em muitos detalhes, o Docker Engine é o que permite que o Sandbox execute vários servidores com facilidade. O Docker é uma ferramenta muito poderosa e se você quiser ler mais sobre isto, pode fazê-lo aqui: https://www.docker.com/ No entanto, o conhecimento do Docker não é necessário para usar ou executar um ambiente Sandbox.

Como essas coisas tendem a mudar, aqui está o guia oficial sobre como instalar o Docker Engine no Ubuntu: https://docs.docker.com/engine/install/ubuntu/. No entanto, também vamos passar por isso aqui.

A primeira coisa que devemos fazer é nos conectar ao repositório do Docker. Isso nos permite atualizar e instalar facilmente o Docker. Execute os seguintes comandos na ordem:

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Enter fullscreen mode Exit fullscreen mode

Agora, podemos instalar o Docker Engine. Esta é a espinha dorsal do Docker.

sudo apt-get update
Enter fullscreen mode Exit fullscreen mode

Durante o próximo comando, ele solicitará que você aprove o tamanho da instalação. Nossa VM tem capacidade de armazenamento mais do que suficiente, então digite y para aprovar.

sudo apt-get install docker-ce docker-ce-cli containerd.io
Enter fullscreen mode Exit fullscreen mode

Agora podemos testar nossa instalação.

sudo docker run hello-world
Enter fullscreen mode Exit fullscreen mode

Você deve receber uma saudação do Docker com algumas informações sobre como ele funciona! Você pode querer evitar ter que usar sudo enquanto executa comandos, e nós vamos lidar com isso um pouco mais tarde. Primeiro vamos instalar o Docker Compose.

Instalando o Docker Compose

A explicação oficial do Docker Compose é “O Compose é uma ferramenta para definir e executar aplicativos Docker de vários contêineres”. Novamente, você não precisa entender como esta ferramenta funciona, mas essencialmente esta é a ferramenta usada para definir o Sandbox e será usada para instalar todos os componentes convenientemente.

Assim como em outras seções, aqui está o guia de instalação oficial, caso você precise: https://docs.docker.com/compose/install/. Instalar o Docker Compose é muito simples! Execute os dois comandos a seguir para instalar e nos dar acesso.

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
Enter fullscreen mode Exit fullscreen mode

Podemos testar nossa instalação executando o seguinte.

docker-compose --version
Enter fullscreen mode Exit fullscreen mode

Adicionando-nos ao grupo Docker

A única coisa que devemos fazer agora é nos adicionar ao grupo Docker. Isso é necessário para executar comandos do Docker sem privilégios de administrador e o Sandbox exige que isso funcione corretamente.

Aqui está o guia oficial para alterar as configurações do grupo: https://docs.docker.com/engine/install/linux-postinstall/ se você precisar.

Primeiro vamos criar o grupo. Você pode receber um erro dizendo que o grupo já existe, não há nada para se preocupar. Você pode prosseguir para a próxima etapa.

sudo groupadd docker
Enter fullscreen mode Exit fullscreen mode

Em seguida, vamos nos adicionar a esse grupo.

sudo usermod -aG docker $USER
Enter fullscreen mode Exit fullscreen mode

Agora vamos recarregar nossas permissões de grupo.

newgrp docker
Enter fullscreen mode Exit fullscreen mode

Por fim, podemos testar que não precisamos sudo para executar o docker com um comando anterior.

docker run hello-world
Enter fullscreen mode Exit fullscreen mode

Você deve ver a mesma pequena sinopse de saudação! Se tudo correu conforme o planejado, agora estamos prontos para colocar nosso Sandbox em funcionamento!

Instalando o Sandbox

O repositório oficial do Sandbox GitHub contém muitas informações úteis ao trabalhar com o Sandbox, como uso. No entanto, também existem outros ótimos tutoriais sobre como usar seu Sandbox, então não vou entrar nisso.

https://github.com/algorand/sandbox

Devemos primeiro baixar o repositório Sandbox.

git clone https://github.com/algorand/sandbox.git
Enter fullscreen mode Exit fullscreen mode

Agora vá para o diretório sandbox e inicie o ambiente sandbox.

cd sandbox
./sandbox up
Enter fullscreen mode Exit fullscreen mode

Como este é o primeiro lançamento, esse processo pode levar de 5 a 15 minutos! Por favor, seja paciente! Depois que esse comando for concluído, você instalou oficialmente o ambiente de desenvolvimento Sandbox. Você pode testá-lo com o seguinte

./sandbox test
Enter fullscreen mode Exit fullscreen mode

Próximos passos

  • Você pode verificar se seu grupo de recursos está configurado de forma semelhante ao meu visitando o repositório do GitHub associado a este guia. Haverá instruções para visualizar e comparar o modelo do seu grupo de recursos. Há também mais instruções sobre como implantar rapidamente um ambiente semelhante.
  • Você pode usar o sandbox em sua forma atual, que é uma réplica do sistema fechado da rede Algorand. Você pode testar todos os tipos de coisas aqui sem correr o risco de trabalhar com a rede principal da Algorand. Aqui está um tutorial que pode orientá-lo em algumas das nuances do Sandbox: https://developer.algorand.org/tutorials/exploring-the-algorand-sandbox/
  • Você pode usar o Sandbox para acessar a betanet. É aqui que são testados os recursos que eventualmente serão movidos para a rede principal da Algorand. Aqui está um ótimo tutorial sobre como fazer isto: https://developer.algorand.org/tutorials/betanet-sandbox/
  • Ambos os tutoriais estão usando a linha de comando para acessar a rede Sandbox, mas também podemos acessá-la através das APIs que expusemos! O endereço IP público que você deveria anotar será útil novamente.
  • Você pode acessar a API com sua linguagem de programação favorita usando os endpoints e tokens indicados no repositório Sandbox. No momento da escrita, eles têm os valores padrão mostrados na Figura 3-1.

13

Figura 3-1 : Pontos de extremidade do sandbox
  • Para testar essa conexão, abra uma nova guia no navegador que você está usando para ler isso e digite o seguinte na barra de URL: http://<public-ip>:4001/health. Se você receber uma única mensagem dizendo “null” significa que está funcionando! Mesmo que não pareça certo, contanto que você não receba um erro, o cliente Algod está em boas condições!

Desmontar

Então, você não quer mais seu SandboxVM. Bem, a desmontagem é bastante fácil e você sempre pode usar o modelo fornecido no repositório do GitHub para reimplantar. Vá para o SandboxResourceGroup. Você pode ver o grupo de recursos na tela inicial ou pode ter que abrir o menu do grupo de recursos. Essas opções estão destacadas na Figura 4-1.

14

Figura 4-1 : Encontrando SandboxResourceGroup

Se você abriu seus grupos de recursos, agora verá uma lista deles. Escolha SandboxResourceGroup na lista conforme mostrado na Figura 4-2.

15

Figura 4-2 : SandboxResourcegroup

Agora que você vê o grupo de recursos, deve ver um botão próximo ao topo para excluir o grupo. Olhe para a Figura 4-3 se estiver tendo problemas para encontrá-lo.

16

Figura 4-3 : Excluir grupo de recursos

Agora você será solicitado a digitar o nome do grupo de recursos e, em seguida, poderá finalmente excluir o grupo e todos os recursos associados. Eles são mostrados na Figura 4-4. Esse processo pode levar algum tempo, mas, uma vez concluído, você não terá mais cobranças em sua assinatura do Azure.

17

Figura 4-4 : Nome do grupo de recursos e Excluir

Repositório do GitHub

https://github.com/CavernaTechnologies/Azure-Algorand-Sandbox-Linux

Neste repositório do GitHub, você encontrará alguns recursos e instruções sobre como usá-los. Se você optar por implantar a máquina virtual com um modelo, ainda precisará seguir as etapas para instalar o Docker e o Sandbox, pois eles não podem ser especificados no nível do modelo.


Artigo escrito por Wesley Miller e traduzido por Marcelo Panegali

Latest comments (0)