コンテンツへスキップ
0%

Polygonノードとは:知っておくべきすべてのこと

Alchemy team headshot

執筆者 Alchemy

2022年9月27日 公開読了時間 1 分

Ethereum mainnetと同様に、Polygon, a Layer-2 solutionもノードを使用して、ネットワークに参加するすべてのコンピュータが正しく動作していることを保証しています。ただし、Polygonノードは異なるアーキテクチャを持っており、処理タスクのサブセクションを異なるノードレイヤーに分類・委任しています。

この記事では、Polygonノードの種類、Polygonノードの作成方法と実行方法、そしてノードプロバイダーがこのプロセス全体をどのように簡単にするかについて解説します。

Polygonとは

Polygonはサイドチェーンであり、Ethereumのスケーリングソリューションです。Ethereum Virtual Machine(EVM)との互換性を維持しながら、リソースを多く消費するタスクをEthereumメインチェーンの外で実行することで、ガスコストを削減しスケーラビリティを向上させます。

かつてMATICとして知られていたPolygonは、2017年にリブランディングを行いましたが、ティッカーシンボルとしてMATICを維持しています。したがって、PolygonとMATICは同一のものです。Polygonの主要なテストネットワークはMumbaiと呼ばれています。Mumbaiは、開発者がテスト用のMATICトークンを使ってPolygonアプリケーションをテストできる、無料で利用できる環境のテストネットです。

Polygonノードとは

Polygonノードは、Polygonブロックチェーンのコピーをダウンロードし、Polygonネットワークに参加するコンピュータですが、Polygonには複数のノードタイプ(Borノード、Heimdallノード、フルノード、Sentryノード、バリデーターノード)があるため、それぞれのノードは異なる役割を果たします。

Polygonネットワークは大きく3つのレイヤーに分かれています。

  1. Ethereumメインネット - コントラクトのProof-of-Stake、チェックポイント、報酬に使用
  2. Heimdallノードレイヤー - 検証に使用
  3. Borノードレイヤー - ブロック生成に使用

以下では、HeimdallノードとBorノードについて詳しく解説し、これらがより複雑な機能のためにどのように連携して使用されるかについても説明します。

Borノードとは

Borノードは最も基本的なタイプのPolygonノードで、トランザクションをブロックに集約する役割を担っており、これらのブロックはHeimdallノードによって解析・利用されます。 このように、Borノードはロールアップスキームの半分を担っており、データをより効率的に処理可能な形式に集約します。ブロック生成者はバリデーターノードのセットからランダムに選ばれます。

Heimdallノードとは

Heimdallノードは前回のチェックポイント以降のすべてのBorブロックを検証し、Borノードによって作成されたすべてのブロックをMerkleツリーに集約します。 Heimdallノードはまた、Merkleルートのハッシュを定期的にメインブロックチェーンに送信します。チェックポイントはPolygonシステムにとって非常に重要であり、特定のスパンまたはブロックセットに対するブロック生成者のランダム性とバリデーターセットの選定を管理しています。

フルノードとは

フルノードとは、トランザクションとブロックを完全に検証するノードであり、1)プルーンドフルノードと2)アーカイバルフルノード(アーカイブノードとも呼ばれる)の2種類があります。

プルーンドフルノードは失敗したトランザクションの状態をすべて破棄し、軽量化のため一定数のブロックのみ遡ります。アーカイブノードは、チェーンのすべての過去の状態も保存するフルノードです。要するに、アーカイブノードはチェーンの発足から最新のトランザクションまでの正確な状態を含んでいます。

Polygonアーカイブノードが直面する可能性のある問題の一つがアーカイブノードの制限であり、チェーン全体の状態データが16TBに近づいています。このため、ノードのストレージを増やすか、ノードを削除して再同期し無駄なデータをクリアするか、またはPolygonノードプロバイダーを使用することが推奨されます。

Sentryノードとは

Sentryノードは、HeimdallノードとBorノードの両方を実行し、他のノードからデータをダウンロードして選択されたバリデーターノードにこのデータを転送するフルノードであり、同時にPolygonネットワーク全体へのアクセスも有しています。Sentryノードはまた、バリデーターを公衆から隔離し、Distributed Denial of Service(DDOS)攻撃のような攻撃ベクトルからバリデーターノードを保護することができます。これらの攻撃はトランザクションのスループットを低下させたり停止させたりする可能性があります。

Polygonバリデーターとは

Polygonバリデーターとは、あるマシンにバリデーターノード、別のマシンにSentryノードを持ち、MATICトークンをステーキングしている人のことです。 Polygonバリデーターは、Heimdallレイヤーでトランザクションを検証するためにランダムに選ばれます。バリデーターノードはSentryノードと似たアーキテクチャを持っていますが、Sentryノードとの間でデータをやり取りする方法である点が異なります。

Polygonノードプロバイダーとは

Polygonノードプロバイダーは、開発者にPolygonノードAPIエンドポイントを提供する企業であり、これによりアプリは自分でPolygonノードを実行することなく、Polygonブロックチェーンにリクエストを送信し、ペイロードを受け取ることができます。

自分でPolygonフルノードを運用することにはソフトウェアクライアントのカスタマイズなどの利点がありますが、ノードプロバイダーは個別のPolygonノードと比較した場合、安定性、速度、データの正確性の面で大きな利点を提供します。ノードのメンテナンスについて心配することは貴重なエンジニアリングの時間を要するため、ノードプロバイダーはこの一般的な問題を解決できます。

アプリにとって、最適なPolygonノードプロバイダーを選ぶことは、規模と利用者数の需要を見据えた構築において重要な決定事項です。インフラの観点から最も重要な要素は、スケーラビリティ、データの正確性、ノードの種類(例:フル、アーカイブなど)、そして(マルチチェーンを構築する予定がある場合の)対応ブロックチェーンです。

