Lição 1

Introdução à votação descentralizada e IDE Remix

Bem-vindo à primeira lição do nosso curso sobre a construção de um sistema de votação descentralizado. Nesta lição, exploraremos o conceito de votação descentralizada e compreenderemos os benefícios que ela traz para o processo de votação. Também apresentaremos o Remix IDE, uma ferramenta poderosa usada para desenvolver e implantar contratos inteligentes Ethereum.

Votação Descentralizada

A votação descentralizada refere-se a um sistema de votação que opera em uma blockchain. A ideia principal aqui é aproveitar a transparência, a segurança e a imutabilidade fornecidas pela tecnologia blockchain para construir um sistema de votação difícil de manipular e fácil de verificar.

Num sistema de votação descentralizado, cada voto é uma transação na blockchain que pode ser vista por todos os participantes, mas só pode ser modificada pelo eleitor até que o voto seja emitido. Uma vez emitido um voto, ele é registrado no blockchain e não pode ser alterado, proporcionando um mecanismo de votação transparente e à prova de falsificação.

Introdução ao Remix IDE

Remix IDE (Ambiente de Desenvolvimento Integrado) é uma ferramenta poderosa e de código aberto projetada especificamente para o desenvolvimento de contratos inteligentes Ethereum. Ele é executado diretamente no seu navegador, então você não precisa instalar nada no seu computador.

Você pode acessar o Remix IDE em https://remix.ethereum.org. Ao abrir o Remix em seu navegador, você encontrará três painéis:

  1. Painel Esquerdo: É aqui que você pode criar, importar e gerenciar seus arquivos do Solidity. Também inclui vários plug-ins para compilar, testar, depurar e implantar seus contratos.

  2. Painel Central: Este é o seu editor de código. Aqui você escreverá e editará seu código do Solidity.

  3. Painel direito: Este painel fornece várias ferramentas para compilar seus contratos, implantá-los na rede Ethereum (seja em uma rede Ethereum real ou em uma simulação de VM JavaScript) e interagir com seus contratos implantados.

Seu primeiro contrato inteligente

Vamos começar com um simples contrato de “eleitor”. Este contrato manterá o controle dos eleitores em nosso sistema.

No Remix IDE, vá em “File Explorer” e clique no ícone “+” para criar um novo arquivo. Nomeie-o como Voter.sol.

Agora, vamos começar a escrever nosso contrato:

