Урок 3

Criando e gerenciando contratos inteligentes no Vyper

Você criou uma base sólida para programação blockchain com Vyper ao concluir este curso. Agora você tem um conhecimento sólido de Ethereum, contratos inteligentes e como criá-los no Remix IDE com Vyper. Esse entendimento abre um mundo de oportunidades para o desenvolvimento de aplicações descentralizadas e a participação no ecossistema blockchain.

Introdução

Bem-vindo à Lição 3! Nesta lição, nos concentraremos na aplicação dos conceitos e da sintaxe que aprendemos nas lições anteriores para desenvolver contratos inteligentes Ethereum usando Vyper com o Remix IDE. Estaremos criando, implantando e interagindo com contratos inteligentes simples, proporcionando a você experiência prática com Vyper e Ethereum. O primeiro contrato será um contrato simples de armazenamento de dados, enquanto o segundo simulará um sistema básico de votação.

SimpleStorage: uma introdução aos contratos inteligentes

O primeiro contrato que implantaremos é o SimpleStorage. Este contrato, como o nome sugere, é um contrato simples de armazenamento de dados que armazena um único número. SimpleStorage consiste em uma variável storedData e duas funções, set e get. A função set permite que um usuário armazene um número, e a função get permite que qualquer pessoa recupere esse número.

Implantando e interagindo com SimpleStorage

Seguiremos as etapas para implantar e interagir com o contrato SimpleStorage no blockchain Ethereum. A implantação de um contrato no blockchain Ethereum é o processo de transmissão do bytecode e ABI do contrato para a rede Ethereum, de onde ele pode ser chamado e executado. Depois que um contrato é implantado, ele recebe um endereço exclusivo no qual pode ser contatado.

Aqui está o código para SimpleStorage:

Python 
 # @title SimpleStorage 
 storageData: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

Neste contrato, definimos uma variável inteira pública storedData, uma função pública set(x: int128) para definir o valor de storedData, e uma função constante pública get() -> int128 para recuperar o valor atual de storedData.

Aqui está um guia passo a passo sobre como implantar este contrato usando Remix:

  1. Abra seu navegador e navegue até Remix Ethereum IDE.

  2. Ative o plug-in Vyper

  3. Mude o ambiente para Injected Web3 na seção Deploy & Run Transactions . Isso conectará o Remix à sua carteira MetaMask.

  4. Na seção File Explorer , clique no ícone + para criar um novo arquivo. Nomeie-o como SimpleStorage.vy.

  5. Cole o código do contrato SimpleStorage neste novo arquivo.

  6. Agora vá para a guia VyperCompile e selecione o contrato SimpleStorage .

  7. Mude para a guia Deploy & Run Transactions e clique no botão Deploy .

  8. MetaMask abrirá um pop-up de confirmação da transação. Confirme a transação.

  9. Depois que a transação for confirmada, você verá o contrato SimpleStorage implantado na seção Deployed Contracts .

  10. Agora você pode interagir com o contrato. Por exemplo, para armazenar um número, insira o número na função set e clique em transact. Para recuperar o número armazenado, clique em get.

SimpleVoting: um contrato mais complexo

Depois de começarmos a usar SimpleStorage, passaremos para algo um pouco mais complexo: SimpleVoting. O contrato SimpleVoting simulará um sistema de votação simples. Teremos uma lista de candidatos, cada um representado como uma string. Os usuários poderão votar nesses candidatos e acompanharemos o número de votos que cada candidato recebeu. O contrato fornecerá funções para adicionar um candidato, votar em um candidato e obter o total de votos recebidos por um candidato.

Implantando e interagindo com SimpleVoting

O contrato SimpleVoting é um pouco mais complexo que SimpleStorage. No SimpleVoting teremos uma lista de candidatos, cada um representado por uma string.

Aqui está o código para SimpleVoting:

Python 
 # Vyper Voting Contract 

 # Declare uma variável de estado `votes` como um HashMap para armazenar os votos de cada candidato.
