Saltar al contenido
0%

Cómo ahorramos más de $3M al año con Notify API y SDK de Alchemy

Una optimización radical, justo frente a nuestros ojos

Si construyes en web3, necesitas probar tus aplicaciones descentralizadas. Pero probar en redes reales cuesta mucho dinero. Por eso los desarrolladores de web3 usan testnets como Goerli, donde las transacciones son gratuitas y se puede validar el comportamiento usando tokens de testnet.

Para obtener tokens de testnet, necesitas faucets. Los faucets son un servicio crítico que entrega ("gotea") tokens de testnet gratis a los desarrolladores, para que puedan construir en testnets como Goerli o Mumbai.

En Alchemy, nuestra misión es llevar web3 a mil millones de personas, especialmente a estos desarrolladores. Por eso construimos faucets que facilitan el trabajo de los desarrolladores, brindando un acceso sin precedentes a tokens de testnet para todos los desarrolladores, mientras simplificamos y promovemos el desarrollo en web3.

Desde 2021, operamos el Goerli Faucet y el Mumbai Faucet (además del ya descontinuado Rinkeby Faucet), ¡enviando tokens de testnet a desarrolladores más de 3 millones de veces!

Los faucets de Goerli y Mumbai actualmente reciben tanto tráfico que operarlos le cuesta a Alchemy varios millones de dólares al año. Pero recientemente logramos un ahorro de 300x en costos, que suma más de $3M al año.

¿Cómo lo logramos?

Usando Alchemy Notify y el Alchemy SDK... nuestros propios productos... que teníamos justo frente a nuestros ojos.

Lee 👇 para saber cómo optimizamos los faucets. Usa nuestras técnicas para optimizar tus propias aplicaciones también.

Problema: llamadas JSON-RPC excesivas (y costosas)

Los dos problemas principales de cómo operábamos los faucets eran:

  1. Llamadas excesivas a getTransactionReceipt
  2. El uso de una librería de web3 obsoleta

Dado el volumen diario de solicitudes al faucet, el número total de llamadas RPC a nuestros nodos se acumuló rápidamente.

Metric
Value

Solicitudes al faucet
Solicitudes de usuarios al faucet

26k solicitudes / día

Solicitudes de transacción
Nuestras llamadas a getTransactionReceipt

305 millones de solicitudes / día

Costo

$3 millones

Veamos cada problema en detalle.

1. Sin sistema de notificaciones para confirmar transacciones minadas

Cada vez que un usuario solicitaba Goerli ETH (GETH) o Mumbai MATIC, llamábamos de forma consecutiva a getTransactionReceipt hasta que la transacción se confirmaba como minada, lo que a menudo requería muchas llamadas a getTransactionReceipt por cada solicitud de usuario.

Con un tráfico nominal del faucet, y sin el bug de la librería de web3 obsoleta, este modelo habría sido extremadamente ineficiente, pero no desorbitado.

En promedio, habríamos enviado ~16 llamadas a getTransactionReceipt cada vez que un usuario solicitaba tokens del faucet.

2. Uso de una librería de Web3 obsoleta

Nuestro servicio usaba una librería de web3 obsoleta que, sin que lo supiéramos, tenía un bug. Incluso después de confirmar una transacción exitosa, el sistema seguía llamando a nuestros nodos, aumentando drásticamente el número total de llamadas (innecesarias) a getTransactionReceipt.

Alchemy Dashboard Demo
Free video demo

Mira el dashboard de Alchemy en acción

Recorrido guiado de 30 minutos: cada herramienta del dashboard, demostrada en vivo.

Watch the demo

Solución: Alchemy Notify y el Alchemy SDK

Las dos soluciones principales que implementamos para reducir las costosas llamadas JSON-RPC a nuestros nodos fueron:

  1. Reemplazar las llamadas a getTransactionReceipt con las notificaciones por webhook de Alchemy Notify
  2. Reemplazar la librería de web3 obsoleta con el Alchemy SDK

1. Migración a Alchemy Notify

Dejamos de llamar directamente al método getTransactionReceipt y comenzamos a usar los webhooks de Alchemy Notify para recibir notificaciones en tiempo real cuando las transacciones se minan o se descartan. Sin llamadas salientes, las notificaciones nos llegan directamente cuando los usuarios reciben GETH exitosamente.

2. Actualización al Alchemy SDK

Migramos de la librería de web3 obsoleta al Alchemy SDK, lo que corrigió el bug que aumentaba exponencialmente el número de llamadas requeridas a getTransactionReceipt.

Ahorro de costos anualizado

Estos dos cambios simples le ahorraron a nuestro equipo un costo anualizado de más de $3,000,000. Para operar nuestros faucets, redujimos el costo anual total a aproximadamente $560. 🤯

Metric
Value

Solicitudes al faucet
Enviadas por los usuarios al faucet

26k solicitudes / día

Solicitudes de transacción
Nuestras llamadas a getTransactionReceipt

0 / día

Costo total

$560

Lo que esto significa para tu proyecto

Productos como Alchemy Notify y el Alchemy SDK están diseñados para resolver problemas que hacen que operar tus productos de web3 sea innecesariamente costoso, complicado y lento.

Son muy fáciles de configurar, y los beneficios en ahorro de costos y tiempo te permitirán enfocarte en tu negocio principal de frontend, en lugar de preocuparte por tu infraestructura de backend.

Gradiente de fondo

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo web3 más potentes con recursos, comunidad y un soporte legendario.