MultiBaasによるブロックチェーンイベント監視の可能性:ポーリング、WebSockets、Webhooks
2024/01/17
ブロックチェーンからデータを取得するのは難しい場合があります。これは、ブロックチェーンのトランザクションが非同期で含まれ、状態が最終的一貫性のみを持つからです。
ブロックチェーンからほぼリアルタイムのデータ更新を取得するための3つの主要な方法があります:ポーリング、WebSockets、および Webhooks。ブロックチェーンのデータ更新が必要な理由は何ですか?例としては、DAO投票が完了したときにメールを送信したり、ロールプレイングゲームで画面上のヒットポイントを更新したり、転送が完了したときに通知を受け取る必要がある場合などです。
この記事では、これら3つの方法がどのように機能するか、そして今日からそれらを使用してオンチェーンの状態変更を監視し始める方法を示します。
MultiBaasとは何ですか?アプリケーションへのブロックチェーン統合を合理化するように設計されたMultiBaasは、開発者がDAppsを開発し、ブロックチェーン上のイベントを監視して対応するためのツールのスイートを提供するSaaSプラットフォームです。

状態変更のためのポーリング
ポーリングは、イベントモニタリングの従来の方法で、定期的にブロックチェーンに更新を問い合わせることを含みます。実装は簡単ですが、ポーリングにはレイテンシやリソース消費のトレードオフがあります。
分散アプリケーションにおけるポーリングの一般的な動作は次のとおりです:
⏱️ アプリケーションまたはクライアントは、ブロックチェーンネットワークに更新を問い合わせる特定の時間間隔またはスケジュールを設定します。
📞 各ポーリング間隔で、アプリケーションはリクエストをブロックチェーンネットワークに送信します。通常、APIまたはSDKを介して行います。
🔍 APIはクエリを受信し、それを処理して、データを返します。クライアントに応答します。
✉️ 応答には、トランザクションの詳細、ブロック情報、またはスマートコントラクトデータなど、要求されたデータや情報が含まれています。
✅ アプリケーションまたはクライアントは、応答を受信し、データを処理します。それは自身のシステムを更新したり、アクションを引き起こしたり、情報をユーザーに表示したりすることがあります。
🔁 応答を処理した後、アプリケーションは次のポーリング間隔を待って、ブロックチェーンネットワークの新しい更新を確認するためにリクエストを繰り返します。

ポーリングはブロックチェーンからデータを取得するのに効果的ですが、WebSocketsやWebhooksのような他のメカニズムと比較すると、効率的でも即時でもありません。
WebSockets:効率的な双方向通信
WebSocketは、クライアントとサーバー間で双方向通信を可能にする単一のTCP接続を介したフルデュプレックス通信チャネルを提供する通信プロトコルです。 MultiBaasは、特定のアドレスに対するスマートコントラクトイベントのWebSocketストリームを高度な機能として提供します。
MultiBaasでのWebSocketsの一般的な動作についての説明は次のとおりです:
🔗 クライアントとMultiBaasの間に接続が確立されます。
↔️ ブロックチェーンでイベントが発生すると、MultiBaasはそれについての通知を受け取ります。MultiBaasはその後、WebSocket接続を介してクライアントアプリケーションにデータをプッシュします。
✅ クライアントアプリケーションは、MultiBaasのWebSocket接続を介してブロックチェーンデータの継続的なストリームを受け取ることができます。

定期的なポーリングや頻繁な更新要求に依存する代わりに、WebSocket接続は持続的な接続と即時データ送信を可能にし、チャットアプリケーション、リアルタイムコラボレーションツール、ライブデータストリーミングなど、即時の更新とブロックチェーンとの相互作用が必要なライブアプリケーションに最適です。
また、ノードプロバイダーを使用してブロックチェーンイベントをWebSocketsで監視することも可能です。たとえば、InfuraやWebSockets経由のEVM JSON RPC APIがあります。Infura Polygon WSS APIでWebSocketサブスクリプションを使用する方法についてのウォークスルーを以下に示します。
ブロックチェーンノードWebSocketと直接対話する際のいくつかの課題は次のとおりです:
イベントの手動デコード
チェーン再編成への対処
ノードが消失したり、遅れたりする場合の対応
MultiBaasは、この複雑さを自動的に処理しますので、注意してください。
Webhooks
Webhooksは、ブロックチェーンイベントの発生を設定可能なHTTPエンドポイントに通知を送信します。これらは簡単な原則で機能します:ブロックチェーン上で特定のイベントが発生すると、Webhookがトリガーされます。このWebhookは、その後、指定されたHTTPエンドポイントまたはURLに通知を送信し、通常はアプリケーションやサーバーで、ほぼリアルタイムでイベントの詳細を提供します。
MultiBaasのWebhooksの動作についての高レベルの概要は次のとおりです:
🔔 特定のイベントがブロックチェーンネットワークで発生します。たとえば、新しいトランザクションがブロックに追加されたり、スマートコントラクトが実行されたりします。
🪝MultiBaasのようなWebhookプロバイダーがイベントを検出し、対応するWebhookをトリガーします。
📦 Webhookは、トランザクションの詳細、ブロック情報、またはスマートコントラクトデータなど、イベントに関する関連情報を含むペイロードを生成します。
📩 Webhookは、指定されたエンドポイントまたはURLにHTTP POSTリクエストを送信し、イベントの詳細を含むペイロードを配信します。
✅ 指定されたエンドポイントの受信アプリケーションまたはサーバーは、受信リクエストを処理し、ペイロードデータを抽出します。アプリケーションは、受け取ったデータを使用して自身のシステムを更新したり、アクションをトリガーしたり、ユーザーに通知したりすることができます。

MultiBaasは、ブロックチェーンのイベント重複排除、ブロックチェーントランザクションの状態管理、バックオフを伴う自動再試行などを処理するロジックを構築しているため、データを取得するプロセスをさらに抽象化し、簡素化します。
Webhooksは、取引所での暗号資産取引に実用的な応用を見出します。たとえば、資産取引の購入や販売についてユーザーに通知するためのプッシュ通知を有効にするために使用できます。eコマースでは、Webhookにより、Shopifyなどのプラットフォームがトランザクションが発生したときに通知を送信できます。
まとめ
あなたのアプリケーションに最適なのはどれですか?
それはユースケースによります。
チャットアプリケーションの構築、リアルタイムコラボレーションツール、またはライブデータストリーミングのためにライブで即時の更新が必要な場合、WebSocketストリーミングが必要です。
しかし、トークン価格を監視するダッシュボードを構築している場合や、オープン接続が必要ない場合は、ポーリングを使用することもあります。
ユーザーがオンチェーンイベントに関するプッシュ通知を受け取るシステムを確立する必要がある場合は、Webhooksを使用することをお勧めします。
MultiBaasを使い始める
これらのテクニックを試すために、MultiBaasで無料のプロダクションアカウントを作成できます。ここでサインアップしてください。詳細はWebhookのドキュメントをご覧ください。WebSocketsにはカスタム構成が必要ですので、WebSocketsをMultiBaasで利用したい場合は、お問い合わせください。WebSocketsを使用したプログラミングに関するより一般的な情報は、こちらをクリックしてください。