votos: HashMap[bytes32, uint256] 

 @external 
 def vote(candidato: bytes32): 
 """ 
 Vote em um candidato.

    Argumentos: 
 candidato: bytes32 - O identificador do candidato no qual votar.
    """ 
 # Aumenta a contagem de votos para o candidato especificado.
    auto.votos[candidato] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Obtenha o número total de votos para um candidato.

    Argumentos: 
 candidato: bytes32 - O identificador do candidato para o qual recuperar votos.

    Retorna: 
 uint256 – O número total de votos que o candidato recebeu.
    """ 
 retorno self.votes[candidato]

Este contrato é bastante básico, sem precauções contra votação dupla ou não autorizada. Na prática, seria necessário incluir procedimentos para evitar estas dificuldades, tais como o recenseamento eleitoral e uma verificação para garantir que cada endereço só pode votar uma vez.

Conclusão e próximos passos

Você criou uma base sólida para programação blockchain com Vyper ao concluir este curso. Agora você tem um conhecimento sólido de Ethereum, contratos inteligentes e como criá-los no Remix IDE com Vyper. Esse entendimento abre um mundo de oportunidades para o desenvolvimento de aplicações descentralizadas e a participação no ecossistema blockchain.

Para aprimorar ainda mais suas habilidades e conhecimentos, considere explorar as seguintes áreas:

  1. Programação avançada de Solidity: Solidity é outra linguagem de programação popular para contratos inteligentes Ethereum. Learning Solidity ampliará sua capacidade de trabalhar com contratos existentes e contribuir com a comunidade Ethereum. Confira nosso curso aqui: [inserir link do curso Solidity quando estiver online]

  2. Desenvolvimento de aplicativos descentralizados (DApp): aprofunde-se na construção de aplicativos descentralizados completos, combinando contratos inteligentes com desenvolvimento front-end usando estruturas como Web3.js, React ou Vue.js. Isso permitirá que você crie interfaces de usuário interativas que interagem com seus contratos inteligentes.

  3. Segurança e auditoria: explore as práticas recomendadas para proteger contratos inteligentes e realizar auditorias de código completas. Compreender as vulnerabilidades potenciais e mitigar os riscos garantirá a confiabilidade e a segurança dos seus contratos inteligentes.

  4. Interoperabilidade Blockchain: Investigue a integração de diferentes redes e protocolos blockchain. Aprenda sobre a comunicação entre cadeias e o desenvolvimento de contratos inteligentes interoperáveis que podem interagir com vários blockchains.
    Lembre-se de que a tecnologia blockchain está em constante evolução e é crucial manter-se atualizado com os avanços mais recentes. Envolva-se com a comunidade blockchain, participe ativamente em discussões e explore novos conceitos e tecnologias para se manter informado e atualizado.

Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.
Каталог
Урок 3

Criando e gerenciando contratos inteligentes no Vyper

Você criou uma base sólida para programação blockchain com Vyper ao concluir este curso. Agora você tem um conhecimento sólido de Ethereum, contratos inteligentes e como criá-los no Remix IDE com Vyper. Esse entendimento abre um mundo de oportunidades para o desenvolvimento de aplicações descentralizadas e a participação no ecossistema blockchain.

Introdução

Bem-vindo à Lição 3! Nesta lição, nos concentraremos na aplicação dos conceitos e da sintaxe que aprendemos nas lições anteriores para desenvolver contratos inteligentes Ethereum usando Vyper com o Remix IDE. Estaremos criando, implantando e interagindo com contratos inteligentes simples, proporcionando a você experiência prática com Vyper e Ethereum. O primeiro contrato será um contrato simples de armazenamento de dados, enquanto o segundo simulará um sistema básico de votação.

SimpleStorage: uma introdução aos contratos inteligentes

O primeiro contrato que implantaremos é o SimpleStorage. Este contrato, como o nome sugere, é um contrato simples de armazenamento de dados que armazena um único número. SimpleStorage consiste em uma variável storedData e duas funções, set e get. A função set permite que um usuário armazene um número, e a função get permite que qualquer pessoa recupere esse número.

Implantando e interagindo com SimpleStorage

Seguiremos as etapas para implantar e interagir com o contrato SimpleStorage no blockchain Ethereum. A implantação de um contrato no blockchain Ethereum é o processo de transmissão do bytecode e ABI do contrato para a rede Ethereum, de onde ele pode ser chamado e executado. Depois que um contrato é implantado, ele recebe um endereço exclusivo no qual pode ser contatado.

Aqui está o código para SimpleStorage:

Python 
 # @title SimpleStorage 
 storageData: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

Neste contrato, definimos uma variável inteira pública storedData, uma função pública set(x: int128) para definir o valor de storedData, e uma função constante pública get() -> int128 para recuperar o valor atual de storedData.

Aqui está um guia passo a passo sobre como implantar este contrato usando Remix:

  1. Abra seu navegador e navegue até Remix Ethereum IDE.

  2. Ative o plug-in Vyper

  3. Mude o ambiente para Injected Web3 na seção Deploy & Run Transactions . Isso conectará o Remix à sua carteira MetaMask.

  4. Na seção File Explorer , clique no ícone + para criar um novo arquivo. Nomeie-o como SimpleStorage.vy.

  5. Cole o código do contrato SimpleStorage neste novo arquivo.

  6. Agora vá para a guia VyperCompile e selecione o contrato SimpleStorage .

  7. Mude para a guia Deploy & Run Transactions e clique no botão Deploy .

  8. MetaMask abrirá um pop-up de confirmação da transação. Confirme a transação.

  9. Depois que a transação for confirmada, você verá o contrato SimpleStorage implantado na seção Deployed Contracts .

  10. Agora você pode interagir com o contrato. Por exemplo, para armazenar um número, insira o número na função set e clique em transact. Para recuperar o número armazenado, clique em get.

SimpleVoting: um contrato mais complexo

Depois de começarmos a usar SimpleStorage, passaremos para algo um pouco mais complexo: SimpleVoting. O contrato SimpleVoting simulará um sistema de votação simples. Teremos uma lista de candidatos, cada um representado como uma string. Os usuários poderão votar nesses candidatos e acompanharemos o número de votos que cada candidato recebeu. O contrato fornecerá funções para adicionar um candidato, votar em um candidato e obter o total de votos recebidos por um candidato.

Implantando e interagindo com SimpleVoting

O contrato SimpleVoting é um pouco mais complexo que SimpleStorage. No SimpleVoting teremos uma lista de candidatos, cada um representado por uma string.

Aqui está o código para SimpleVoting:

Python 
 # Vyper Voting Contract 

 # Declare uma variável de estado `votes` como um HashMap para armazenar os votos de cada candidato.
votos: HashMap[bytes32, uint256] 

 @external 
 def vote(candidato: bytes32): 
 """ 
 Vote em um candidato.

    Argumentos: 
 candidato: bytes32 - O identificador do candidato no qual votar.
    """ 
 # Aumenta a contagem de votos para o candidato especificado.
    auto.votos[candidato] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Obtenha o número total de votos para um candidato.

    Argumentos: 
 candidato: bytes32 - O identificador do candidato para o qual recuperar votos.

    Retorna: 
 uint256 – O número total de votos que o candidato recebeu.
    """ 
 retorno self.votes[candidato]

