Preparando Ambiente de Desenvolvimento Starknet

Müller Esposito
Starknet in Brazil
Published in
5 min readAug 28, 2024

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

--

--