Lição 1

Introdução à Votação Descentralizada e ao Remix IDE

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 traz para o processo de votação. Vamos também apresentar-lhe o Remix IDE, uma ferramenta poderosa usada para desenvolver e implementar contratos inteligentes Ethereum.

Votação descentralizada

Votação descentralizada refere-se a um sistema de votação que opera numa cadeia de blocos. A ideia chave aqui é alavancar 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 cadeia de blocos que pode ser vista por todos os participantes mas só pode ser modificada pelo eleitor até que o voto seja dado. Uma vez que uma votação é emitida, é gravada na cadeia de blocos e não pode ser alterada, fornecendo um mecanismo de votação transparente e inviolável.

Introdução ao Remix IDE

O Remix IDE (Integrated Development Environment) é uma poderosa ferramenta de código aberto concebida especificamente para o desenvolvimento de contratos inteligentes Ethereum. Funciona diretamente no seu navegador web, por isso não precisa de instalar nada no seu computador.

Pode aceder ao IDE Remix em https://remix.ethereum.org. Quando abre o Remix no seu navegador, vai encontrar três painéis:

  1. Painel Esquerdo: É aqui que pode criar, importar e gerir os seus ficheiros Solidity. Também inclui vários plugins para compilar, testar, depuração e implementar os seus contratos.

  2. Painel Central: Este é o seu editor de código. Aqui vai escrever e editar o seu código Solidity.

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

O seu Primeiro Contrato Inteligente

Vamos começar com um simples contrato de “eleitor”. Este contrato irá acompanhar os eleitores no nosso sistema.

No IDE Remix, vá para “Explorador de Ficheiros” e clique no ícone “+” para criar um novo ficheiro. Dá o nome Voter.sol.

Agora, vamos começar a escrever o nosso contrato:

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

