Lição 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.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
Catálogo
Lição 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.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
It seems that you are attempting to access our services from a Restricted Location where Gate is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.