AlchemyのNotify APIとSDKで年間300万ドル以上を削減した方法
目からウロコの最適化
web3で開発する以上、分散型アプリケーションのテストは避けて通れません。しかし実際のネットワーク上でのテストには多額の費用がかかります。そこでweb3のビルダーはGoerliなどのtestnetを利用し、testnetトークンを使って無料でトランザクションや動作検証を行っています。
testnetトークンを入手するにはfaucetが必要です。faucetはビルダーに無料のtestnetトークンを「垂らす」重要なサービスで、GoerliやMumbaiといったtestnet上での開発を支えています。
Alchemyは、web3を10億人に届けることをミッションとしており、特にこうしたビルダーを対象としています。そこで私たちは、開発者がより簡単に開発できるよう、あらゆる開発者に前例のないtestnetトークンへのアクセスを提供しつつ、web3における開発をシンプルにし普及させるfaucetを構築しました。
2021年以降、Goerli FaucetとMumbai Faucetを運用してきました(廃止済みのRinkeby Faucetも含む)。これまでに300万回以上、開発者にtestnetトークンを送付しています。
現在、GoerliとMumbaiのfaucetは非常に多くのトラフィックを処理しており、その運用にはAlchemyだけで年間数百万ドルのコストがかかっています。しかし最近、私たちは300倍のコスト削減を実現し、年間300万ドル以上を節約することに成功しました。
どうやって実現したのか。
Alchemy NotifyとAlchemy SDK――自社製品を使うことで、です。
faucetをどのように最適化したか、以下で解説します👇 同じ手法を使って、あなたのアプリも最適化してみてください。
問題:過剰な(そして高コストな)JSON-RPC呼び出し
私たちのfaucetの運用方法には、主に次の2つの問題がありました。
- getTransactionReceipt呼び出しが過剰であったこと
- レガシーなweb3ライブラリを使用していたこと
faucetリクエストの日々の量を考えると、ノードへのRPC呼び出しの総数はあっという間に膨れ上がりました。
それぞれの問題を詳しく見ていきます。
1. マイニング済みトランザクションを確認する通知システムがなかった
ユーザーがGoerli ETH(GETH)またはMumbai MATICをリクエストするたびに、トランザクションがマイニングされて確認されるまで、私たちはgetTransactionReceiptを連続して呼び出していました。1件のユーザーリクエストに対して、getTransactionReceiptを何度も呼び出す必要が生じることも珍しくありませんでした。
faucetのトラフィックが平常時であり、かつレガシーなweb3ライブラリのバグがなければ、この方式は非常に無駄が多いものの、法外なコストにはならなかったはずです。
ユーザーがfaucetからトークンをリクエストするたびに、平均してgetTransactionReceiptへの呼び出しを約16回送信していたことになります。
2. レガシーなWeb3ライブラリを使用していたこと
私たちのサービスは、気づかないうちにバグを抱えたレガシーなweb3ライブラリを使用していました。トランザクションの成功を確認した後も、システムはノードの呼び出しを継続してしまい、結果としてgetTransactionReceiptへの(不要な)呼び出しの総数を大幅に増加させていました。
Alchemyダッシュボードの実演を見る
30分のガイド付きウォークスルー:ダッシュボードの全ツールをライブで実演
Watch the demo解決策:Alchemy NotifyとAlchemy SDK
ノードへの高コストなJSON-RPC呼び出しを削減するために実施した主な解決策は、次の2つです。
- getTransactionReceipt呼び出しを、Alchemy NotifyのWebhook通知に置き換えた
- レガシーなweb3ライブラリをAlchemy SDKに置き換えた
1. Alchemy Notifyへの移行
私たちは、生のgetTransactionReceiptメソッドの呼び出しをやめ、Alchemy NotifyのWebhookを使ってトランザクションがマイニングまたはドロップされた際にリアルタイムで通知を受け取るようにしました。外部への呼び出しをゼロにしたことで、ユーザーがGETHを正常に受け取った際、通知が直接こちらに送られてくるようになりました。
2. Alchemy SDKへのアップグレード
私たちはレガシーなweb3ライブラリからAlchemy SDKへ移行し、getTransactionReceipt呼び出しの必要回数を指数関数的に増加させていたバグを、実質的に解消しました。
年間コスト削減額
このシンプルな2つの変更によって、チームは年間300万ドル以上のコストを削減できました。faucetの運用にかかる年間総コストは、約560ドルまで削減されています。🤯
あなたのプロジェクトにとっての意味
Alchemy NotifyやAlchemy SDKのような製品は、web3プロダクトの運用を不必要に高コストで、煩雑で、時間のかかるものにしてしまう問題を解決するために設計されています。
これらは非常に簡単にセットアップでき、コストと時間の削減によって、バックエンドインフラを心配する代わりに、フロントエンドのコアビジネスに時間とお金を注げるようになります。
関連する事例紹介
チェーン2023年12月20日
Optimism x Alchemy:開発者の成功を実現
2022年末までに、OptimismのTVLは10億米ドルを超え、Optimistic rollupsの活用により、2022年12月時点でガスコストはEthereumの51分の1まで削減された。
チェーン2023年12月20日
AlchemyがPolygonの急成長を支える
DeFi2026年10月13日
Cash Appがステーブルコインの資金移動を現金と同じくらいシンプルにする方法
Cash AppはAlchemy Node APIsとWebhooksを使い、すべてのステーブルコイン残高と送金を公開チェーンの状態に対して継続的に検証できる状態に保っています。

ブロックチェーンの力を形に
Alchemyは、最も強力なweb3開発者向けプロダクトとツールに、リソース、コミュニティ、そして頼れるサポートを組み合わせています。