O que é a Suíte Trufa? Recursos, como instalar, como executar contratos inteligentes

Publicados: 2020-03-24

Nos primeiros dias, quando o Blockchain apenas começou sua jornada no domínio da tecnologia convencional, você tinha que desenvolver contratos inteligentes usando a linguagem de programação Solidity e implantá-los chamando as funções geth ou solc.

Para tornar esse processo um pouco mais fácil, você precisava escrever scripts bash que primeiro compilariam e depois implantariam o contrato. Agora, embora a última abordagem fosse melhor que a primeira, era bastante rudimentar, já que o script bash geralmente envolve uma falta de padronização.

Essa necessidade de criar uma estrutura de desenvolvimento e teste perfeita e otimizada para Blockchain Smart Contracts é o que deu origem ao Truffle Etheruem.

Aprenda o curso de engenharia de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Índice

O que é a Suíte Trufa?

De acordo com o Truffle Suite , o Truffle é um “ambiente de desenvolvimento de classe mundial, estrutura de teste e pipeline de ativos para blockchains usando a Ethereum Virtual Machine (EVM), com o objetivo de facilitar a vida de um desenvolvedor”.

Em palavras simples, o Truffle é um ambiente de desenvolvimento, estrutura de teste e pipeline de ativos, tudo em um. Ele é baseado no Ethereum Blockchain e foi projetado para facilitar o desenvolvimento suave e contínuo de DApps (Aplicativos Distribuídos). Com o Truffle, você pode compilar e implantar contratos inteligentes, injetá-los em aplicativos da Web e também desenvolver front-end para DApps. Hoje, o Truffle é um dos IDEs mais usados ​​para Ethereum Blockchain.

A Truffle Suite é composta por três elementos principais:

  • Truffle – O ambiente de desenvolvimento real que integra compilação, teste e implantação de contratos inteligentes.
  • Ganache – É um simulador Blockchain implantado localmente. O Ganache apresenta uma interface gráfica de usuário que pode simular redes Blockchain e testar contratos inteligentes ao vivo sem exigir que você configure redes de teste reais ou use uma rede remota.
  • Drizzle – É uma variedade de bibliotecas front-end que oferecem componentes úteis para o desenvolvimento de aplicativos da Web que podem se conectar perfeitamente aos contratos inteligentes.

Leia: Como se tornar um desenvolvedor Blockchain - um guia para iniciantes

Quais são as características do Trufa?

Os recursos que tornam o Truffle Etheruem um dos IDEs mais usados ​​para Ethereum Blockchain são:

  • Possui suporte integrado para compilar, implantar e vincular contratos inteligentes.
  • Ele permite testes automatizados de contrato com Mocha e Chai.
  • O Truffle Console permite que você trabalhe com seus contratos compilados sem problemas.
  • Ele tem um pipeline de compilação configurável que oferece suporte a aplicativos de console e aplicativos da Web.
  • Ele vem com suporte integrado para JavaScript, CoffeeScript, SASS, ES6 e JSX.
  • Possui geradores que auxiliam na criação de novos contratos e testes (por exemplo, geração de trilhos).
  • Possui um executor de scripts que permite executar arquivos JS/Coffee, incluindo seus Smart Contracts.
  • Permite a reconstrução instantânea de ativos durante o estágio de desenvolvimento.
  • Ele permite a compilação e implantação de contratos usando sua escolha preferida de cliente RPC.
  • Ele suporta gerenciamento de rede e de pacotes.

Como instalar o Truffle Ethereum?

Você pode instalar o Truffle Ethereum usando o Node Package Manager (npm). Primeiro, você precisa configurar o NPM no seu computador e depois instalar o Truffle. Para fazer isso, você precisa abrir o terminal e digitar o seguinte:

npm install -g trufa

Em máquinas Linux, no entanto, pode ser necessário adicionar o prefixo “sudo” à instrução acima. Depois de instalar o framework Truffle, certifique-se de baixar e instalar o simulador de blockchain Ganache. Você pode visitar o site oficial da Ganache – ele contém instaladores para as plataformas mais populares.

Agora que você instalou o Truffle com sucesso, você pode iniciar um projeto Truffle de duas maneiras. Para criar um projeto simples, você pode digitar a seguinte instrução:

trufa inicial

No entanto, você também pode usar o comando unbox Truffle para criar um projeto com código existente. Por exemplo, você pode criar um token assim:

trufa unbox metacoin

Ao executar este comando, um projeto será criado a partir de uma caixa Truffle. Você pode encontrar muitas caixas de trufas no site oficial. Eles contêm código clichê e todas as configurações necessárias para construir projetos e lançá-los rapidamente.

A estrutura de um projeto de trufas

A pasta Truffle que você criar será mais ou menos assim:

├── contratos

│ ├── ConvertLib.sol

│ ├── MetaCoin.sol

│ └── Migrations.sol

├── migrações

│ ├── 1_initial_migration.js

│ └── 2_deploy_contracts.js

├── teste

│ ├── TestMetacoin.sol

│ └── metacoin.js

├── trufa-config.js

└── trufa.js

Agora, discutiremos em detalhes sobre as diferentes subpastas contidas em sua pasta Truffle.

Pasta de contratos

A pasta Contratos é onde todos os seus contratos inteligentes são armazenados. Nesta pasta, há também um arquivo especial conhecido como arquivo Migrations.sol. Normalmente, quando o Truffle compila seu projeto, ele navega pela pasta Contratos para compilar todos os arquivos compatíveis.

Pasta de migrações

