Lição 1

Visão geral de um mercado descentralizado e IDE Remix

Nesta lição, aprenderemos primeiro o que é um mercado descentralizado e como ele funciona. Em seguida, nos familiarizaremos com o Remix IDE e escreveremos um contrato simples do Solidity.

Compreendendo os mercados descentralizados

Nos mercados tradicionais de comércio eletrônico, como Amazon e eBay, uma autoridade central facilita as transações entre compradores e vendedores. Esta autoridade central controla as transações, mantém as listas de produtos e gere a resolução de litígios. Embora este modelo centralizado tenha as suas vantagens, também tem várias desvantagens, incluindo o risco de censura, taxas elevadas e a confiança na confiança.

Por outro lado, um mercado descentralizado aproveita a tecnologia blockchain para permitir transações peer-to-peer sem intermediários. Elimina a necessidade de confiança, pois as transações são transparentes e verificáveis por todos os participantes do blockchain. Exemplos de mercados descentralizados incluem OpenBazaar e Origin Protocol.

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 de solidez: contrato de “item”

Nesta parte, vamos escrever nosso primeiro contrato Solidity. Este contrato representará um “Item” básico em nosso mercado.

Para começar, crie um novo arquivo no Remix clicando no segundo ícone da parte superior do painel esquerdo (o ícone do arquivo). Uma nova caixa de diálogo aparecerá no painel central. Digite Item.sol como nome do arquivo e clique em “OK”.

Agora podemos começar a escrever nosso contrato:

