Introdução a Solidity: Dados e Armazenamento na EVM #1

Bem-vindo à nossa jornada pela linguagem Solidity! Nesta série, vamos mergulhar nos aspectos cruciais desta linguagem fascinante, com a documentação oficial como nossa principal referência. O objetivo aqui não é substituir a documentação – que por sinal é excelente – mas sim destacar pontos e dicas que teriam sido incrivelmente úteis no início da minha aventura no mundo da blockchain.

Com mais de duas décadas de experiência em programação, incluindo anos dedicados a blockchain, posso dizer com confiança que esta tecnologia é uma das mais intrigantes com as quais trabalhei. E para que você entenda melhor o impacto dessa afirmação, vamos nos aprofundar no universo do Solidity e da Ethereum Virtual Machine (EVM) que é o ambiente de execução para contratos inteligentes.

Transações na EVM

O ponto chave para começar a entender a EVM, e o que blockchains compatíveis com esta máquina virtual podem oferecer, é o foco em dados. Simplificando o que tange contratos inteligentes, o processo funciona assim:

  • Uma transação do usuário executa um método do seu contrato inteligente.
  • Este método lê um dado armazenado em um bloco (consultando o estado do seu contrato).
  • Executa-se uma computação e, possivelmente, o estado do contrato é alterado.
  • O novo estado é então armazenado em um novo bloco.

Mas surge a pergunta: uma transação pode executar um método que não leia o estado do contrato? A resposta é um pouco de sim e não. É possível realizar tal operação, mas ela não se configura como uma transação efetiva, sendo mais uma execução na memória local ou do nó conectado à rede. O conceito aqui é entender como transações interagem e alteram o estado da blockchain.

Ações Práticas: Sua Jornada Começa Aqui!

Para você praticar e se familiarizar com o ambiente, siga estes passos:

  1. Configure a MetaMask em seu navegador.
  2. Conecte-se à rede de teste Holesky.
  3. Adquira tokens de teste da rede Holesky.
  4. Tente transferir algo para o endereço 0x63ccD675Be3269a82593aC14DE3d3A0485916376 (meu endereço). Tentarei reenviar o valor para completar seu teste de transferência de saldo.

Caso esses passos pareçam complicados, não se preocupe! É uma ótima oportunidade para aprender e pesquisar os tópicos de cada passo. E no próximo artigo, vamos explorar juntos um exemplo prático do manual de um contrato inteligente escrito em Solidity:

pragma solidity ^0.4.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) {
        storedData = x;
    }

    function get() constant returns (uint) {
        return storedData;
    }
}

Até a próxima, e que a aventura no Solidity comece!

Próximo artigo >>

Leave a Reply

Your email address will not be published. Required fields are marked *