Pular para o conteúdo
0%

Como economizamos mais de US$ 3 milhões por ano com o Notify API e SDK da Alchemy

Uma otimização e tanto, bem debaixo do nosso nariz

Se você constrói em web3, precisa testar suas aplicações descentralizadas. Mas testar em redes reais custa muito dinheiro. Por isso, builders de web3 usam testnets como a Goerli, onde transacionar e validar comportamento com tokens de testnet é gratuito.

Para obter tokens de testnet, você precisa de faucets. Faucets são um serviço crítico que "pinga" tokens de testnet gratuitos para builders, para que possam construir em testnets como Goerli ou Mumbai.

Na Alchemy, nossa missão é levar o web3 a um bilhão de pessoas, especialmente esses builders. Por isso, construímos faucets que facilitam o trabalho dos desenvolvedores, trazendo acesso sem precedentes a tokens de testnet para todos os desenvolvedores, enquanto simplificamos e disseminamos o desenvolvimento em web3.

Desde 2021, operamos o Goerli Faucet e o Mumbai Faucet (além do descontinuado Rinkeby Faucet), enviando tokens de testnet para desenvolvedores mais de 3 milhões de vezes!

Os faucets Goerli e Mumbai atualmente atendem a tanto tráfego que operá-los custa à Alchemy vários milhões de dólares por ano. Mas recentemente identificamos uma economia de 300x nos custos, totalizando mais de US$ 3 milhões economizados por ano.

Como, você pergunta?

Usando o Alchemy Notify e o Alchemy SDK... nossos próprios produtos... bem debaixo do nosso nariz.

Leia 👇 para entender como otimizamos os faucets. Use nossas técnicas para otimizar suas aplicações também.

Problema: chamadas JSON-RPC excessivas (e caras)

Os dois principais problemas em como operávamos nossos faucets eram:

  1. Chamadas excessivas a getTransactionReceipt
  2. Uso de uma biblioteca web3 legada

Dado o volume diário de solicitações ao faucet, o número total de chamadas RPC aos nossos nodes cresceu rapidamente.

Metric
Value

Solicitações ao faucet
Solicitações de usuários ao faucet

26 mil solicitações / dia

Solicitações de transação
Nossas chamadas a getTransactionReceipt

305 milhões de solicitações / dia

Custo

US$ 3 milhões

Vamos examinar cada problema.

1. Nenhum sistema de notificação para confirmar transações mineradas

Toda vez que um usuário solicitava Goerli ETH (GETH) ou Mumbai MATIC, chamávamos getTransactionReceipt repetidamente até que a transação fosse confirmada como minerada, muitas vezes exigindo várias chamadas a getTransactionReceipt por única solicitação de usuário.

Com tráfego nominal no faucet, e sem o bug da biblioteca web3 legada, esse modelo teria sido extremamente ineficiente, mas não exorbitante.

Em média, teríamos enviado ~16 chamadas a getTransactionReceipt toda vez que um usuário solicitasse tokens do faucet.

2. Uso de uma biblioteca Web3 legada

Nosso serviço usava uma biblioteca web3 legada que, sem que soubéssemos, tinha um bug. Mesmo após confirmar uma transação bem-sucedida, o sistema continuava chamando nossos nodes, aumentando drasticamente o número total de chamadas (desnecessárias) a getTransactionReceipt.

Alchemy Dashboard Demo
Free video demo

Veja o Alchemy dashboard em ação

Walkthrough guiado de 30 minutos: todas as ferramentas do dashboard, demonstradas ao vivo.

Watch the demo

Solução: Alchemy Notify e o Alchemy SDK

As duas principais soluções que implementamos para reduzir as caras chamadas JSON-RPC aos nossos nodes foram:

  1. Substituir chamadas a getTransactionReceipt pelas notificações via webhook do Alchemy Notify
  2. Substituir a biblioteca web3 legada pelo Alchemy SDK

1. Migrando para o Alchemy Notify

Abandonamos a chamada direta ao método getTransactionReceipt bruto e passamos a usar os webhooks do Alchemy Notify para receber notificações em tempo real quando transações são mineradas e descartadas. Sem chamadas de saída, as notificações são enviadas diretamente para nós quando os usuários recebem GETH com sucesso.

2. Atualizando para o Alchemy SDK

Migramos da biblioteca web3 legada para o Alchemy SDK, corrigindo efetivamente o bug que aumentava exponencialmente o número de chamadas a getTransactionReceipt necessárias.

Economia de custo anualizada

Essas duas mudanças simples economizaram para nossa equipe um custo anualizado de mais de US$ 3.000.000. Para operar nossos faucets, reduzimos o custo total anual para aproximadamente US$ 560. 🤯

Metric
Value

Solicitações ao faucet
Enviadas por usuários ao faucet

26 mil solicitações / dia

Solicitações de transação
Nós chamando getTransactionReceipt

0 / dia

Custo total

US$ 560

O que isso significa para o seu projeto

Produtos como o Alchemy Notify e o Alchemy SDK são projetados para resolver problemas que tornam a operação de seus produtos web3 desnecessariamente cara, trabalhosa e demorada.

Eles são muito fáceis de configurar, e os benefícios de economia de custo e tempo garantem que você tenha tempo e dinheiro para focar no core business do seu frontend, em vez de se preocupar com a infraestrutura do seu backend.

Gradiente de fundo

Construa magia blockchain

A Alchemy combina os produtos e ferramentas de desenvolvimento web3 mais poderosos com recursos, comunidade e suporte lendário.