Tilt

Tilt é uma ferramenta que faz parte do ecossistema oficial do Docker, projetada para facilitar a configuração de um ambiente Kubernetes para desenvolvimento.

Nota

O Tilt é frequentemente referido como "Devnet" no ecossistema Wormhole, portanto, qualquer informação rotulada como "Devnet" também se aplica ao Tilt.

No contexto do Wormhole, "Tilt" refere-se ao ambiente de desenvolvimento utilizado pelo repositório Wormhole Core. Esse ambiente disponibiliza imagens Docker para todas as ferramentas necessárias para construir em várias blockchains, incluindo:

  • Todas as blockchains e ecossistemas suportados pelo Wormhole

  • Um nó Guardian

  • Relayers

  • Bancos de dados, Redis

  • Front-ends utilitários

O ambiente Tilt é projetado para fornecer uma pilha de desenvolvimento cross-chain completa logo após a instalação.

Tilt é adequado para você?

O Tilt é uma boa opção para desenvolvedores que precisam de um ambiente de desenvolvimento local e têm acesso a uma máquina que pode suportar a execução dele. Também é uma excelente opção para desenvolvedores que querem estabelecer uma suíte de testes CI.

Prós

  • Suporte pronto para uso para os muitos componentes necessários para desenvolver em espaços de blockchain heterogêneos

  • Ambiente de desenvolvimento consistente, onde os contratos são implantados de maneira determinística, com tudo já interligado

  • Capacidade de habilitar ou desabilitar facilmente os componentes conforme necessário

  • Atualizações regulares à medida que novos componentes se juntam ao ecossistema Wormhole

Instalação do Tilt

O Tilt funciona melhor em um ambiente estilo UNIX. Para rodar o ambiente Tilt, certifique-se de que você tenha o Tilt e o Go instalados.

Instruções para MacOS

Você precisará ter o homebrew instalado no seu sistema. Você pode instalá-lo com:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Instalar Go:

brew install go

Instalar Docker:

brew install docker

Após a instalação, vá nas configurações do Docker e ative o Kubernetes. Configure também o Docker para ter 4 CPUs e cerca de 16GB de RAM.

Instalar o Tilt:

brew install tilt

Instruções para Linux

Instalar Go

Você pode instalar o Go com o seguinte comando:

wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz &&
rm -r /usr/local/go && tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz

Instalar Docker Desktop

Se você estiver usando Linux com um gerenciador de janelas, é altamente recomendado que você instale o Docker Desktop, pois ele vem com Kubernetes integrado e você não precisará baixar o Minikube. É recomendado alocar ao Docker pelo menos 4 CPUs e 16GB de RAM. Além disso, verifique se o Docker está configurado como usuário não-root. Você pode consultar essa lista de métodos de instalação do Docker.

Se você estiver usando o Docker Desktop, pode ativar o Kubernetes indo em Configurações > Kubernetes e marcando a opção para habilitar o Kubernetes.

Minikube

Como alternativa ao Docker Desktop com Kubernetes, você pode instalar o Minikube. Você pode configurar o Minikube da seguinte forma:

minikube start --driver=docker --kubernetes-version=v1.23.3 --cpus=4 --memory=14G --disk-size=10G --namespace=wormhole

Se você reiniciar sua VM, precisará rodar o comando minikube start novamente antes de levantar o Tilt.

Instalar Tilt

Você pode instalar o Tilt com o seguinte comando:

curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash

Instruções Experimentais para Linux

Este é um script experimental de instalação com um único comando.

Aviso

Isso é recomendado apenas se você estiver rodando Linux sem interface gráfica e não puder usar o Docker Desktop, pois você pode habilitar o Kubernetes a partir do Docker.

Este script experimental de configuração deve instalar as dependências para você no Linux e configurar tudo corretamente. Se não funcionar como esperado, consulte as etapas de instalação padrão do Linux acima.

curl $URL | sh install_linux.sh &&
cd wormhole/ && 
./tilt.sh

Se você tiver todos os pré-requisitos instalados, clone o repositório Wormhole Core e inicie o Tilt:

git clone --branch main https://github.com/wormhole-foundation/wormhole.git &&
cd wormhole &&
tilt up

Instruções para Máquinas Virtuais

Se você estiver rodando o Tilt em uma VM, precisará passar alguns parâmetros extras para permitir que o Tilt ouça o tráfego de endereços externos:

tilt up --host=0.0.0.0 -- --webHost=0.0.0.0

Agora você pode acessar a interface do Tilt em vm_external_ip:10350. Se o IP externo da VM não funcionar, verifique as configurações de firewall e portas para garantir que a VM permita tráfego de entrada. Certifique-se de verificar o Tiltfile, que contém boa parte da configuração e argumentos para o ambiente de desenvolvimento. É relativamente simples habilitar e desabilitar componentes. Por exemplo, você pode habilitar blockchains definindo-os como true na inicialização. Note o uso do separador -- entre as flags do comando Tilt e as flags que você deseja passar para configurar a instalação.

tilt up -- --algorand --solana

Usando o Tilt

O Tilt pode ser tratado como um ambiente externo ou Devnet que você pode facilmente subir e derrubar. Se você seguiu a configuração padrão, todos os seus recursos estarão vinculados a várias portas no localhost. Para ver todos os endpoints hospedados no seu ambiente Tilt, consulte o dashboard do Tilt, localizado em http://localhost:10350/overview.

Todos os endereços de contratos implantados podem ser encontrados na seção Devnet da cadeia sendo utilizada nas páginas de Ambientes. Informações úteis sobre carteiras financiadas e chaves privadas também podem ser encontradas no arquivo Devnet.md da documentação.

Desligando o Tilt

Para desligar o Tilt, execute o comando tilt down com as mesmas flags de rede fornecidas no comando tilt up.

tilt down -- --solana --algorand

FAQ

Onde estão Fantom, Celo, Polygon e outras cadeias EVM?

O ambiente de desenvolvimento de contratos inteligentes é efetivamente o mesmo para todas as cadeias que suportam EVM. Para mudanças nos custos de gás e tempos de transação, considere testar a lógica dos contratos no Devnet e, em seguida, usar ambientes de Testnet para obter respostas específicas da cadeia.

O Solana está demorando demais?

Devido à arquitetura do Solana, a construção do pod Solana geralmente leva de 25 a 40 minutos. Considere aumentar o número de núcleos de CPU atribuídos ao Devnet para uma construção mais rápida.

O Deploy do Programa Solana não está funcionando?

O Kubernetes atualmente não permite encaminhamento de porta para portas UDP (Issue no GitHub), o que é usado para o comando solana program deploy. Em vez disso, é recomendado usar o Solana Deployer. Isso não apenas realiza a implantação dos programas via RPC comum (eliminando a necessidade de portas UDP), mas também é muito mais rápido do que o solana program deploy.

Como posso redefinir o estado de um Pod?

Se você quiser iterar rapidamente e não deseja trazer o Tilt para baixo e subir novamente, pode redefinir o estado de um pod clicando no botão de atualização ao lado do nome do pod na interface do Tilt.

Contratos e Contas

O ambiente Devnet implanta a camada principal e o Token Bridge para cada cadeia nos mesmos endereços todas as vezes. Ele também fornece fundos para carteiras específicas.

Portas Padrão

Serviço
Porta

Guardian REST

7071

Porta gRPC do Guardian

7070

RPC do Eth0

8545

RPC do Eth1

8546

RPC do Solana

8899

Last updated