WEB3DEV

Cover image for Visão geral do desenvolvimento de contratos inteligentes na rede XDC usando o Vyper
Fatima Lima
Fatima Lima

Posted on

Visão geral do desenvolvimento de contratos inteligentes na rede XDC usando o Vyper

Um contrato inteligente é um programa armazenado na blockchain e executa um acordo quando determinadas condições são atendidas. Ele pode ser criado usando uma linguagem de programação como o Vyper, que é executada em um computador descentralizado com milhões de projetos executáveis. O Vyper é uma linguagem baseada em Python, e os contratos inteligentes do Vyper são salvos com extensões .vy. Este artigo abordará como criar contratos inteligentes seguros usando o Vyper.

Índice

1.0. Uma visão geral dos contratos inteligentes usando a rede XDC

1.1. Exemplos de contratos inteligentes na rede XDC

2.0. Como implementar um contrato inteligente na rede XDC usando o Vyper

2.1. Passo 1: Instalar o Vyper

2.2. Passo 2: Escrever o código

2.2.1. Código Vyper para criar um contrato inteligente

2.3. Passo 3: Compilar o contrato inteligente Vyper

2.4. Passo 4: Implantar o contrato

2.5. Passo 5: Testar o contrato implantado

Uma visão geral dos contratos inteligentes usando a rede XDC

Os contratos inteligentes armazenam regras para a negociação dos termos de um contrato. As condições são escritas diretamente no código. Eles verificam automaticamente as condições quando cumpridas e, em seguida, executam os termos acordados. Não há terceiros; os envolvidos no contrato podem assiná-lo diretamente. Isso resulta em transparência, eficiência, segurança, velocidade e redução de custos. Não é de se admirar que as empresas estejam, cada vez mais, recorrendo a contratos inteligentes em vez de contratos físicos.

Exemplos de contrato inteligente de blockchain

Vamos entender como funciona um contrato inteligente usando alguns exemplos.

Exemplo 1:

Considere uma plataforma de crowdfunding (financiamento coletivo) em que qualquer pessoa pode doar dinheiro para salvar pacientes que precisam de tratamento caro. As famílias dos pacientes devem pagar à plataforma para divulgar suas necessidades e arrecadar fundos. O dinheiro doado vai para a plataforma e depois para os pacientes. Claramente, a plataforma atua como um terceiro.

Se um contrato inteligente fosse incluído no cenário acima, ele incluiria os problemas de saúde do paciente e os relatórios do hospital para comprovação e facilitaria a coleta de doações. Não haveria necessidade de um terceiro.

Um contrato inteligente do Vyper poderia ser programado para executar automaticamente todas as ações com relação a determinados termos e condições. Se forem arrecadados fundos suficientes antes do prazo, todas as contribuições serão enviadas às famílias dos pacientes e o tratamento poderá ser administrado rapidamente. Se o tratamento não puder ser administrado, os fundos coletados serão devolvidos aos doadores. Nos contratos inteligentes, os dados são armazenados de forma distribuída na rede XDC. Portanto, no exemplo acima, nenhuma pessoa controla o dinheiro.

Exemplo 2:

Considere um cenário em que Tanya aluga o apartamento de Maria. Maria deve fornecer o endereço de seu apartamento, enquanto Tanya deve pagar o aluguel. Nesse caso, um contrato inteligente funcionará da seguinte maneira:

  1. Primeiro, é criado um armazenamento independente no qual Tanya e Maria podem colocar seus valores, mas não podem removê-los facilmente.

  2. Tanya coloca o valor do seu aluguel no depósito, enquanto Maria coloca seu endereço.

  3. Quando Maria recebe a confirmação do pagamento, Tanya recebe o endereço.

  4. Se Tanya for até o apartamento e descobrir que o endereço fornecido por Maria está errado, o aluguel de Tanya será devolvido.

  5. Se Tanya mudar repentinamente seus planos e não quiser mais o apartamento, ela terá de pagar a Maria uma multa como indenização. O valor restante do aluguel será transferido de volta para ela.

  6. No final do acordo, o contrato inteligente é considerado cumprido e armazenado na rede XDC.

  7. Como os contratos inteligentes são projetados e implementados na rede XDC, eles herdam suas propriedades.

Eles são imutáveis, o que significa que, uma vez criados, ninguém pode adulterá-los.

Eles são distribuídos. Como qualquer transação, os resultados do contrato são validados por todos os participantes. É impossível para um invasor forçar o controle para liberar fundos, pois qualquer participante pode detectar a tentativa e marcá-la como inválida. Esse recurso sempre garante a integridade da blockchain.

