Introdução
Quando comecei minha pesquisa sobre Ethereum, comecei estudando os trabalhos de pesquisadores que me precederam. Feito isso, comecei a replicá-los para aprender sobre e experimentar em cima de seus resultados. Um estudo específico se destacou nesse cenário: Azevedo Sousa et al. (2021). O objetivo era correlacionar o tempo pendente para transações Ethereum com a taxa de gás oferecida.
Alguma teoria por trás disso
Antes de prosseguir com os problemas que enfrentei, é essencial entender os conceitos de tempo pendente e taxa de gás nas transações Ethereum. O tempo pendente refere-se ao tempo que uma transação passa esperando na fila para ser incluída na rede. A taxa do gás, por outro lado, é o incentivo pago aos mineradores para processar e validar transações. Sabe-se que taxas de gás mais altas normalmente levam a tempos de transação mais rápidos, já que os mineradores priorizam transações que oferecem maiores recompensas. Esse conhecimento geral era o que o estudo tentava validar.
Os desafios
Tentei analisar dados de transações mais recentes usando a mesma metodologia, para ver se as tendências identificadas no estudo anterior ainda se mantinham. No entanto, encontrei um obstáculo significativo: as APIs disponíveis para dados Ethereum não forneciam informações sobre tempo pendente. Além disso, não consegui mais extrair os dados antigos devido a mudanças na infraestrutura da web. O que eu poderia fazer então?
Crawler em tempo real
Para superar essa limitação, decidi desenvolver um crawler que rastreasse novas transações em tempo real. Com essa abordagem, pude calcular o tempo que levou para cada transação ser aprovada e adicionada ao blockchain. Para esta tarefa, utilizei a biblioteca web3.eth para web3js. Este foi meu primeiro contato com o Node.js, que me foi mostrado como uma nova curva de aprendizado.
Um dos aspectos mais desafiadores deste projeto foi lidar com a programação assíncrona. Eu precisava armazenar dados em tempo real e, ao mesmo tempo, rastrear novas transações. Gerenciar esses processos simultâneos exigiu que eu aprendesse técnicas de programação assíncrona, o que foi uma curva de aprendizado acentuada para mim naquele momento.
O que eu ganhei com isso
Embora os dados coletados neste projeto não tenham sido utilizados em nenhum artigo publicado, a experiência foi extremamente valiosa para o meu crescimento pessoal e profissional. Ele me proporcionou experiência prática em rastreamento de dados em tempo real, programação assíncrona e trabalho com novas tecnologias. Este projeto também serve como uma base para possíveis esforços futuros de pesquisa na área de blockchain e criptomoedas. Quaisquer comentários ou sugestões são bem-vindos! O projeto está disponível no Github.