Solidez 
 // Identificador de licença SPDX: GPL-3.0 
 solidez pragma >=0.7.0 <0.9.0; 

 contract Voter { 
 // Uma estrutura para representar uma pessoa 
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Um mapeamento para rastrear todos os eleitores 
 mapeamento (endereço => Pessoa) eleitores públicos; 

 // Uma função para registrar um eleitor 
 function registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Identificador de licença SPDX: A linha // SPDX-License-Identifier: GPL-3.0 indica que nosso contrato usa a Licença Pública Geral GNU v3.0. Esta é uma licença de software livre comumente usada que garante aos usuários finais a liberdade de executar, estudar, compartilhar e modificar o software.

  2. Diretiva Pragma: A pragma solidity >=0.7.0 &lt;0.9.0; A declaração especifica que o contrato foi escrito em uma versão do Solidity maior ou igual a 0.7.0 e menor que 0.9.0. Ajuda a evitar que o contrato seja compilado com uma versão mais recente e incompatível do compilador.

  3. Definição do contrato: o bloco contract Voter {...} define um novo contrato denominado Voter. É aqui que especificamos as variáveis de estado e funções do contrato.

  4. Definição de estrutura: Dentro do contrato, definimos uma estrutura Person que representa uma pessoa em nosso sistema de votação. Cada Person possui um booleano voted que indica se já votou e um número inteiro vote que acompanha a proposta em que votou.

  5. Variável de Estado: O mapping(address => Person) public voters; declaração declara uma variável de estado voters que cria um link entre um endereço Ethereum e uma estrutura Person . Isso nos permitirá acompanhar quem está qualificado para votar no sistema e qual é o seu voto. A palavra-chave public cria automaticamente uma função getter para voters.

  6. Definição de função: o bloco function registerVoter() public {...} define uma função pública que permite aos usuários se registrarem como eleitores no sistema. Os voters[msg.sender].voted = false; declaração define o status voted do novo eleitor como false.
    É isso para este contrato! À medida que avançamos no curso, expandiremos este contrato adicionando mais funções para o processo de votação. Lembre-se de compilar e testar regularmente seu código para garantir que tudo esteja funcionando conforme o esperado. No Remix IDE, você pode compilar seu contrato clicando no ícone do compilador Solidity na barra lateral esquerda (o terceiro a partir do topo) e depois clicando no botão “Compile”.

Na próxima lição, aprenderemos como permitir que eleitores registrados votem e implementar a lógica de um sistema de votação. Mas por enquanto, brinque com o contrato e familiarize-se com o ambiente Remix. Você acabou de dar o primeiro passo no mundo do desenvolvimento de contratos inteligentes!

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 1

Introdução à votação descentralizada e IDE Remix

Bem-vindo à primeira lição do nosso curso sobre a construção de um sistema de votação descentralizado. Nesta lição, exploraremos o conceito de votação descentralizada e compreenderemos os benefícios que ela traz para o processo de votação. Também apresentaremos o Remix IDE, uma ferramenta poderosa usada para desenvolver e implantar contratos inteligentes Ethereum.

Votação Descentralizada

A votação descentralizada refere-se a um sistema de votação que opera em uma blockchain. A ideia principal aqui é aproveitar a transparência, a segurança e a imutabilidade fornecidas pela tecnologia blockchain para construir um sistema de votação difícil de manipular e fácil de verificar.

Num sistema de votação descentralizado, cada voto é uma transação na blockchain que pode ser vista por todos os participantes, mas só pode ser modificada pelo eleitor até que o voto seja emitido. Uma vez emitido um voto, ele é registrado no blockchain e não pode ser alterado, proporcionando um mecanismo de votação transparente e à prova de falsificação.

Introdução ao Remix IDE

Remix IDE (Ambiente de Desenvolvimento Integrado) é uma ferramenta poderosa e de código aberto projetada especificamente para o desenvolvimento de contratos inteligentes Ethereum. Ele é executado diretamente no seu navegador, então você não precisa instalar nada no seu computador.

Você pode acessar o Remix IDE em https://remix.ethereum.org. Ao abrir o Remix em seu navegador, você encontrará três painéis:

  1. Painel Esquerdo: É aqui que você pode criar, importar e gerenciar seus arquivos do Solidity. Também inclui vários plug-ins para compilar, testar, depurar e implantar seus contratos.

  2. Painel Central: Este é o seu editor de código. Aqui você escreverá e editará seu código do Solidity.

  3. Painel direito: Este painel fornece várias ferramentas para compilar seus contratos, implantá-los na rede Ethereum (seja em uma rede Ethereum real ou em uma simulação de VM JavaScript) e interagir com seus contratos implantados.

Seu primeiro contrato inteligente

Vamos começar com um simples contrato de “eleitor”. Este contrato manterá o controle dos eleitores em nosso sistema.

No Remix IDE, vá em “File Explorer” e clique no ícone “+” para criar um novo arquivo. Nomeie-o como Voter.sol.

Agora, vamos começar a escrever nosso contrato:

Solidez 
 // Identificador de licença SPDX: GPL-3.0 
 solidez pragma >=0.7.0 <0.9.0; 

 contract Voter { 
 // Uma estrutura para representar uma pessoa 
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Um mapeamento para rastrear todos os eleitores 
 mapeamento (endereço => Pessoa) eleitores públicos; 

 // Uma função para registrar um eleitor 
 function registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Identificador de licença SPDX: A linha // SPDX-License-Identifier: GPL-3.0 indica que nosso contrato usa a Licença Pública Geral GNU v3.0. Esta é uma licença de software livre comumente usada que garante aos usuários finais a liberdade de executar, estudar, compartilhar e modificar o software.

  2. Diretiva Pragma: A pragma solidity >=0.7.0 &lt;0.9.0; A declaração especifica que o contrato foi escrito em uma versão do Solidity maior ou igual a 0.7.0 e menor que 0.9.0. Ajuda a evitar que o contrato seja compilado com uma versão mais recente e incompatível do compilador.

  3. Definição do contrato: o bloco contract Voter {...} define um novo contrato denominado Voter. É aqui que especificamos as variáveis de estado e funções do contrato.

  4. Definição de estrutura: Dentro do contrato, definimos uma estrutura Person que representa uma pessoa em nosso sistema de votação. Cada Person possui um booleano voted que indica se já votou e um número inteiro vote que acompanha a proposta em que votou.

  5. Variável de Estado: O mapping(address => Person) public voters; declaração declara uma variável de estado voters que cria um link entre um endereço Ethereum e uma estrutura Person . Isso nos permitirá acompanhar quem está qualificado para votar no sistema e qual é o seu voto. A palavra-chave public cria automaticamente uma função getter para voters.

  6. Definição de função: o bloco function registerVoter() public {...} define uma função pública que permite aos usuários se registrarem como eleitores no sistema. Os voters[msg.sender].voted = false; declaração define o status voted do novo eleitor como false.
    É isso para este contrato! À medida que avançamos no curso, expandiremos este contrato adicionando mais funções para o processo de votação. Lembre-se de compilar e testar regularmente seu código para garantir que tudo esteja funcionando conforme o esperado. No Remix IDE, você pode compilar seu contrato clicando no ícone do compilador Solidity na barra lateral esquerda (o terceiro a partir do topo) e depois clicando no botão “Compile”.

Na próxima lição, aprenderemos como permitir que eleitores registrados votem e implementar a lógica de um sistema de votação. Mas por enquanto, brinque com o contrato e familiarize-se com o ambiente Remix. Você acabou de dar o primeiro passo no mundo do desenvolvimento de contratos inteligentes!

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.io 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.