Cloudflare Web3 ゲートウェイを使うと、標準の HTTP リクエストで分散ネットワーク(IPFS と Ethereum)とやり取りできます。自分で IPFS や Ethereum のノードを動かさず、ドメインを Cloudflare に向けておけば、ゲートウェイがネットワーク通信を代行します。
ゲートウェイを作成する と、Cloudflare は特定の DNS レコード を自動で作成し、Cloudflare アカウントに追加します。ゲートウェイに紐づくホスト名へリクエストが届くと、これらの DNS レコードがそのリクエストを、基盤ネットワークと通信する Cloudflare Workers スクリプトへルーティングします。
アプリケーションが読み取りリクエスト(たとえば IPFS からのファイル取得や Ethereum アカウント残高の照会)を送ると、ゲートウェイは近くの Cloudflare データセンターにレスポンスがすでにキャッシュされているかを確認します。
- キャッシュがある場合、基盤ネットワークへ問い合わせず、すぐに HTTP でコンテンツを返します。
- キャッシュがない場合、ゲートウェイは Cloudflare 自身の IPFS または Ethereum ノードからコンテンツを取得し、今後のリクエスト向けにキャッシュしてから HTTP で返します。
書き込み操作は、新しいデータをネットワークへ送ります。たとえば、トランザクションの送信やスマートコントラクトのデプロイです。ゲートウェイはリクエストを Cloudflare の Ethereum ノードの 1 つへ転送し、そのノードがトランザクションを mempool(ブロックに取り込まれるのを待つ未確定トランザクションのキュー)に入れます。
その後、ネットワークのバリデーターが mempool からトランザクションを選び、ブロックにまとめ、ブロックの妥当性について合意します。ブロックが受理されると、恒久的なブロックチェーン記録の一部になります。ゲートウェイはトランザクション ID を返すので、アプリケーション側で結果を追跡できます。