顧客の観点からは、ノードプロバイダーが良好な価格設定、役立つデベロッパーリレーションズチーム、迅速に対応するサポートスタッフ、そして最適化されたAPIやSDKといった優れた開発者ツールを持ち、web3開発者のニーズに効果的に応えることも重要です。

AlchemyでPolygonノードに接続する方法

Polygonの公式ドキュメントにAlchemyでPolygonフルノードに接続する方法の完全な手順がありますが、ここではすぐに始めるための簡略化した説明を記載します。

1. Alchemyに登録する

Alchemyはサービスの無料プランを提供しており、Alchemy開発者プラットフォームで無料のPolygonアカウントを作成して、Alchemy Polygon APIを利用することがすぐにできます。

サインイン時のAlchemyダッシュボード
サインイン時のAlchemyダッシュボード

  1. Polygonアプリケーションを作成しAPIキーを生成する

Alchemyアカウントの作成に成功したら、アプリを作成してAPIキーを生成する必要があります。これにより、PolygonメインネットまたはMumbaiテストネットへのリクエストが認証されます。

新しいAPIキーを生成するには、Alchemyダッシュボードのナビゲーションバーにある「Apps」タブに移動し、「Create App」サブタブを選択します。

フィールドを入力し、テストネットを選択したら、「Create app」をクリックします。

新しいアプリが下の表に表示されます。

新しく作成されたPolygonアプリが表示されたAlchemyダッシュボードのAppsテーブル
新しいアプリが「Apps」テーブルに表示される

Alchemyからカスタム Polygon RPC URLを取得するには、Alchemyダッシュボードで自分のアプリに移動し、右上の「View Key」をクリックします。

次に、Alchemy HTTPS APIキーをコピーし、アプリケーションに貼り付けます。

注: 複数のインフラプロバイダーからパブリックなPolygon RPC URLを確認するには、Alchemy Chain Connectを使用してください。

ノード用のPolygon RPC URLを設定するための「View Key」オプション
ノード用のPolygon RPC URLを設定するための「View Key」オプション

ステップ3. Polygon APIをセットアップして構築を開始する

JavaScriptとNode.jsを使用している場合、Alchemy SDKをインストールし、Alchemyオブジェクトを作成するだけで、数行のコードでPolygonノードへのリクエストを送信する準備が整います。

  1. 次のコマンドでプロジェクトをセットアップします:npm init -y
  2. ターミナルで以下のコマンドを実行してSDKをインストールします:npm install alchemy-sdk
  3. SDKをインストールしたら、以下に示すようにPolygonを使用してプロジェクト内でインポートし利用できます

Alchemy SDKのセットアップについての詳細は、SDK Quickstart Guideを参照してください。

Polygonノードプロジェクト用にAlchemy SDKをインポートするコードスニペット
Polygonノードプロジェクト用のSDKのインポート

Polygonノードプロバイダーの利用は簡単でスケーラブルであり、あらゆるスキルレベルの開発者がweb3での構築を始めることができます。 ‍

Polygonノードの要件

Polygonフルノードを実行するには、いくつかの技術仕様とソフトウェアの前提条件を満たす必要があります。現在の最低要件は16〜32GBのRAMと4〜8コアのCPUで、拡張可能なストレージドライブは最低1.2TB必要です。ノードはチェーンの履歴が増加するにつれてより多くのデータを保存する必要があるため、最低要件も相応に増加していきます。

さらに、Polygonはどのオペレーティングシステムでも問題なく動作すると述べていますが、CentOSのようなLinuxサーバーディストリビューションの方が、MacOSやWindowsよりもセキュリティと安定性の面で推奨されるとしています。

Polygonフルノードのセットアップ方法

Polygonノードプロバイダーを使用せず、自分でPolygonノードを設定・維持したい場合、以下が必要な手順の概要です。

1. ノードを実行するマシンを構築する

Linuxが推奨されているため、ノードをホストできるLinuxサーバーを実行しているマシンを使用する必要があります。また、コマンドラインでSecure Shell(SSH)を使用してLinuxサーバーにリモート接続することもできます。ハードウェア要件を確認し、マシンにかなり大きな最低ストレージと計算能力があることを確認してください。

2. 前提条件をダウンロードする

ソフトウェア要件については、Python 3.xを搭載したマシンにAnsibleをダウンロードする必要があり、以下のコマンドでダウンロードできます:pip3 install ansible

さらに、GoやHeimdallとBorの以前のセットアップがインストールされていないことを確認してください。これらは完全に新規のインストールプロセスと競合します。

3. ノードをセットアップして実行する

すべての手順はフルノードのセットアップと実行に関するPolygon公式ドキュメントからのものです。手順は以下の通りです。

  1. リモートマシン/仮想マシンへのアクセスを確保し、指定されたリポジトリをクローンして、IPを設定することでその機能を検証する
  2. フルノードをセットアップし、リモート/仮想マシンに入り、HeimdallノードとBorノードを構成する
  3. フルノードを実行し、ノードが正しく同期しているかログを確認する

AlchemyでPolygon上の構築を始める

Polygonは急速に成長しているEthereumサイドチェーンであり、開発者にEVM互換アプリケーションを構築するための高速で手頃な価格の、スケーラブルなブロックチェーンを提供します。Polygonは、そのスケール、手頃な価格、低炭素フットプリントにより、Starbucksの新しいロイヤリティ報酬プログラムのようないくつかの最大手web2企業に選ばれています。

Polygonでの構築を始めるには、今すぐAlchemyで無料のPolygon開発者アカウントを作成してください!

Background gradient

ブロックチェーンで魔法を生み出す

Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。