Preparando Ambiente de Desenvolvimento Starknet
Introdução
Para começar a desenvolver smart contracts para a Starknet, nós iremos precisar configurar nosso ambiente de desenvolvimento que é composto basicamento do nosso compilador e gerenciador de pacotes Scarb, a ferramenta de testes Starknet Foundry e uma rede local de testes chamada starknet-devnet.
Para instalar o scarb eu já tenho um tutorial que você pode conferir neste link. Para instalar o starknet foundry você pode conferir por este outro link. Agora para instalar a rede de teste local, basta seguir com o tutorial.
1. Instalação
Para instalar a starknet-devnet é necessário que tenhamos o gerenciador de pacotes do Rust chamado cargo. É através dele que iremos fazer o download e instalação da rede de testes.
2.1 Linux
Para realizar o download e instalação do cargo no Linux, basta executar este comando no terminal:
curl https://sh.rustup.rs -sSf | sh
Reinicie o terminal e verifique se a interface de linha de comando (cli) do cargo é reconhecida normalmente:
2.2 Windows
No Windows a instalação é mais trabalhosa, mas é possível, irei abordar todos os passos. Primeiro devemos instalar o rustup (gerenciador de versões do Rust), você pode encontrar o link para download aqui no site ofical ou clicando direto neste link.
O rustup necessita de depêndencias contidas no Visual Studio para poder funcionar, caso você não tenha instalado na sua máquina, ele irá sugerir algumas formas de instalação, podemos prosseguir com a opção 1:
Prossiga com a instalação do Visual Studio Installer:
Com o instalador baixado agora podemos dar início a instalação das dependências:
Após a instalação das dependências você poderá prosseguir com a instalação padrão do rustup na opção 1:
Após instalado você deverá ver a mensagem abaixo:
Depois de reinicar o terminal você já deverá ser capaz de ver o cargo sendo reconhecido no terminal.
3. Starknet-devnet
Agora para finalizar com a instalação do starknet-devnet, tanto no Linux quanto no Windows, basta executar o seguinte comando: > cargo install starknet-devnet. A instalação é um pouco demorada, se não apresentar nenhum erro durante a instalação, você já poderá digitar: starknet-devnet no terminal e a saída deverá ser algo como:
4. O Caminho Não Feliz :(
Se você fez a instalação pelo Linux, neste momento já deve estar tranquilo sorrindo de orelha a orelha, já pode ir embora mais cedo. Se você está com o Windows e com sorte, sua instalação do starknet-devnet também foi bem sucedida e você também está liberado. Agora se você está com o Windows mas com pouca sorte, então você deverá pegar uma coca-cola e esperar um pouco mais na cadeira.
Se durante a instalação você foi surpreendido com um erro de OpenSSL, então ainda temos uma caminhada pela frente.
1º Baixe e instale o gerenciador de pacotes chamado vcpkg:
cd C:\
git clone https://github.com/microsoft/vcpkg
cd vcpkg
vcpkg\bootstrap-vcpkg.bat
2º Para não precisarmos mexer nas variáveis de ambiente, navegue pelo terminal até a pasta onde se encontra o executável vcpkg.exe e execute o seguinte comando:
vcpkg install openssl:x64-windows-static
3º Visite este link e baixe o arquivo cacert.pem. Dentro da pasta de instalação “vcpkg\packages\openssl_x64-windows”, crie uma pasta de nome certs, e dentro dela cole o arquivo baixado.
4º Ainda está comigo? Força, ainda estamos na metade do caminho :D. Agora iremos definir algumas variáveis de ambiente:
set OPENSSL_NO_VENDOR=1
set RUSTFLAGS=-Ctarget-feature=+crt-static
set SSL_CERT_FILE=C:\vcpkg\packages\openssl_x64-windows\certs\cacert.pem
set OPENSSL_DIR=C:\vcpkg\packages\openssl_x64-windows
PS: O script acima não é como se define variáveis de ambiente no Windows, ilustra apenas o nome da variável e conteúdo que deve ter dentro dela. Se você não sabe como fazer isso no Windows, sugiro buscar um material externo.
5º Fazendo essas modificações, reinicie o terminal e tente novamente executar o comando de instalação do starknet-devnet. O erro de instalação do openssl não deve mais aparecer e a instalação deverá rodar lisa até 99,99%, quando você deve ser surpreendido por outro erro (até a data desta publicação):
6º Que terrível! No código de execução da starknet-devnet ele faz a importação de um módulo unix que só existem em sistemas Unix, e nós estamos no Windows. Para contornar este erro precisaremos fazer uma alteração diretamente no código. Veja que no output do error ele indica precisamente onde está o arquivo que lançou o erro. Abra este arquivo no seu editor de texto. Na linha 25 faça a seguinte alteração:
7º Com essa alteração o compilador agora só tentará importar o módulo unix se de fato estiver em um sistema Unix. Nas linhas 28 e 29 colocamos essa instrução porque agora o sistema precisa saber como lidar com a execução em um sistema Windows. Portanto, mais abaixo no código devemos duplicar a função create_block_interval(), pois ela faz uso da função signal do módulo unix, então precisamos implementá-la para utilizar uma função similar chamada ctrl_c do módulo windows. A partir da linha 241 faça a seguinte modificação:
8º Finalmente, ao realizar essas alterações, a instalação deve ser bem sucedida e você estará apto a executar a starknet-devnet no Windows através do seu Powershell. Veja com seus próprios olhos:
Conclusão
Após a execução das instruções passadas você já deverá contar com um ambiente de desenvolvimento starknet preparado com compilador e gerenciador de pacotes Scarb, ferramente de testes Starknet Foundry e rede local de testes starknet-devnet.
Referências