コンテンツに移動
インフラストラクチャ

Google Cloud でノードをホストする: Web3 インフラストラクチャの柱

2023年3月10日
https://storage.googleapis.com/gweb-cloudblog-publish/images/web3_2022_7d2BUsw.max-2500x2500.jpg
Google Cloud Japan Team

※この投稿は米国時間 2023 年 3 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。

ブロックチェーンノードは、ブロックチェーン ネットワークを内包して分散型台帳を保存する仮想コンピュータを動かすための物理マシンです。以下のように、ブロックチェーン ノードにはさまざまな種類があります。

  • RPC ノード: DApp、ウォレットなどのブロックチェーン「クライアント」がブロックチェーン「ゲートウェイ」としてこれを使用して、トランザクションの読み取りや送信を行います

  • バリデータ ノード: コンセンサスに参加してブロックを生成することでネットワークを保護します

  • アーカイブ ノード: インデクサがこれを使用してノードのアーカイブを行い、オンチェーン トランザクションの完全な履歴を取得します

ノードのデプロイと管理は高額になることや、時間のかかる複雑な作業になることがあります。クラウド プロバイダを利用すれば、ノード ホスティングの複雑さに関して考慮する必要がなくなるので、Web3 デベロッパーがインフラストラクチャについて心配する必要がなくなります。この記事では、Google Cloud で独自のノードを実行することでどのように課題を回避できるか、および、フルマネージド サービスのブロックチェーン ノード エンジンで、さまざまなシナリオでノード ホスティングをさらに簡単にする方法を説明します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Node-Hosting-Chart_A.max-2200x2200.jpg
図 1 - ブロックチェーン ノード

ノード実行が困難になる、高額になることが多い理由

デベロッパーはしばしば、サードパーティが提供する共有ノードと組み合わせて独自のノードをデプロイしています。フリー RPC ノードは開始の段階では十分ですが、レイテンシやパフォーマンスの要件を満たせない可能性があります。Web3 インフラストラクチャ プロバイダの API や専用ノードも 1 つの選択肢であり、デベロッパーは基盤となるブロックチェーン ノード インフラストラクチャについて心配することなく、アプリに集中できるようになります。ただ、独自のノードをクラウドで実行することが有利な場合もあります。以下はその例です。

  • プライバシーは RPC 呼び出しにとってきわめて重要であるため、公共のインターネットを経由させることはできません。

  • 規制のある特定の業界では、特定地域で運用を行ってノードを管理することが要求されることあります。

  • 最適なパフォーマンスを実現するようにノード ハードウェアを構成する必要があります。

  • DApp の場合、ノードに低レイテンシが要求されます。

  • 組織は、大きな利害関係に絡むバリデータであり、バリデータ ノードのアップタイムとセキュリティを管理できるようにする必要があります。

  • ノードを使用する他の何かの影響を受けない、予測可能で一貫性の高い優れた性能が組織に求められます。

Ethereum の場合、料金の受取人は、ユーザー トランザクションからのチップを受け取るためにバリデータが指定したアドレスになります。ノードは、バリデータ クライアントではなく料金の受取人を制御します。その料金の受取人を確実に管理できるようにするために、独自のノードを実行する必要があります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Node-Hosting-Chart_B.max-2200x2200.jpg
図 2 - 専用のブロックチェーン ノード

組織が独自のノードを実行する場合、課題に直面する可能性があります。巨視的に見た場合、ノード インフラストラクチャの課題は以下の分類のいずれかに収まります。

  • サステナビリティ(環境への影響)

  • セキュリティ(DDoS 攻撃、秘密鍵の管理)

  • パフォーマンス(ハードウェアがブロックチェーン ソフトウェアに対応できるか)

  • スケーラビリティ(どのようにネットワークを開始、拡大するか)

また、各プロトコル(例: Ethereum、Solana、Arbitrum、Aptos など)がどのように機能するか、プロトコルが要求するハードウェア仕様が何か(コンピューティング、メモリ、ディスク、ネットワーク)、どのように最適化するか(例: 同期のモード)などに関しては、理解するまでに期間を要します。

ハイパー スケーラーは性能が十分ではなく、また非常に高額であるとみなされています。そのため、現代の多くの Web3 インフラストラクチャはベアメタル サーバー プロバイダや 1 つのハイパー スケーラーで実行されています。たとえば 2022 年 9 月 20 日時点では、Solana バリデータの 40% 以上が Hetzner で実行されていました。ただ、当時 Hetzner がサーバーで Solana アクティビティをブロックしていたために、プロトコルで中断が発生していました。同様に、2022 年 10 月時点で、ステーキングされた SOL で上位 10 の Solana バリデータのうち 5 つ(すべてのステーキングされた SOL の 8.3% に相当)が、AWS で実行されていました(validators.app による)。

