Forma simples e elegante de desenvolver/implantar contratos inteligentes e muito mais!
Hoje, vamos falar sobre uma incrível ferramenta de desenvolvimento Ethereum, que mudará sua vida como desenvolvedor Ethereum para sempre 😎
O sbt é uma ferramenta de compilação de código aberto para projetos Scala e Java, semelhante ao Maven e ao Ant do Java.
O sbt-ethereum é uma ferramenta incrível para que desenvolvedores e amadores comecem a desenvolver em Ethereum em minutos.
O sbt-ethereum tem os seguintes objetivos:
- Uma plataforma interativa baseada em texto com a qual os "amadores" - pessoas que não são programadores, mas que estão dispostas a dedicar um pouco de tempo para aprender - podem interagir com a Ethereum (e outras blockchains compatíveis) e fazer isso com muito poder e sofisticação.
- Uma ferramenta de publicação para aplicativos de contrato inteligente da Ethereum, pois os repositórios
sbt-ethereum
se esforçam para serem portáteis e para permitir a implantação de novas instâncias de contrato inteligente e a interação conveniente com contratos inteligentes já implantados. - Para aqueles que são (ou desejam se tornar!) programadores, um ambiente de desenvolvimento avançado para contratos inteligentes da Ethereum
- Uma ferramenta de integração que facilita o desenvolvimento de bibliotecas e aplicativos Scala de alto desempenho que interagem com os contratos inteligentes da Ethereum.
Se você for um desenvolvedor iniciante, o principal atrito ocorre durante a configuração do novo projeto/tecnologia. O sbt
reduz o atrito e ensina como trabalhar com o blockchain da Ethereum usando a interface de linha de comando (CLI).
Linha de comando? Não é difícil?
Não, o sbt
mantém as coisas básicas e gerencia muitas coisas nos bastidores para manter a simplicidade.
O que o sbt-ethereum oferece?
- Funcionalidade de carteira
- Funcionalidade de desenvolvimento de contratos inteligentes
- Interações com a blockchain Ethereum
- Suporte ENS
- Integração com Etherscan
Sim! Tudo o que foi dito acima pode ser feito por meio da linha de comando. Agora vamos ver o sbt-ethereum em ação.
Instalação
Usaremos o Ubuntu (se você estiver usando o Windows, siga estas instruções).
Clone este repositório do GitHub:
git clone https://github.com/swaldman/eth-command-line.git --branch 0.1.10
Agora, entre no diretório:
$ cd eth-command-line
Se você escrever ls, poderá ver os arquivos abaixo:
$ ls
LICENSE README.md build.sbt project sbtw
Aqui, o sbtw
é um script de wrapper que instalará o sbt
.
$ ./sbtw
Como o sbt-ethereum é uma ferramenta interativa, durante a instalação, ele fará algumas perguntas para configurar sua carteira. Você também pode configurar uma carteira mais tarde, mas, por enquanto, você verá perguntas como 👇
There are no wallets in the sbt-ethereum keystore. Would you like to generate one? [y/n] y
Would you like the new address '0x1144f4f7aad0c463c667e0f8d73fc13f1e7e86a2' to be the default sender on chain with ID 1? [y/n] y
Executando comandos no sbt-ethereum
O sbt-ethereum busca a simplicidade e fornece comandos fáceis de ler. Por exemplo, ele usa ethAddressAlias
em vez de algo como etaa
, eta
. Isso faz com que os comandos sejam maiores e difíceis de digitar, e é por isso que o sbt
oferece suporte à funcionalidade de completar automaticamente por guias. Você pode conferir a lista completa de comandos do sbt aqui.
Fazendo backups
Suas carteiras e aliases de endereço, bem como outras informações, como seu histórico de transações, compilações de contratos inteligentes e ABIs de contratos com os quais você interage, são armazenados na "shoebox" (caixa de sapato) do sbt-ethereum, a qual você deve adquirir o hábito de fazer backup. Portanto, usando o comando ethShoeboxBackup
(que não recebe argumentos).
O comando é interativo. Ele solicitará um diretório no qual gostaríamos de armazenar os backups (que serão mantidos - na shoebox! - para reutilização futura opcional). Forneça um diretório adequado ao seu sistema. Talvez você queira fazer o backup em um pen drive ou disco externo para que, se algo acontecer com o disco rígido do seu computador, você tenha uma cópia em outro lugar.
Podemos restaurar nossa shoebox, se algo ruim acontecer, a partir do arquivo gerado usando o ethShoeboxRestore
.
Conecte seu QuikNode ao sbt-ethereum
Podemos conectar nosso nó Ethereum ao sbt-ethereum (o sbt pode ter um nó ETH padrão que você pode usar para testes, mas a documentação recomenda o uso de um nó pessoal para garantir a confiabilidade e o desempenho).
Inscreva-se no QuikNode se quiser ter a melhor e mais rápida experiência de interação com um nó da Ethereum.
Lembre-se de que você pode usar TAB
para completar seus comandos. Vamos nos conectar ao nosso nó Ethereum (mascarei meu URL QuikNode Web3, você pode obter o seu aqui).
sbt:eth-command-line> ethNodeUrlDefaultSet [https://xxxx-xxxx-xxxx.quiknode.io/uuid/token/](https://xxxx-xxxx-xxxx.quiknode.io/uuid/token/)
Para verificar o URL do nó atual, vamos executar o comando para verificar o número do bloco mais recente:
sbt:eth-command-line> ethNodeBlockNumberPrint
Você pode substituir ou alterar a configuração padrão do Nó sempre que desejar.
Para isso, o sbt
fornece os seguintes comandos:
ethNodeBlockNumberPrint ethNodeChainId ethNodeChainIdDefaultDrop ethNodeChainIdDefaultPrint ethNodeChainIdDefaultSet
ethNodeChainIdOverride ethNodeChainIdOverrideDrop ethNodeChainIdOverridePrint ethNodeChainIdOverrideSet ethNodeChainIdPrint
ethNodeUrl ethNodeUrlDefaultDrop ethNodeUrlDefaultPrint ethNodeUrlDefaultSet ethNodeUrlOverride
ethNodeUrlOverrideDrop ethNodeUrlOverridePrint ethNodeUrlOverrideSet ethNodeUrlPrint
Usando o Alias
Todo mundo sabe que trabalhar com endereços pode ser problemático. Nós, seres humanos, não fomos projetados para trabalhar com valores hexadecimais (as máquinas, sim), portanto, lembrá-los ou até mesmo combiná-los corretamente pode ser difícil. É por isso que o sbt
usa aliases para endereços. Ele já adicionou um alias para seu endereço padrão: para verificá-lo, execute o comando abaixo:
sbt:eth-command-line> ethAddressAliasList
Você verá um "default-sender" na frente do seu endereço. Para adicionar um novo alias a um endereço ou a um alias existente, basta usar este comando:
ethAddressAliasSet new-name default-sender
Para verificar um alias, você pode executar o ethAddressAliasList
novamente.
Comandos da carteira
Para gerenciar carteiras, endereços e chaves, vamos verificar alguns comandos fornecidos pelo sbt
.
Criar uma nova carteira
ethKeystoreWalletV3Create
Esse comando cria uma nova carteira JSON eth-rpc "v3" que representa um endereço Ethereum e uma chave privada criptografada por senha no repositório de chaves "shoebox" do sbt-ethereum.
O comando ethKeystoreList
exibe os endereços Ethereum no repositório de chaves "shoebox" do sbt-ethereum e todos os aliases associados a esses endereços.
Para verificar a chave privada de sua carteira, use o comando abaixo:
ethKeystorePrivateKeyReveal <hex address> or <alias-name>
Importação de carteira
Há várias maneiras de importar uma carteira para o sbt
. Vamos ver uma a uma:
- Uso de chaves privadas - você pode importar uma carteira para o
sbt
usando chaves privadas
ethKeystoreWalletV3FromPrivateKeyImport
- Usando o eth-rpc v3 JSON
>ethKeystoreWalletV3FromJsonImportV3 Wallet JSON: {"address":"d78fe1d978ad8cc5a94484725d059bec694f215e","crypto":{"mac":"98c53c7d05c7daeb1b8d2bef6af8643bf679a73a34d014f09a45f7035088f89b","kdf":"pbkdf2","cipherparams":{"iv":"70c4340f5305dca3fad9e54d47db4a2b"},"ciphertext":"9a2fc0212827877068d5a54f0ad64fab8767d52849535305e984682db25be23d","cipher":"aes-128-ctr","kdfparams":{"salt":"b9562670465f5ec13a4babe91aea6bd41d3400dfb0f97b1fb21617cbd62e9782","dklen":32,"c":262144,"prf":"hmac-sha256"}},"id":"f2f3bad7-4da0-424b-a363-fde7a6e3cb49","version":3}
[info] Imported JSON wallet for address '0xd78fe1d978ad8cc5a94484725d059bec694f215e', but have not validated it.
[info] Consider validating the JSON using 'ethKeystoreWalletV3Validate 0xd78fe1d978ad8cc5a94484725d059bec694f215e'.
[success] Total time: 3 s, completed Mar 16, 2019 12:35:14 AM
Sempre valide sua carteira após a importação! Para validar a carteira, use o comando abaixo:
ethKeystoreWalletV3Validate <address-hex> or <alias-name>
Para imprimir o JSON da carteira (v3), execute o comando abaixo:
ethKeystoreWalletV3Print <address-hex> or <alias-name>
Conclusão
O sbt
oferece funcionalidades avançadas e vamos nos aprofundar mais nelas em artigos futuros. Podemos criar contratos inteligentes e também nomes ENS usando a ferramenta de linha de comando sbt
. No próximo artigo, criaremos, implantaremos e leremos um contato inteligente usando o sbt-ethereum
.
Leitura adicional:
- Método para a Loucura do sbt-ethereum
- Avisos e limitações do sbt-ethereum
- Lista de comandos do sbt-ethereum
Sobre a QuikNode
A QuikNode está construindo uma infraestrutura para dar suporte ao futuro da Web3. Desde 2017, trabalhamos com centenas de desenvolvedores e empresas, ajudando a dimensionar dApps e fornecendo nós Ethereum de alto desempenho. Estamos trabalhando em algo interessante nos últimos meses e lançaremos em breve, então assine nosso boletim informativo para obter mais atualizações!!! 😃
Artigo escrito por Gaurav Agrawal . A versão original pode ser encontrada aqui. Traduzido e adaptado por Dimitris Calixto.
Latest comments (0)