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

Olá, desenvolvedores! Nesse artigo vamos continuar nos aprofundando em Solidity, a linguagem mais comum por trás dos contratos inteligentes nas blockchains baseadas em EVM.

Analisando um Código Solidity

Vamos começar com um exemplo prático:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;

contract SimpleStorage {
    uint storedData;

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

    function get() public view returns (uint) {
        return storedData;
    }
}

Se você já tem experiência com outras linguagens de programação, a estrutura básica de Solidity será rapidamente familiar. Para detalhes mais aprofundados, não deixe de consultar a documentação oficial da linguagem Solidity.

Perguntas Chave para Entender Contratos Inteligentes

  1. Onde este programa é armazenado?
  2. Quem executa este programa?
  3. Onde os dados são armazenados?

Ao contrário do que geralmente se diz, contratos inteligentes não “executam na blockchain” da mesma forma que stored procedures não executam “nas tabelas de SGBDs”. Eles são armazenados na blockchain e acionados por transações, executando na memória do minerador ou validador, dependendo do algoritmo de consenso.

Interagindo com a Blockchain: Deployment e Transações

  • Deployment: Você envia seu contrato para a blockchain por meio de uma transação de deployment, que, sendo uma escrita, tem um custo associado.
  • Custos de Transações: Deployments são pagos pelo desenvolvedor, enquanto transações subsequentes são custeadas pelos usuários. Estes pagamentos são feitos no token nativo da rede (Ether para Ethereum, MATIC para Polygon, etc.).
  • Nós de Rede: Todos esses processos são intermediados por nós conectados à rede, que gerenciam e propagam as alterações.

O Custo do GAS e a Otimização de Contratos

O custo em GAS (medida utilizada para determinar o consumo) das transações depende do tamanho da computação e do espaço utilizado no bloco. Aqui, você encontrará uma dinâmica única: diferente de uma API comum, onde mais RAM e armazenamento resolvem a maioria dos problemas, contratos inteligentes exigem otimização e previsibilidade. Por exemplo, um loop pode elevar significativamente o custo.

Leitura Adicional e Próximos Passos

Como atividade, sugiro ler o tópico Blockchain Basis e The Ethereum Virtual Machine para se aprofundar ainda mais. No nosso próximo artigo, abordaremos o deployment de contratos inteligentes na rede de teste. Fique ligado!

Leave a Reply

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