Visão geral do Ethereum
Ethereum é uma plataforma de software distribuída de código aberto baseada em blockchain que emergiu como um grande desafiante para o Bitcoin. Ethereum foi proposto pela primeira vez em 2013 pelo pesquisador de criptomoedas Vitalik Buterin, que sugeriu adicionar uma linguagem de script para programação ao Bitcoin. Foi lançado em 30 de julho de 2015. O desenvolvimento do Ethereum foi patrocinado por um crowdsale online, um tipo de crowdsourcing em que foram emitidos tokens de criptomoeda.
Leia mais: O que é Ethereum?
A criptomoeda nativa do Ethereum é chamada Ether (ETH) e possui uma linguagem de programação conhecida como Solidity. Blockchain, a tecnologia subjacente do Ethereum, é um livro-razão distribuído que mantém uma lista de registros permanente e à prova de falsificação. Essa arquitetura descentralizada permite que os desenvolvedores criem uma ampla gama de aplicativos descentralizados (dApps), aproveitando o ecossistema robusto e a versatilidade da plataforma.
Uma das principais características do Ethereum é o suporte a contratos inteligentes, que são contratos digitais executados automaticamente com base em condições predefinidas, conforme mencionamos na Lição 1. Estes contratos inteligentes permitem um ambiente sem confiança onde as transações podem ser realizadas de forma segura e transparente, sem a necessidade de intermediários. Os mineradores da rede Ethereum estavam produzindo tokens Ether, que servem não apenas como moeda, mas também como meio de pagar taxas de uso da plataforma; após “The Merge”, o Ethereum fez a transição para um mecanismo de Prova de Participação (PoS), onde validadores (não mineradores) validam transações e criam novos blocos. Em vez de produzir tokens Ether, os validadores ganham taxas de transação e bloqueiam recompensas em Ether por sua participação na rede. O Ether ainda serve como meio de pagamento de taxas de uso da plataforma, mas sua emissão e distribuição são diferentes do mecanismo anterior de Prova de Trabalho (PoW).
A capacidade do Ethereum de hospedar dApps e contratos inteligentes atraiu interesse significativo de desenvolvedores e organizações, tornando-o uma plataforma líder para a construção de soluções inovadoras em vários setores, incluindo finanças, cadeia de suprimentos e jogos, entre outros. À medida que o ecossistema Ethereum continua a evoluir, permanece na vanguarda da tecnologia blockchain, impulsionando a inovação e promovendo uma comunidade próspera de desenvolvedores e usuários.
Leia mais: O que é a fusão?
Leia mais: O que é DApp?
Introdução à linguagem de programação Solidity
Solidity é uma linguagem de programação de alto nível, de tipo estático, projetada especificamente para escrever contratos inteligentes no blockchain Ethereum. Desenvolvido pela equipe principal do Ethereum, a sintaxe do Solidity é influenciada pelo JavaScript, tornando-o familiar e acessível a uma ampla gama de desenvolvedores. A linguagem é Turing-completa, permitindo aos desenvolvedores criar lógicas complexas e implementar diversas funcionalidades em seus contratos inteligentes. O Solidity é compilado no bytecode Ethereum Virtual Machine (EVM), que é executado na rede Ethereum.
No Solidity, os desenvolvedores podem definir estruturas de dados personalizadas, criar funções definidas pelo usuário e implementar mecanismos de controle de acesso, entre outros recursos. Com o Solidity, é possível criar uma ampla gama de aplicações descentralizadas, incluindo plataformas financeiras descentralizadas (DeFi), tokens não fungíveis (NFTs), organizações autônomas descentralizadas (DAOs) e muito mais.
Estrutura de um contrato Solidity: Exemplo
Um contrato do Solidity é um trecho de código independente que consiste em variáveis, funções, eventos e modificadores, entre outros elementos. A estrutura básica de um contrato Solidity é a seguinte:
Diretiva Pragma: Esta linha especifica a versão compatível do compilador Solidity para o contrato inteligente. Por exemplo:
Solidez
pragma solidez ^0.8.0;
Definição do contrato: Esta linha declara o contrato e seu nome. \
Por exemplo:
Contrato Solidity
SimpleToken {
Variáveis de estado: São variáveis que armazenam o estado do contrato no blockchain. Por exemplo, você pode armazenar o fornecimento total de um token:
Solidez
uint256 público totalFornecimento;
Funções: As funções definem o comportamento do contrato e podem ser chamadas por usuários externos ou outros contratos. Aqui está uma função simples para transferir tokens:
Transferência de função Solidity
(endereço destinatário, valor uint256) público {
// ... transfer logic ...
}
Eventos: Os eventos são usados para registrar ações específicas no contrato e podem ser monitorados por usuários externos ou contratos. Por exemplo, um evento Transfer em um contrato de token:
Transferência de evento Solidity
(endereço indexado de, endereço indexado para, valor uint256);
Modificadores: Modificadores são usados para modificar o comportamento de funções, geralmente para controle de acesso ou verificações de pré-condições. Por exemplo, um modificador para verificar se o remetente possui tokens suficientes para transferir:
Modificador JavaScript
hasEnoughTokens(quantidade uint256) {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
_;
}
Construtor: O construtor é uma função especial que inicializa as variáveis de estado do contrato quando ele é implantado. Por exemplo, inicializando o fornecimento total de um token:
Construtor JavaScript
(uint256 _totalSupply) {
totalSupply = _totalSupply;
balanceOf[msg.sender] = _totalSupply;
}
Juntando tudo, um contrato simples do Solidity para um token pode ser assim:
Solidez do pragma TypeScript
^0.8.0;
contratos SimpleToken {
uint256 public totalSupply;
mapeamento (endereço => uint256) public balanceOf;
transferência de eventos (endereço indexado de, endereço indexado para, valor uint256);
modificador hasEnoughTokens(quantidade uint256) {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
_;
}
}
Destaques
Ethereum é uma plataforma baseada em blockchain que oferece suporte a contratos inteligentes e aplicativos descentralizados (dApps).
A criptomoeda nativa do Ethereum é o Ether (ETH).
Solidity é uma linguagem de programação de alto nível usada para escrever contratos inteligentes no Ethereum.
Os contratos inteligentes no Ethereum são executados automaticamente com base em condições predefinidas.
Ethereum fez a transição para um mecanismo de Prova de Participação (PoS) para validar transações e criar novos blocos.
O Solidity permite que os desenvolvedores definam estruturas de dados, criem funções, implementem controle de acesso e muito mais.
O ecossistema da Ethereum atrai desenvolvedores e organizações de diversos setores.
Os contratos de solidez consistem em pragmas, definição de contrato, variáveis de estado, funções, eventos, modificadores e construtores.
Os contratos Solidity podem ser usados para criar plataformas DeFi, NFTs, DAOs e muito mais.
Visão geral do Ethereum
Ethereum é uma plataforma de software distribuída de código aberto baseada em blockchain que emergiu como um grande desafiante para o Bitcoin. Ethereum foi proposto pela primeira vez em 2013 pelo pesquisador de criptomoedas Vitalik Buterin, que sugeriu adicionar uma linguagem de script para programação ao Bitcoin. Foi lançado em 30 de julho de 2015. O desenvolvimento do Ethereum foi patrocinado por um crowdsale online, um tipo de crowdsourcing em que foram emitidos tokens de criptomoeda.
Leia mais: O que é Ethereum?
A criptomoeda nativa do Ethereum é chamada Ether (ETH) e possui uma linguagem de programação conhecida como Solidity. Blockchain, a tecnologia subjacente do Ethereum, é um livro-razão distribuído que mantém uma lista de registros permanente e à prova de falsificação. Essa arquitetura descentralizada permite que os desenvolvedores criem uma ampla gama de aplicativos descentralizados (dApps), aproveitando o ecossistema robusto e a versatilidade da plataforma.
Uma das principais características do Ethereum é o suporte a contratos inteligentes, que são contratos digitais executados automaticamente com base em condições predefinidas, conforme mencionamos na Lição 1. Estes contratos inteligentes permitem um ambiente sem confiança onde as transações podem ser realizadas de forma segura e transparente, sem a necessidade de intermediários. Os mineradores da rede Ethereum estavam produzindo tokens Ether, que servem não apenas como moeda, mas também como meio de pagar taxas de uso da plataforma; após “The Merge”, o Ethereum fez a transição para um mecanismo de Prova de Participação (PoS), onde validadores (não mineradores) validam transações e criam novos blocos. Em vez de produzir tokens Ether, os validadores ganham taxas de transação e bloqueiam recompensas em Ether por sua participação na rede. O Ether ainda serve como meio de pagamento de taxas de uso da plataforma, mas sua emissão e distribuição são diferentes do mecanismo anterior de Prova de Trabalho (PoW).
A capacidade do Ethereum de hospedar dApps e contratos inteligentes atraiu interesse significativo de desenvolvedores e organizações, tornando-o uma plataforma líder para a construção de soluções inovadoras em vários setores, incluindo finanças, cadeia de suprimentos e jogos, entre outros. À medida que o ecossistema Ethereum continua a evoluir, permanece na vanguarda da tecnologia blockchain, impulsionando a inovação e promovendo uma comunidade próspera de desenvolvedores e usuários.
Leia mais: O que é a fusão?
Leia mais: O que é DApp?
Introdução à linguagem de programação Solidity
Solidity é uma linguagem de programação de alto nível, de tipo estático, projetada especificamente para escrever contratos inteligentes no blockchain Ethereum. Desenvolvido pela equipe principal do Ethereum, a sintaxe do Solidity é influenciada pelo JavaScript, tornando-o familiar e acessível a uma ampla gama de desenvolvedores. A linguagem é Turing-completa, permitindo aos desenvolvedores criar lógicas complexas e implementar diversas funcionalidades em seus contratos inteligentes. O Solidity é compilado no bytecode Ethereum Virtual Machine (EVM), que é executado na rede Ethereum.
No Solidity, os desenvolvedores podem definir estruturas de dados personalizadas, criar funções definidas pelo usuário e implementar mecanismos de controle de acesso, entre outros recursos. Com o Solidity, é possível criar uma ampla gama de aplicações descentralizadas, incluindo plataformas financeiras descentralizadas (DeFi), tokens não fungíveis (NFTs), organizações autônomas descentralizadas (DAOs) e muito mais.
Estrutura de um contrato Solidity: Exemplo
Um contrato do Solidity é um trecho de código independente que consiste em variáveis, funções, eventos e modificadores, entre outros elementos. A estrutura básica de um contrato Solidity é a seguinte:
Diretiva Pragma: Esta linha especifica a versão compatível do compilador Solidity para o contrato inteligente. Por exemplo:
Solidez
pragma solidez ^0.8.0;
Definição do contrato: Esta linha declara o contrato e seu nome. \
Por exemplo:
Contrato Solidity
SimpleToken {
Variáveis de estado: São variáveis que armazenam o estado do contrato no blockchain. Por exemplo, você pode armazenar o fornecimento total de um token:
Solidez
uint256 público totalFornecimento;
Funções: As funções definem o comportamento do contrato e podem ser chamadas por usuários externos ou outros contratos. Aqui está uma função simples para transferir tokens:
Transferência de função Solidity
(endereço destinatário, valor uint256) público {
// ... transfer logic ...
}
Eventos: Os eventos são usados para registrar ações específicas no contrato e podem ser monitorados por usuários externos ou contratos. Por exemplo, um evento Transfer em um contrato de token:
Transferência de evento Solidity
(endereço indexado de, endereço indexado para, valor uint256);
Modificadores: Modificadores são usados para modificar o comportamento de funções, geralmente para controle de acesso ou verificações de pré-condições. Por exemplo, um modificador para verificar se o remetente possui tokens suficientes para transferir:
Modificador JavaScript
hasEnoughTokens(quantidade uint256) {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
_;
}
Construtor: O construtor é uma função especial que inicializa as variáveis de estado do contrato quando ele é implantado. Por exemplo, inicializando o fornecimento total de um token:
Construtor JavaScript
(uint256 _totalSupply) {
totalSupply = _totalSupply;
balanceOf[msg.sender] = _totalSupply;
}
Juntando tudo, um contrato simples do Solidity para um token pode ser assim:
Solidez do pragma TypeScript
^0.8.0;
contratos SimpleToken {
uint256 public totalSupply;
mapeamento (endereço => uint256) public balanceOf;
transferência de eventos (endereço indexado de, endereço indexado para, valor uint256);
modificador hasEnoughTokens(quantidade uint256) {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
_;
}
}
Destaques
Ethereum é uma plataforma baseada em blockchain que oferece suporte a contratos inteligentes e aplicativos descentralizados (dApps).
A criptomoeda nativa do Ethereum é o Ether (ETH).
Solidity é uma linguagem de programação de alto nível usada para escrever contratos inteligentes no Ethereum.
Os contratos inteligentes no Ethereum são executados automaticamente com base em condições predefinidas.
Ethereum fez a transição para um mecanismo de Prova de Participação (PoS) para validar transações e criar novos blocos.
O Solidity permite que os desenvolvedores definam estruturas de dados, criem funções, implementem controle de acesso e muito mais.
O ecossistema da Ethereum atrai desenvolvedores e organizações de diversos setores.
Os contratos de solidez consistem em pragmas, definição de contrato, variáveis de estado, funções, eventos, modificadores e construtores.
Os contratos Solidity podem ser usados para criar plataformas DeFi, NFTs, DAOs e muito mais.