Ethereum Tutorial - Uma análise mais profunda do Ethereum!



Este Tutorial Ethereum explica o Ethereum de um ponto de vista arquitetônico e também como ele constitui a maior plataforma para a construção de DAPPS e DAOs.

Ethereum Tutorial:

Neste blog Tutorial Ethereum, explicarei o funcionamento interno da arquitetura do ethereum e também mostrarei a implementação do ethereum através de um simples contrato inteligente .

Vejo o Ethereum como um blockchain programável que atenderá a maioria das empresas B2C no futuro. Ethereum concede aos desenvolvedores a liberdade de criar modelos complexos para serem executados no blockchain, em vez de restringi-los a operações predefinidas como o blockchain Bitcoin.





Com essa abordagem, o Ethereum se transformou em uma plataforma para uma infinidade de aplicativos e organizações descentralizadas que incluem, mas não se limitam a criptomoedas.

Estarei cobrindo uma variedade de tópicos de maneira exaustiva durante a execução deste blog 'Tutorial Ethereum'. Esses tópicos incluem:



Você pode passar por esta gravação do Tutorial Ethereum, onde nossos instrutores explicaram os tópicos de maneira detalhada com isso o ajudará a entender melhor este conceito.

Tutorial Ethereum | Ethereum Smart Contracts | Edureka

Tutorial Ethereum: Contas Ethereum

A rede Ethereum possui dois tipos de contas, a saber:



  • Contas Externas
  • Contas de contrato

Essas contas, Externas e Contratuais, são chamadas de “objetos de estado” e compreendem o “estado” da rede ethereum. Cada objeto de estado tem um estado bem definido. Para contas externas, o estado compreende o saldo da conta, enquanto para contas de contrato o estado é definido pelo armazenamento da memória e pelo saldo.

Vou me referir a contas externas simplesmente como contas. Essas contas são de propriedade de são representadas por agentes externos da rede, que incluem todos os usuários comuns, mineradores, agentes automatizados, etc.

Essas contas são geralmente controladas com a ajuda de algoritmos de criptografia de chave pública, como RSA. O principal objetivo das contas externas é servir como um meio para os usuários interagirem com o Ethereum Blockchain.

As contas de contrato, por outro lado, são uma coleção de código que reside no blockchain em um endereço específico. Esses contratos são invocados por contas externas ou por outros contratos por meio de uma função de call to action específica. Esses contratos são escritos em linguagens de script de alto nível, como Solidity, Serpent ou LLL. Cada contrato que reside no blockchain do ethereum é armazenado em um formato específico chamado bytecode EVM (Ethereum Virtual Machine), que é um formato binário específico do ethereum.

Será justo que eu explique EVM agora que falei sobre EVM-bytecode.

Tutorial Ethereum: Máquina Virtual Ethereum

Ethereum, de forma rústica, define um conjunto de protocolos generalizados que se tornaram os pilares do desenvolvimento de aplicações descentralizadas. No centro disso está a Máquina Virtual Ethereum. A figura abaixo explica a arquitetura:

Ethereum Architecture - Ethereum Tutorial - Edureka

o que são filtros de contexto no tableau

É importante notar que a Máquina Virtual Ethereum não é apenas completamente isolada, mas também completamente isolada. Isso significa que o código que está sendo executado no EVM não tem acesso à rede ou ao sistema de arquivos e pode acessar moderadamente outros contratos.

Agora que entendemos o núcleo da plataforma, vamos dar uma olhada mais profunda nos nós da rede.

Tutorial Ethereum: The Ethereum Network

A rede ethereum é uma rede pública de blockchain. Ele forma a base de todos os aplicativos e organizações ponto a ponto descentralizados executados na rede. A rede é composta por dois tipos de nós, a saber, nós completos e nós leves.

Nós completos contém todo o histórico de transações desde o bloco de gênese. Eles são uma prova completa da integridade da rede blockchain. Os nós completos devem conter cada uma das transações que foram verificadas de acordo com as regras estabelecidas pelas especificações da Ethereum.

Nós leves por outro lado, contém apenas um subconjunto de todo o blockchain. Esses tipos de nós são usados ​​principalmente em carteiras eletrônicas que precisam ser leves por natureza e, portanto, o blockchain inteiro não pode ser armazenado nelas. Esses nós, em contraste, não verificam cada bloco ou transação e podem não ter uma cópia do estado atual do blockchain. Eles contam com nós completos para fornecer detalhes ausentes (ou simplesmente carecem de uma funcionalidade específica). A vantagem dos nós leves é que eles podem entrar em operação com muito mais rapidez, podem ser executados em dispositivos com maior limitação computacional / memória e não consomem tanto armazenamento.

Cada blockchain público tem uma moeda anexada a ele. Ethereum não é diferente. Vamos dar uma olhada mais profunda na criptomoeda de Ethereum.

Tutorial Ethereum: Éter e Gás

Ether é o nome da criptomoeda usada para pagar as transações na rede ethereum. Além de pagar por transações e serviços gerais, o éter também é usado para comprar gás, que por sua vez é usado para pagar por cálculos dentro do EVM.

O éter é a unidade métrica e tem várias denominações que ajudam a pagar com precisão as transações e o gás. A menor denominação a.k.a unidade base é chamada de Wei. As denominações junto com seus nomes específicos podem ser vistas na tabela abaixo:

UnidadesValor WeiWei
wei1 wei1
Kwei1e3 wei1.000
Mwei1e6 wei1.000.000
Tricô1e9 wei1.000.000.000
microEther1e12 wei1.000.000.000.000
miliEther1e15 wei1.000.000.000.000.000
Éter1e18 wei1.000.000.000.000.000.000