Este contrato é bastante básico, sem precauções contra votação dupla ou não autorizada. Na prática, seria necessário incluir procedimentos para evitar estas dificuldades, tais como o recenseamento eleitoral e uma verificação para garantir que cada endereço só pode votar uma vez.

Conclusão e próximos passos

Você criou uma base sólida para programação blockchain com Vyper ao concluir este curso. Agora você tem um conhecimento sólido de Ethereum, contratos inteligentes e como criá-los no Remix IDE com Vyper. Esse entendimento abre um mundo de oportunidades para o desenvolvimento de aplicações descentralizadas e a participação no ecossistema blockchain.

Para aprimorar ainda mais suas habilidades e conhecimentos, considere explorar as seguintes áreas:

  1. Programação avançada de Solidity: Solidity é outra linguagem de programação popular para contratos inteligentes Ethereum. Learning Solidity ampliará sua capacidade de trabalhar com contratos existentes e contribuir com a comunidade Ethereum. Confira nosso curso aqui: [inserir link do curso Solidity quando estiver online]

  2. Desenvolvimento de aplicativos descentralizados (DApp): aprofunde-se na construção de aplicativos descentralizados completos, combinando contratos inteligentes com desenvolvimento front-end usando estruturas como Web3.js, React ou Vue.js. Isso permitirá que você crie interfaces de usuário interativas que interagem com seus contratos inteligentes.

  3. Segurança e auditoria: explore as práticas recomendadas para proteger contratos inteligentes e realizar auditorias de código completas. Compreender as vulnerabilidades potenciais e mitigar os riscos garantirá a confiabilidade e a segurança dos seus contratos inteligentes.

  4. Interoperabilidade Blockchain: Investigue a integração de diferentes redes e protocolos blockchain. Aprenda sobre a comunicação entre cadeias e o desenvolvimento de contratos inteligentes interoperáveis que podem interagir com vários blockchains.
    Lembre-se de que a tecnologia blockchain está em constante evolução e é crucial manter-se atualizado com os avanços mais recentes. Envolva-se com a comunidade blockchain, participe ativamente em discussões e explore novos conceitos e tecnologias para se manter informado e atualizado.

Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.