Leçon 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!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
Catalogue
Leçon 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!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.