WEB3DEV

Cover image for Por que o VyperLang?
Panegali
Panegali

Posted on

Por que o VyperLang?

A alternativa Eth-lingo

O VyperLang é conhecido como a linguagem alternativa de contratos inteligentes da Ethereum e é de longe a segunda linguagem mais popular para construir contratos inteligentes na rede Ethereum.

É uma linguagem de programação tipada e orientada a contratos, que têm como alvo a Ethereum Virtual Machine (EVM) e foi construída para se assemelhar ao Python.

Grandes empresas de tecnologia, como UniswapV1, CurveFi e muitas outras, preferem usá-lo em vez de Solidity, para contratos inteligentes.

Bem, qual é a promessa?

O Vyper promete um conjunto exclusivo de recursos. Esses recursos incluem:

  1. Verificação de limites e overflow. Por causa de seus arrays dinâmicos fixos, o Vyper é capaz de economizar mais gás em chamadas de funções, pois o compilador já conhece os limites desses arrays dinâmicos.
  2. Suporte para números inteiros com sinal e números decimais de ponto fixo.
  3. Decidibilidade: Com o Vyper é possível calcular um limite superior preciso para o consumo de gás de qualquer chamada de função.
  4. Tipagem forte: Assim como o Java, Solidity e Python, o Vyper exige uma especificação clara dos tipos de dados.
  5. O código do compilador é pequeno e compreensível.
  6. Suporte limitado para funções puras: Qualquer coisa marcada como constante não tem permissão para alterar o estado.
  7. Código legível mínimo: Os contratos inteligentes do Vyper são escritos da forma mais minimalista possível para permitir melhor auditoria e legibilidade para não desenvolvedores.

Leia mais sobre os recursos exclusivos do Vyper aqui.

Um consenso feito em 30 de novembro de 2021 pela DefiLlama mostra que, em um recorde histórico, o Solidity havia garantido mais de $ 186,57 bilhões de valor bloqueado em contratos inteligentes, o que representava até 85% do valor total bloqueado em contratos inteligentes na época, mas atrás do Solidity estava o Vyper, com um total de $ 27.02 bilhões, o que representava 10%.

Estatísticas do DefiLlama

Isso é uma evidência de que, embora o VyperLang continue sendo uma espécie de linguagem de programação de contrato inteligente com pouca visibilidade, existem empresas de tecnologia que estão construindo ativamente com ele e usando seus contratos seguros para suas operações transacionais diárias.


Embora seja altamente considerada como a segunda linguagem mais popular na blockchain Ethereum, seus desenvolvedores anunciaram no passado que ela não foi criada para competir com o Solidity, que é mais dominante.

Isso pode ser apoiado pelo fato de que, embora o Vyper tenha sido feito para melhorar a criação de contratos inteligentes à sua própria maneira, ele não permite o uso de algumas coisas, infelizmente algumas dessas coisas tornam o Solidity uma ótima linguagem orientada a contratos.

Por exemplo:

  1. Modificadores: Um dos recursos que não continuam nesta linguagem alternativa de programação de contrato inteligente são os modificadores de controle de acesso que impedem chamadas externas e internas de chamadores indesejados.
contract SolidityModifier {
... 
 address payable owner;
...
 modifier onlyOwner {
   require(owner = msg.sender, "error: not owner");
   _;
 }

 function sendEth(uint amount) public payable onlyOwner {
 ...
 }
}
Enter fullscreen mode Exit fullscreen mode

O modificador onlyOwner no Solidity pode ser utilizado para restringir o acesso do usuário à função sendEth (), desta forma somente o usuário (msg.sender) definido como owner (proprietário) pode chamar a função.

Você também pode verificar mais recursos não oferecidos pelo VyperLang em sua documentação oficial aqui.


Construindo Contratos Inteligentes com Vyper

O Vyper é estaticamente tipado, como a maioria das linguagens de máquina orientadas a objetos, e com um pouco de conhecimento em Solidity e Python, você pode aprendê-lo e ser bom nele em apenas um ano de desenvolvimento constante.

No final deste artigo, há vários recursos excelentes para que você comece a trabalhar corretamente. Fique à vontade para consultá-los e iniciar sua jornada.

Um exemplo de contrato:

# Este é um exemplo de contrato inteligente
# Crie um arquivo e salve como HelloWorld.vy em um editor de código
# Copie e cole o seguinte código abaixo no editor