contrato Eleitor {
 //Uma estrutura para representar uma pessoa
 Pessoa estruturada {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    //Um mapeamento para acompanhar todos os eleitores
 mapeamento (morada = > Pessoa) eleitores públicos;

 //Uma função para registar um eleitor
 função registerVoter () public {
        voters[msg.sender].voted = false;
    }
}
  1. Identificador de Licença SPDX: A linha //SPDX-License-identificador: GPL-3.0 indica que o nosso contrato utiliza a GNU General Public License v3.0. Esta é uma licença de software livre comumente usada que garante aos utilizadores finais a liberdade de executar, estudar, partilhar e modificar o software.

  2. Diretiva Pragma: A solidez do pragma > =0.7.0 & lt; 0.9.0; a declaração especifica que o contrato está escrito numa versão da Solidity que é maior ou igual a 0.7.0 e menor que 0.9.0. Ajuda a impedir que o contrato seja compilado com uma versão de compilador mais recente e incompatível.

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

  4. Definição de estrutura: Dentro do contrato, definimos uma Pessoa estruturada que representa uma pessoa no nosso sistema de votação. Cada pessoa tem um booleano votado que indica se já votou e um número inteiro de votos que acompanha a proposta em que votou.

  5. Variável de Estado: O mapeamento (endereço = > Pessoa) eleitores públicos; declaração declara uma variável de estado eleitores que cria uma ligação entre um endereço Ethereum e uma estrutura Pessoa. Isto permitir-nos-á acompanhar quem é elegível para votar no sistema e qual é o seu voto. A palavra-chave pública cria automaticamente uma função de melhor para os eleitores.

  6. Definição de Função: A função registerVoter () public {...} block define uma função pública que permite aos utilizadores registarem-se como eleitores no sistema. Os eleitores [msg.sender] .votou = false; declaração define o status votado do novo eleitor como falso.
    É 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 o seu código para garantir que tudo está a funcionar conforme o esperado. No IDE Remix, pode compilar o seu contrato clicando no ícone do compilador Solidity na barra lateral esquerda (o terceiro a partir do topo) e, em seguida, clicando no botão “Compilar”.

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

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 1

Introdução à Votação Descentralizada e ao Remix IDE

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 traz para o processo de votação. Vamos também apresentar-lhe o Remix IDE, uma ferramenta poderosa usada para desenvolver e implementar contratos inteligentes Ethereum.

Votação descentralizada

Votação descentralizada refere-se a um sistema de votação que opera numa cadeia de blocos. A ideia chave aqui é alavancar 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 cadeia de blocos que pode ser vista por todos os participantes mas só pode ser modificada pelo eleitor até que o voto seja dado. Uma vez que uma votação é emitida, é gravada na cadeia de blocos e não pode ser alterada, fornecendo um mecanismo de votação transparente e inviolável.

Introdução ao Remix IDE

O Remix IDE (Integrated Development Environment) é uma poderosa ferramenta de código aberto concebida especificamente para o desenvolvimento de contratos inteligentes Ethereum. Funciona diretamente no seu navegador web, por isso não precisa de instalar nada no seu computador.

Pode aceder ao IDE Remix em https://remix.ethereum.org. Quando abre o Remix no seu navegador, vai encontrar três painéis:

  1. Painel Esquerdo: É aqui que pode criar, importar e gerir os seus ficheiros Solidity. Também inclui vários plugins para compilar, testar, depuração e implementar os seus contratos.

  2. Painel Central: Este é o seu editor de código. Aqui vai escrever e editar o seu código Solidity.

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

O seu Primeiro Contrato Inteligente

Vamos começar com um simples contrato de “eleitor”. Este contrato irá acompanhar os eleitores no nosso sistema.

No IDE Remix, vá para “Explorador de Ficheiros” e clique no ícone “+” para criar um novo ficheiro. Dá o nome Voter.sol.

Agora, vamos começar a escrever o nosso contrato:

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

contrato Eleitor {
 //Uma estrutura para representar uma pessoa
 Pessoa estruturada {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    //Um mapeamento para acompanhar todos os eleitores
 mapeamento (morada = > Pessoa) eleitores públicos;

 //Uma função para registar um eleitor
 função registerVoter () public {
        voters[msg.sender].voted = false;
    }
}
  1. Identificador de Licença SPDX: A linha //SPDX-License-identificador: GPL-3.0 indica que o nosso contrato utiliza a GNU General Public License v3.0. Esta é uma licença de software livre comumente usada que garante aos utilizadores finais a liberdade de executar, estudar, partilhar e modificar o software.

  2. Diretiva Pragma: A solidez do pragma > =0.7.0 & lt; 0.9.0; a declaração especifica que o contrato está escrito numa versão da Solidity que é maior ou igual a 0.7.0 e menor que 0.9.0. Ajuda a impedir que o contrato seja compilado com uma versão de compilador mais recente e incompatível.

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

  4. Definição de estrutura: Dentro do contrato, definimos uma Pessoa estruturada que representa uma pessoa no nosso sistema de votação. Cada pessoa tem um booleano votado que indica se já votou e um número inteiro de votos que acompanha a proposta em que votou.

  5. Variável de Estado: O mapeamento (endereço = > Pessoa) eleitores públicos; declaração declara uma variável de estado eleitores que cria uma ligação entre um endereço Ethereum e uma estrutura Pessoa. Isto permitir-nos-á acompanhar quem é elegível para votar no sistema e qual é o seu voto. A palavra-chave pública cria automaticamente uma função de melhor para os eleitores.

  6. Definição de Função: A função registerVoter () public {...} block define uma função pública que permite aos utilizadores registarem-se como eleitores no sistema. Os eleitores [msg.sender] .votou = false; declaração define o status votado do novo eleitor como falso.
    É 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 o seu código para garantir que tudo está a funcionar conforme o esperado. No IDE Remix, pode compilar o seu contrato clicando no ícone do compilador Solidity na barra lateral esquerda (o terceiro a partir do topo) e, em seguida, clicando no botão “Compilar”.

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

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa 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.