Solidez 
 // Identificador de licença SPDX: solidez do pragma MIT 
 ^0.8.6; 

 contract Item { 
 // Define um evento que será disparado quando um novo item for criado 
 event NewItem(uint itemId, string itemName, uint itemPrice); 

 // Cada item possui um id, um nome e um preço 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Array para armazenar todos os itens 
 ItemStruct[] public items; 

 // Função para criar um novo item 
 function createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Vamos explicar as diferentes partes deste contrato:

  1. Identificador de licença SPDX: Esta é uma forma padrão de expressar a licença do contrato. A linha // SPDX-License-Identifier: MIT indica que nosso contrato usa a licença permissiva do MIT.

  2. Diretiva Pragma: pragma solidity ^0.8.6; especifica que o contrato foi escrito no Solidity versão 0.8.6. O símbolo ^ significa que também será compatível com quaisquer versões mais recentes até, mas não incluindo, a versão 0.9.0.

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

  4. Definição de evento: event NewItem(uint itemId, string itemName, uint itemPrice); define um evento que podemos emitir sempre que um novo item for criado. Os eventos são uma forma de os contratos inteligentes registrarem atividades que partes externas podem ouvir.

  5. Definição de estrutura: struct ItemStruct {...} define um novo tipo de dados ItemStruct, que representa um Item com um name e um price.

  6. Variável de Estado: ItemStruct[] public items; declara uma variável de estado items que contém uma matriz de ItemStructs. A palavra-chave public cria automaticamente uma função getter que permite a qualquer pessoa acessar a lista de itens.

  7. Definição de função: function createItem(string memory _name, uint _price) public {...} define uma função pública que qualquer pessoa pode chamar para criar um novo item. A função recebe um nome e um preço, cria um novo ItemStruct, adiciona-o ao array items e emite um evento NewItem .
    Para compilar este contrato, vá ao painel direito e clique no terceiro ícone a partir do topo (o logotipo do Solidity). Aqui você pode compilar o contrato. Clique no botão “Compile” e se não houver erros seu contrato será compilado com sucesso.

Uma pergunta pode aparecer no painel esquerdo:

A questão sobre Swarm ou IPFS é sobre o método que o Remix usará para armazenar os metadados do seu contrato. Vamos examiná-los:

  1. IPFS: O InterPlanetary File System (IPFS) é um protocolo projetado para criar uma web permanente e descentralizada. É como um único enxame de BitTorrent, trocando objetos dentro de um repositório Git.

  2. Swarm: Swarm é uma plataforma de armazenamento distribuído e serviço de distribuição de conteúdo nativo da pilha Ethereum web3. Ele permite que uma rede de pares armazene e distribua dados.
    Ao compilar um contrato, o compilador Solidity gera um arquivo JSON contendo sua Application Binary Interface (ABI) e seu bytecode, entre outras informações. Isso é chamado de metadados do contrato. Armazenar esses metadados em uma rede de armazenamento descentralizada garante que estejam permanentemente disponíveis e pode ser útil para verificar o código-fonte do contrato.

No entanto, para o seu propósito de aprendizado e se você não planeja verificar o contrato no Etherscan ou qualquer outro explorador de blocos, você pode escolher Swarm ou IPFS, ou pode simplesmente ignorá-lo e passar para as próximas etapas do seu aprendizado. Lembre-se de que o foco principal neste estágio é entender como redigir, compilar e implantar o contrato.

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

Visão geral de um mercado descentralizado e IDE Remix

Nesta lição, aprenderemos primeiro o que é um mercado descentralizado e como ele funciona. Em seguida, nos familiarizaremos com o Remix IDE e escreveremos um contrato simples do Solidity.

Compreendendo os mercados descentralizados

Nos mercados tradicionais de comércio eletrônico, como Amazon e eBay, uma autoridade central facilita as transações entre compradores e vendedores. Esta autoridade central controla as transações, mantém as listas de produtos e gere a resolução de litígios. Embora este modelo centralizado tenha as suas vantagens, também tem várias desvantagens, incluindo o risco de censura, taxas elevadas e a confiança na confiança.

Por outro lado, um mercado descentralizado aproveita a tecnologia blockchain para permitir transações peer-to-peer sem intermediários. Elimina a necessidade de confiança, pois as transações são transparentes e verificáveis por todos os participantes do blockchain. Exemplos de mercados descentralizados incluem OpenBazaar e Origin Protocol.

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 de solidez: contrato de “item”

Nesta parte, vamos escrever nosso primeiro contrato Solidity. Este contrato representará um “Item” básico em nosso mercado.

Para começar, crie um novo arquivo no Remix clicando no segundo ícone da parte superior do painel esquerdo (o ícone do arquivo). Uma nova caixa de diálogo aparecerá no painel central. Digite Item.sol como nome do arquivo e clique em “OK”.

Agora podemos começar a escrever nosso contrato:

Solidez 
 // Identificador de licença SPDX: solidez do pragma MIT 
 ^0.8.6; 

 contract Item { 
 // Define um evento que será disparado quando um novo item for criado 
 event NewItem(uint itemId, string itemName, uint itemPrice); 

 // Cada item possui um id, um nome e um preço 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Array para armazenar todos os itens 
 ItemStruct[] public items; 

 // Função para criar um novo item 
 function createItem(string memory _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Vamos explicar as diferentes partes deste contrato:

  1. Identificador de licença SPDX: Esta é uma forma padrão de expressar a licença do contrato. A linha // SPDX-License-Identifier: MIT indica que nosso contrato usa a licença permissiva do MIT.

  2. Diretiva Pragma: pragma solidity ^0.8.6; especifica que o contrato foi escrito no Solidity versão 0.8.6. O símbolo ^ significa que também será compatível com quaisquer versões mais recentes até, mas não incluindo, a versão 0.9.0.

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

  4. Definição de evento: event NewItem(uint itemId, string itemName, uint itemPrice); define um evento que podemos emitir sempre que um novo item for criado. Os eventos são uma forma de os contratos inteligentes registrarem atividades que partes externas podem ouvir.

  5. Definição de estrutura: struct ItemStruct {...} define um novo tipo de dados ItemStruct, que representa um Item com um name e um price.

  6. Variável de Estado: ItemStruct[] public items; declara uma variável de estado items que contém uma matriz de ItemStructs. A palavra-chave public cria automaticamente uma função getter que permite a qualquer pessoa acessar a lista de itens.

  7. Definição de função: function createItem(string memory _name, uint _price) public {...} define uma função pública que qualquer pessoa pode chamar para criar um novo item. A função recebe um nome e um preço, cria um novo ItemStruct, adiciona-o ao array items e emite um evento NewItem .
    Para compilar este contrato, vá ao painel direito e clique no terceiro ícone a partir do topo (o logotipo do Solidity). Aqui você pode compilar o contrato. Clique no botão “Compile” e se não houver erros seu contrato será compilado com sucesso.

Uma pergunta pode aparecer no painel esquerdo:

A questão sobre Swarm ou IPFS é sobre o método que o Remix usará para armazenar os metadados do seu contrato. Vamos examiná-los:

  1. IPFS: O InterPlanetary File System (IPFS) é um protocolo projetado para criar uma web permanente e descentralizada. É como um único enxame de BitTorrent, trocando objetos dentro de um repositório Git.

  2. Swarm: Swarm é uma plataforma de armazenamento distribuído e serviço de distribuição de conteúdo nativo da pilha Ethereum web3. Ele permite que uma rede de pares armazene e distribua dados.
    Ao compilar um contrato, o compilador Solidity gera um arquivo JSON contendo sua Application Binary Interface (ABI) e seu bytecode, entre outras informações. Isso é chamado de metadados do contrato. Armazenar esses metadados em uma rede de armazenamento descentralizada garante que estejam permanentemente disponíveis e pode ser útil para verificar o código-fonte do contrato.

No entanto, para o seu propósito de aprendizado e se você não planeja verificar o contrato no Etherscan ou qualquer outro explorador de blocos, você pode escolher Swarm ou IPFS, ou pode simplesmente ignorá-lo e passar para as próximas etapas do seu aprendizado. Lembre-se de que o foco principal neste estágio é entender como redigir, compilar e implantar o contrato.

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.