Como implementar um contrato inteligente na rede XDC usando o Vyper

Os passos a seguir são usados para implementar um contrato inteligente Vyper.

Passo 1: Instalar o Vyper

Faça o download do Python 3.6 ou versões superiores no site oficial do Python.

O gerenciador de pacotes pip é essencial para instalar o Vyper usando o seguinte comando:

pip install vyper
Enter fullscreen mode Exit fullscreen mode

Passo 2: Escrever o código

Vamos criar um contrato inteligente para armazenar e exibir o endereço de um usuário.

Observação: você deve se registrar com o XDCPay para interagir com a rede XDC.

Código Vyper para criar um contrato inteligente

Crie uma pasta, vyper_contract e um arquivo, contract.vy, dentro da pasta. O Contract.vy é o arquivo de código Vyper para criar o contrato inteligente Vyper desejado.

O código Vyper correspondente é o seguinte:

# @version ^0.3.1
address: public(String[100])
@external
def __init__(addr: String[100]):
self.address = addr
@view
@external
def getAddress() -> String[100]:
return self.address
Enter fullscreen mode Exit fullscreen mode

A primeira linha é o pragma (diretiva) da versão. Ela informa ao compilador do Vyper para usar a versão 0.3.1 para compilar o contrato inteligente do Vyper. O address é a variável de estado. Como o nome sugere, ela armazena o endereço do usuário como uma string. Um @external cria uma função externa que pode ser chamada de fora. A função init é o construtor do contrato inteligente do Vyper. Ela entra em ação quando o contrato é implantado.

O @view informa ao Vyper que a função getAddress não altera o estado da rede XDC. Ela retorna a variável de estado address, que contém o endereço do usuário.

Passo 3: Compilar o contrato inteligente Vyper

Essa etapa verifica se o contrato está funcionando como desejado.

O vyper .vy ou, nesse caso, vyper contract.vy, é o comando para compilar o contrato.

O output é uma cadeia de caracteres hexadecimal que é o bytecode do contrato.

Image description

  • Compile o contrato remotamente usando o IDE do Remix. No IDE, crie um novo arquivo chamado contract.vy.
  • Inclua o mesmo código Vyper mencionado acima nesse arquivo remoto.
  • Instale o plug-in Vyper no IDE do Remix. Clique no ícone da tomada na barra lateral e digite "vyper" para pesquisar o mesmo.
  • Clique em Activate no item que aparecer.
  • Clique no ícone do Vyper e pressione o botão Compile contract.vy.

Image description

Passo 4: Implantar o contrato

Clique no ícone na barra lateral.

No menu suspenso ENVIRONMENT (Ambiente), selecione Injected Web3. Uma pequena interface do usuário abaixo mudará para a rede Apothem do XDC à qual você está conectado.

Clique em Deploy e insira uma palavra ao lado do botão Deploy. Essa palavra é o endereço do usuário - o input desejado.

Ao clicar no botão Deploy, a IU do XDCPay será exibida.

Clique em Confirm (Confirmar).

O contrato inteligente Vyper será implantado na rede de teste Apothem do XDC.

Image description

Passo 5: Testar o contrato implantado

Agora, interaja com o contrato implantado no passo anterior para chamar os métodos no IDE do navegador Remix ou visualizar o contrato implantado na Faucet Ropsten da Ethereum.

Clique no menu suspenso CONTRACT AT xdc26....

Você verá as funções e variáveis de estado, getAddress e address. Escolha getAddress.

Ele retornará a palavra passada para o constructor durante a implantação no passo 4. A ação é chamada de função getAddress no contrato.

Um contrato inteligente Vyper que armazena e exibe endereços de usuários foi testado e implantado com sucesso! Experimente usar os códigos acima. Você também pode tentar com variáveis diferentes.

Neste artigo, vimos como criar um contrato inteligente usando o Vyper, uma linguagem baseada em Phyton, na rede XDC. Também abordamos alguns dos recursos de um contrato inteligente na rede XDC.

Links importantes relacionados à rede XDC: https://XinFin.org XDC Explorer XinFin (XDC) Remix XDCPay XDC Faucet XDC Web Wallet

A Web 3.0 é o futuro das tecnologias da Web e a Rede XDC é um de seus principais princípios. À medida que a confiança nas blockchains aumenta, os contratos inteligentes - por serem seguros, transparentes, rápidos e baratos - logo se tornarão muito mais comuns.

Para qualquer suporte ao desenvolvedor, publique suas dúvidas aqui em https://xdc.dev

Esse artigo foi escrito por ruslan wing e traduzido por Fátima Lima. O original pode ser lido aqui.

Top comments (0)