Conforme discutido anteriormente, sabemos que EVM é responsável por executar o código que é implantado em sua rede. Então, o que está impedindo alguém de executar um loop infinito no EVM e sobrecarregar completamente sua memória? É aqui que o conceito de gás entra.

O gás é usado como uma métrica para pagar por recursos computacionais na rede. Cada contrato na rede tem uma quantidade máxima definida de gás que pode ser usada para seus cálculos. Isso é conhecido como “ Limite de Gás ”Outros termos de gás associados são os seguintes:

  • Preço da Gás : Este é o custo do gás em termos de tokens como o Éter e suas outras denominações. Para estabilizar o valor do gás, o preço do gás é um valor flutuante, de modo que se o custo dos tokens ou da moeda flutuar, o preço do gás muda para manter o mesmo valor real.
  • Taxa de Gás : Esta é efetivamente a quantidade de gás necessária a ser paga para executar uma transação ou programa específico (chamado de contrato).

Portanto, se alguém tentar executar um trecho de código que é executado para sempre, o contrato acabará excedendo seu limite de gás e toda a transação que invocou o contrato será revertida para seu estado anterior.


Agora que sabemos sobre a moeda, vamos dar uma olhada no processo que gera a nova moeda.

Tutorial Ethereum: Mineração

Ethereum, assim como outras tecnologias de blockchain públicas, garante a segurança por meio de um modelo baseado em incentivos. Isso é chamado de mecanismo de prova de trabalho. A figura abaixo mostra como funciona a mineração de ethereum:

De uma perspectiva mais técnica, o algoritmo de prova de trabalho usado é chamado de Ethash, que é um algoritmo de hash inspirado no Algoritmo Dagger-Hashimoto.

Agora que vimos a arquitetura de trabalho do ethereum e discutimos seus elementos essenciais, vamos ver um problema do mundo real e a abordagem do ethereum para resolvê-lo.

Tutorial Ethereum: Caso de uso de financiamento coletivo descentralizado

Declaração do Problema : Uma boa ‘ideia’ não é tudo no mundo de hoje para começar um negócio de sucesso. É necessário muito financiamento e esforço para implementar uma ideia. É aqui que organizações como o “Kickstarter” entram em cena. Eles fornecem projetos com a exposição pública necessária para doações para o seu projeto para colocá-lo em funcionamento, mas a arquitetura centralizada de tal motivo tem suas desvantagens, principalmente na forma como as recompensas são tratadas. Uma vez que a autoridade centralizada toma todas as decisões, os sistemas estão sujeitos a regras como:

  • quem perdeu o prazo da campanha não pode entrar mais
  • qualquer doador que mudou de ideia não pode sair

Abordagem :

Adotamos uma metodologia descentralizada para resolver o problema, conforme explicado na imagem abaixo:

Solução :

Aqui está o contrato inteligente de solidez para a definição do problema acima.

pragma solidez ^ 0.4.16 interface token {function transfer (address receiver, uint amount)} contract Crowdsale {endereço público beneficiário uint public fundingGoal uint public amountRaised uint public deadline uint public price token public tokenReward mapeamento (address => uint256) public balanceOf bool fundingGoalReached = false bool crowdsaleClosed = false evento GoalReached (destinatário do endereço, uint totalAmountRaised) evento FundTransfer (address backer, uint amount, bool isContribution) / ** * Função de construtor * * Configurar o proprietário * / função Crowdsale (endereço ifSuccessfulSendTo // o endereço do proprietário quando o financiamento é bem-sucedido uint fundingGoalInEthers // valor desejado para aumentar uint durationInMinutes // dado tempo uint etherCostOfEachToken // custo de capital próprio no endereço ether addressOfTokenUsedAsReward // endereço de token) {beneficiário = ifSuccessfulSendTo fundingGoal = prazo de financiamento + durationInMinutes * preço de 1 minuto = etherCostOfEachToken * 1 ether para kenReward = token (addressOfTokenUsedAsReward)} / ** * Função fallback * * A função sem nome é a função padrão que é chamada sempre que alguém envia fundos para um contrato * / function () payable {require (! crowdsaleClosed) uint amount = msg. valor balanceOf [msg.sender] + = montante amountRaised + = montante tokenReward.transfer (msg.sender, montante / preço) Modificador de transferência de fundos (msg.sender, montante, verdadeiro)} afterDeadline () {if (now = fundingGoal) {fundingGoalReached = true GoalReached (beneficiário, amountRaised)} crowdsaleClosed = true} / ** * Retirar os fundos * * Verifica se a meta ou o limite de tempo foi alcançado e, em caso afirmativo, se a meta de financiamento foi atingida, * envia o valor total ao beneficiário. Se a meta não for atingida, cada contribuidor pode sacar * a quantia com que contribuiu. * / function safeWithdrawal () afterDeadline {if (! fundingGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (amount> 0) {if (msg.sender.send (amount)) { FundTransfer (msg.sender, amount, false)} else {balanceOf [msg.sender] = amount}}} if (fundingGoalReached && beneficiáriosy == msg.sender) {if (beneficiário.send (amountRaised)) {FundTransfer (beneficiário, amountRaised, false)} else {// Se não conseguirmos enviar os fundos ao beneficiário, desbloquear o saldo do financiador fundingGoalReached = false}}}}

Caso você tenha interesse em aprender solidez, confira nosso blog no , que é usado para desenvolverpersonalizadocontratos inteligentes.

Se você deseja aprender Blockchain e construir uma carreira em tecnologias Blockchain, confira nosso que vem com treinamento ao vivo conduzido por instrutor e experiência em projetos da vida real. Este treinamento irá ajudá-lo a entender o Blockchain em profundidade e ajudá-lo a alcançar o domínio sobre o assunto.

Tem alguma questão para nós? Mencione isso na seção de comentários e entraremos em contato com você o mais rápido possível.