つまり、このようにバリデータが集中すると、少数のホスティング プロバイダのみに対する依存が生まれるということです。そのため、1 つのプロバイダの停止や禁止が発生した場合、基盤となるプロトコルの重大な障害につながる可能性があります。さらに、このような一元化は、分散化と多様化という Web3 の価値観に反します。健全なプロトコルには、参加者、クライアント、地理的分布の多様性が求められます。実際、Solana Foundation は委任プログラムを通じて、データセンターの基準に則ったインフラストラクチャの多様化を奨励しています。

Google Cloud でノードを実行してセキュリティ、復元性、スピードを高める

前述の課題を回避して主要プロトコルで分散化を促進するために、近年では組織で Google Cloud を使用してノードがホストされるようになっています。たとえば、Google は Aptos、Arbitrum、Solana、Hedera などのプロトコルのバリデータであり、Web3 の顧客は Google Cloud を使用して Blockdaemon、Bullish、Coinbase、Dapper Labs などのノードを強化しています。

Google は、以下のようなさまざまなエコシステムやユースケースをサポートしています。

  • プロトコルにかかわらず、Google Cloud でノードを実行できます(Ethereum、レイヤ 2、代替のレイヤ 1 などのノードを実行します)。Proof of Work マイニングには制限があるので注意してください。

  • ライブ ネットワークとテスト ネットワークの両方でノードを実行します。これは、各プロトコルで必要となる学習で重要になります。

  • このような例は公共(権限不要)のネットワークのものですが、規制対象となっているお客様に好まれているプライベート ネットワークもサポートされています。

ブロックチェーン ノード エンジンでノードのホスティングを合理化して加速する

ブロックチェーン ノード エンジンはフルマネージド サービスであり、プロビジョニングを合理化してセキュアな環境を実現できます。ブロックチェーン ノード エンジンを使用するデベロッパーは、ノードの構成や実行に関して懸念する必要がありません。ブロックチェーン ノード エンジンがこれらすべてを行うため、デベロッパーは優れた DApp の構築に集中できます。Google はこのプロセスを簡素化し、必要となるすべてのノード ホスティングの手順を 1 つにまとめました。

ブロックチェーン ノード エンジンでサポートされないプロトコルや、独自のノードを自身で管理したい場合のために、Google Cloud のサービスは、完全な Web3 ジャーニーをサポートするように構築されています。

  • プロトコルに適したマシン ファミリーを使用して、シンプルな Compute Engine VM インスタンスから開始できます。(Google は、Solana などの最も要求の厳しいプロトコルをサポートしています。)

  • その後、Cloud ロードバランサを前面に配置したマネージド インスタンス グループでアーキテクチャの復元性を向上できます。

  • 次に、Cloud Armor をウェブ アプリケーション ファイアウォールと DDoS 保護として一緒に前面に配置することで、ユーザーに接するノードを保護できます。

  • このノード ホスティング インフラストラクチャは完全に自動化され、組織の DevOps パイプラインと統合されるため、開発をシームレスに加速できます。

  • 組織が成長し、組織のアプリがより多くのトラフィックを集めるようになると、健全性モニタリングと管理機能のための Kubernetes が自然と採用されるようになります。ブロックチェーン ノードは、GKE ノードプールに移行できます。(注: Compute Engine ではなく、GKE で直接開始することもできます。)

  • 拡大を続ける組織は、ノードに近いクラウドネイティブ サービスを活用できます。たとえば、お客様は Cloud CDNMemorystoreSpannerblockchain.com など)などのさまざまなキャッシング ソリューションを使用しているため、ほとんどのリクエストの場合でノードにヒットさせる必要すらありません。

  • データ側では、ノードからデータを抽出して、分析や ML 用に利用できるようにするために BigQuery に取り込むパイプラインを実装できます。

  • また、使用中に暗号化されたデータ(例: マルチパーティ コンピューティングBullish)に Confidential Computing を活用することもできます。

次のステップ

Google では、Web3 専門の顧客対応チームとプロダクト チームが編成されています。Google Cloud は Web3 コミュニティから多くの刺激を得ており、コミュニティに集うイノベーターの多くの方々とともに働くことに喜びを感じています。オープンソース プロジェクトセキュリティ信頼性サステナビリティにおける Google の取り組みが、Web3 コミュニティのコアニーズの解決に貢献していることを喜ばしく思います。また、Web3 ビジネスがこれからも加速し、分散型のクリエイティブなアプリやサービスが世に出されることを楽しみにしています。

ブロックチェーン ノード エンジンを開始する、あるいは Google Cloud で独自のノードのホスティングを開始する場合は、営業担当者にお問い合わせいただくか、Google Cloud for Web3 ページをご覧ください。


謝辞: ノード ホスティングに関して教えてくれた、カスタマー エンジニアの David Mehi と Sam Padilla、スタッフ ソフトウェア エンジニアの Ross Nicoll に感謝を申し上げます。また、この投稿のレビューに協力してくれた、デジタル資産戦略責任者の Richard Widmann に感謝を申し上げます。


- Google Cloud デジタル アセット担当プリンシパル Bertrand Portier
投稿先