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:
- Configure a MetaMask em seu navegador.
- Conecte-se à rede de teste Holesky.
- Adquira tokens de teste da rede Holesky.
- 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!
Leave a Reply