A migração de trufas refere-se a um script que define como seus contratos inteligentes serão implantados no Ethereum Blockchain. As migrações são essenciais porque, à medida que seu projeto se torna mais complexo, a complexidade de suas implantações também aumenta. Graças ao Truffle Migrations, você pode automatizar o processo de implantação de Smart Contracts de forma sequencial.

Se você olhar para trás na estrutura de pastas do Truffle, verá um arquivo chamado 1_initial_migration.js . Este arquivo implanta o contrato Migrations.sol no Ethereum Blockchain.

As migrações permitem que você:

  • Defina o limite máximo de gás para implantações
  • Modifique ou altere o endereço das implantações.
  • Chame funções de contrato arbitrárias.
  • Implantar bibliotecas

Pasta de teste

Quando se trata de contratos inteligentes, o teste é obrigatório! Felizmente, o Truffle possui uma estrutura de teste integrada que permite escrever testes em Solidity ou JavaScript. Se você escrever seus testes no Solidity, você deve importar os Smart Contracts para os testes com a diretiva de importação do Solidity, assim:

import “../contracts/MetaCoin.sol”;

No entanto, se você estiver escrevendo testes em JavaScript, será necessário importá-los usando a função auxiliar artifacts.require() , assim:

var MetaCoin = artefatos.require(“./MetaCoin.sol”);

Arquivo de configuração

O arquivo de configuração, também conhecido como trufa.js ou trufa-config.js, define como o Truffle pode se conectar às redes Ethereum junto com o seguinte:

  • Ambientes – Permite definir o endereço da nota geth, o network_id, o limite máximo de gás para implantação e o preço do gás que você está disposto a pagar.
  • Estrutura do projeto – Você pode alterar o local onde os arquivos são criados e armazenados.
  • Versão e configurações do compilador – Você pode corrigir a versão do solc e definir os parâmetros -O (otimização).
  • Gerenciamento de pacotes – Truffle é compatível com EthPM (Ethereum Package Manager). Você pode configurar dependências para EthPM para seus projetos do Truffle.
  • Descrição do projeto – Indica quem desenvolveu o projeto, especifica o nome do projeto, endereços de contato e assim por diante.

Leia também: Ideias de projetos Blockchain para iniciantes

Como executar contratos inteligentes?

Aqui estão as diferentes maneiras de executar contratos inteligentes –

  • Para compilar contratos inteligentes, você deve executar o seguinte código:

compilação de trufas

  • Para executar migrações, você deve usar o seguinte código:

migração de trufas

Você também pode fazer isso mencionando um ambiente específico:

trufa migrar – rede ao vivo

  • Para testar contratos inteligentes, você pode executar o seguinte código:

teste de trufas

Você também pode executar um teste específico usando o seguinte código:

teste de trufas ./path/to/FileTest.sol

Neste post, pretendemos dar a você a ideia básica do Truffle Etheruem e como ele funciona. O Truffle é uma ferramenta poderosa que torna o desenvolvimento de DApps e Smart Contracts muito mais conveniente, trazendo as práticas de desenvolvimento padrão para a imagem do Blockchain.

Empacotando

Há um aumento nas carreiras na tecnologia blockchain e blockchain mudou tremendamente a própria face da indústria de tecnologia para sempre. Se você estiver interessado em se tornar um desenvolvedor de blockchain e criar contratos inteligentes e chaincodes, faça o check-out do programa de certificação avançado do IIIT-B & upGrad em tecnologia blockchain .

O que é Vyper no Ethereum?

Vyper é uma linguagem de programação Python orientada a contratos, estatisticamente tipada, que tem como alvo o Ethereum Virtual World. Foi concebido como uma melhoria em relação ao Solidariedade. Os principais princípios e objetivos do Vyper são segurança, linguagem e simplicidade do compilador e auditabilidade. Vyper é uma linguagem fortemente tipada e, portanto, não permite que um tipo de dados seja usado como outro. Ele vem com muitos recursos adicionais, como verificação de limites e estouros, tipagem forte, lados do compilador pequenos e compreensíveis, suporte limitado para funções puras, suporte para inteiros com sinal e números de ponto fixo decimal e decidibilidade. Ele também tem uma sintaxe simples que torna impossível para os desenvolvedores codificar programas ambíguos.

Quais são as desvantagens dos contratos inteligentes?

Os contratos inteligentes, embora tenham tantos usos e popularidade mais ampla, sofrem de muitas limitações. Existe uma boa regulamentação legal para a aplicação de contratos inteligentes, o que o torna mais propenso a ataques cibernéticos. Alterar o processo de contrato inteligente é quase impossível, pois qualquer erro de código é demorado e caro para corrigir. Embora o envolvimento de terceiros seja significativamente reduzido, não pode ser eliminado completamente. Por exemplo, os desenvolvedores precisam de advogados para entender os termos para criar códigos para contratos inteligentes. Contratos inteligentes também têm uma alta dependência de programadores e exposição a bugs, o que é uma desvantagem significativa.

O que são gerenciamento de rede e pacotes no blockchain?

Um gerenciador de pacotes ajuda você a automatizar a instalação, atualização, configuração e remoção de aplicativos. Eles são usados ​​em sistemas operacionais e ambientes de programação e ajudam a evitar o inferno da dependência. As principais funções dos gerenciadores de pacotes incluem garantir a autenticidade do pacote, baixar software de um repositório online, atualizar software existente, etc. gerenciadores baseados em blockchain, etc. Também existem gerenciadores de pacotes relacionados a blockchain. Um desses gerenciadores é o gerenciador de pacotes de nós. O NPM é o maior registro de software do mundo que permite que indivíduos utilizem recursos compartilhados por meio de seu repositório de código aberto.