# @version ^0.2.0

# Crie uma variável de string que pode conter no máximo 100 caracteres
greet: public(String[100])

@external
def __init__():
 self.greet = "Hello World"
Enter fullscreen mode Exit fullscreen mode

Este é um contrato inteligente minimalista do Vyper que retorna a saudação “Hello World” quando você chama a função de saudação.

Pragma

O Vyper suporta uma versão do pragma para garantir que um contrato seja compilado apenas para a versão esperada ou versões definidas esperadas.

O contrato HelloWorld.vy acima está atualmente em execução na versão 2.0.

Comentários em linha

Abaixo da declaração de versão há uma nota escrita com a hashtag '#', que é o equivalente ao comentário em linha ou traços inclinados usados ​​no Solidity '//' para deixar um comentário ou nota, seja para detalhar uma função ou explicar variáveis. Basicamente, escrevendo o código que você deseja que seja ignorado pelo compilador.

Declarações de variáveis

As variáveis ​​de estado são valores armazenados permanentemente no contrato. Eles são declarados fora de qualquer função como no Solidity e geralmente contêm o valor padrão para seu tipo.

A string greet é uma variável de estado com visibilidade definida como pública e declarada para conter no máximo 100 caracteres, embora neste caso apenas 10 desse espaço disponível sejam usados.

Este é um excelente exemplo de 'A Verificação de Overflow de Limites ', pois a variável 'greet' nunca será capaz de ultrapassar seus limites pretendidos.

As variáveis ​​de estado podem então ser acessadas usando o objeto self.

Funções

Por último, as funções são unidades executáveis ​​de código em um contrato. Isso não é novidade, pois vale para todas as linguagens orientadas a objetos.

No Vyper, as funções são atribuídas com @externo ou @interno, de acordo com sua visibilidade e acessibilidade.

No Solidity a visibilidade das funções são mais diversificadas, variando de:

  • Privada.
  • Interna.
  • Externa.
  • Pública.

No Vyper existem apenas dois tipos de visibilidade para as funções;

  • Interna.
  • Externa.

Essas funções também podem aceitar argumentos e retornar variáveis ​​para passar valor dentro delas.

O contrato de exemplo acima tem a visibilidade externa, portanto, também pode ser chamado de fora do contrato.

Você pode praticar a chamada da função no IDE do Remix, que é um editor de código online muito poderoso e em rápido crescimento para contratos inteligentes na blockchain Ethereum.

Começando

  1. Abra o Remix IDE em remix.ethereum.org.
  2. Ative o plug-in do compilador Vyper. Se você ainda não sabe bem onde fica o plugin… escrevi esse guia aqui.
  3. Em seguida, recrie o arquivo HelloWorld.vy e cole o código de exemplo nele. Compile o contrato (novamente, se você estiver tendo problemas para encontrar o plug-in Vyper no Remix, consulte este link).
  4. Implante o contrato inteligente e interaja com a função de saudação.

Instalando o Vyper localmente

A melhor maneira de instalar o Vyper em seu editor de código local é seguir as orientações dos documentos oficiais aqui.

Melhores recursos e repositórios do Github

Estes são alguns sites de documentações e repositórios incríveis que ajudarão você a entender como é construir contratos inteligentes no Vyper e como construí-los da maneira certa com exemplos.

  1. docs.vyperlang.org: A documentação oficial do Vyper. Todo desenvolvedor que é bom no que faz sabe a importância de se sentar com a documentação oficial lançada pelos desenvolvedores. Não é diferente para o VyperLang. A documentação é o melhor lugar para aprender as melhores práticas e se manter atualizado sobre mudanças e atualizações.
  2. vyper-by-example.org: Este é uma mina de ouro de exemplos de contratos Vyper com explicação em vídeo no YouTube.
  3. Repositórios do Github: A análise de outros contratos no Github o ajudará a descobrir novos códigos, novas maneiras de escrever de forma mais limpa e maneiras de escrever códigos mais eficientes em termos de consumo de gás.
  4. Os contratos CurveFi.
  5. Vyper/vyper.fun.
  6. Jogo de guerra Vyper.

Se você gostou ou achou esse artigo útil, siga-me para receber mais artigos sobre o novo desenvolvimento da Web. Você também pode me enviar uma mensagem no Twitter.

Eu adoraria receber seu feedback.


Artigo escrito por Jamaltheatlantean. Traduzido por Panegali

Top comments (0)