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

Arbitrumノードとは:知っておくべきこと

執筆者 John Favole

2022年10月19日 公開読了時間 1 分

Arbitrumは、最適化ロールアップ(optimistic rollups)を用いてEthereumのレイヤー1セキュリティを維持しながら、Ethereumのスケーラビリティ課題である低いトランザクションスループットと高いトランザクション手数料を解決することを目指すレイヤー2スケーリングソリューションです。

Arbitrumアプリケーションの開発を始めるには、開発者はArbitrumノードプロバイダーに接続するか、自身のArbitrumノードをセットアップする必要があります。このガイドでは、Alchemyの無限にスケール可能なArbitrum RPCノードサービスの使い方と、自身のArbitrumフルノードを実行するための始め方を説明します。‍‍

Arbitrumノードとは?

Arbitrumノードとは、Arbitrumブロックチェーン内の接続ポイントとして機能するコンピュータであり、その多くが互いに依存し合っています。

Arbitrumノードをより深く理解するためには、ノードとは何か、トランザクションの伝播における役割、そしてブロックがどのように検証されるかを理解することが不可欠です。

トランザクションは保留中のトランザクションのグローバルプールに送信され、ブロックにまとめられる前にネットワーク上の他のノードにブロードキャストされます。公平性を確保するため、ネットワーク内のノードは、あるブロックのトランザクションがネットワークに追加される前に、そのブロックに含まれるトランザクションについて合意(すなわちコンセンサスに到達)する必要があります。ノードはブロック提案の承認・却下を助け、ネットワークの過去のトランザクションデータも保存します。

Arbitrumノードプロバイダーとは?

Arbitrumノードプロバイダーとは、Arbitrumノードを運用し、一般ユーザーや開発者が自身でノードをセットアップ・管理することなくブロックチェーンへのリクエストの送受信ができるようにする企業のことです。

Arbitrumノードプロバイダーは、1つまたは複数のArbitrumノードをセットアップ・維持し、それをAPIやRPCという形で誰でも利用できるように公開します。別の言い方をすれば、Arbitrumノードプロバイダーとは、Arbitrumノードをサービスとして提供する事業を行っているということです。

ユーザーはAlchemyノードプロバイダーのArbitrum APIへのアクセスを取得すれば、Arbitrumブロックチェーンとリアルタイムでやり取りできます。

Arbitrumノードプロバイダーはいくつか存在しますが、Alchemyがその中でも代表的なプロバイダーです。このガイドの後半では、Alchemy Arbitrumノードの利用方法について説明します。

自身でArbitrumノードを実行することとArbitrumノードプロバイダーを利用することの違いは?

自身でノードを実行するには、コンピュータやデバイスをArbitrumメインネットに接続し、その運用を管理するために必要なプログラムをインストールする必要があります。一方、ノードプロバイダーを利用する場合はその運用をプロバイダーが管理します。

つまり、自身でArbitrumノードを実行することとArbitrumノードプロバイダーを利用することの主な違いは、ノードのセットアップとそれに応じた維持管理の面での管理責任の所在です。

Arbitrumノードプロバイダーを利用する場合、その責任を第三者に委ねることになります。信頼できるノードプロバイダーの選定には最初に多少の手間がかかりますが、その後はハードウェアの維持について気にする必要がなくなります。

自身でArbitrumノードを実行する場合の課題とは?

自身でArbitrumノードを実行する場合の課題には、適切なストレージ容量の確保、大きなリードタイム、そしてフルタイムでノードを管理するために必要な帯域幅が含まれます。

とはいえ、自分自身でノードを立てようと考えている場合、それは一見良いアイデアのように思えるかもしれません。もちろん、自身のノードには利点もあります。

自前のノードを持つということは、特定のチェーンのセキュリティと健全性を維持する上での直接的な利害関係者になるということです。これにより、悪意のある行為者がそのチェーンに対してハッキングを実行することが困難になります。次に、チェーンの状態、つまりネットワークの全データにアクセスできるようになります。

しかし、自身のノードを運用する際の課題については十分に語られていないことが多いため、ここで取り上げます。

1. ストレージ容量

フルノードを実行するには、コンピュータ上に大容量のスペースが必要です。Arbitrumノードの実行に特定の容量要件はありませんが、すべてのブロックチェーンネットワークを通じて常に200GBから300GBの範囲となっています。

2. セットアップ時間

フルノードを実行しようとすると、コンピュータは最初に採掘されたブロックから1秒前に採掘されたブロックまで、ブロックチェーンの台帳をダウンロードする必要があります。これには常に時間がかかり、チェーンやその他の関連要因によっては、数日、数週間、最悪の場合は1ヶ月かかることもあります。

3. ノードの管理

フルノードのセットアップが最終的に完了した後は、それを管理する必要があり、ここに実際の課題があります。フルノードの実行には多くの時間がかかります。長時間オンラインである必要があるだけでなく、ほとんどの場合、アップグレードやデバッグにも追われることになります。

それでは、Web3における最有力ノードプロバイダーであるAlchemyでArbitrumノードに接続する方法を見ていきましょう。

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

Alchemyをノードプロバイダーとして使用してArbitrumノードに接続し、Arbitrum上での開発を開始するためのステップバイステップガイドを以下に示します。

ステップ1. Alchemyにサインアップする

最初のステップは、Alchemyのウェブサイトにアクセスし、サインアップしていくつかの情報を入力することです。すでにサインアップ済みの場合は、ログインするだけで構いません。

無料の開発者アカウントを作成するAlchemyのサインアップページ
Alchemyのサインアップページ

ステップ2. 新しいArbitrumアプリを作成する

ログインしたら、Alchemy上でアプリを作成します。この場合、Arbitrumメインネットを選択します。

Alchemyダッシュボード:Arbitrum Mainnetでの新規アプリ作成
Arbitrumのmainnetでのノードのセットアップ

ステップ3. ethers.jsをインストールする

まだ持っていない場合は、Node.jsとnpmが今後必要になります。それらを用意したら、以下のコマンドを実行してethers.jsをインストールします。

text
Copied
npm install ethers

ステップ4. Arbitrumメインネットに接続し、ノードリクエストを行う

ethers.jsを使用して、JsonRpcProviderをインポートしノードリクエストを行います。

text
Copied
import { JsonRpcProvider } from 'ethers';

次に、Alchemy Arbitrum APIキーを使ってプロバイダーを設定します。APIキーを確認するには、Alchemyダッシュボードに移動し、アプリの_view key_をクリックします。

Alchemyダッシュボード:ArbitrumアプリのAPIキーの表示
ArbitrumプロジェクトのAlchemy APIキー

自身の環境で以下のコマンドを実行します。

text
Copied
const provider = new JsonRpcProvider( 'https://arb-mainnet.g.alchemy.com/v2/<API_KEY>', ); provider.getBlockNumber().then(console.log);

ステップ5. ノードリクエストの分析とレポート

リクエストが成功したかどうか、実行速度などの情報がすべてダッシュボードに表示され、確認できます。

Alchemyダッシュボードで稼働中のArbitrumノード
Alchemyダッシュボードで稼働中のArbitrumノード

自身のArbitrumフルノードをセットアップする方法

自身でArbitrumフルノードをセットアップして実行したい場合は、以下の手順を行ってください。

ステップ1. Arbitrumノード用のDockerイメージを取得する

Arbitrumノードを実行する前に、Dockerイメージに含まれるいくつかの依存関係やライブラリを取得する必要があります。

ステップ2. Ethereumノードの RPC エンドポイントを取得する

これを取得するには2つの選択肢があります。ArbitrumのRPCエンドポイントプロバイダーを利用するか、自身でEthereumノードを構築するか(これは全く別のプロセスです)のいずれかです。

Arbitrum RPCノードプロバイダーを活用したい場合は、Alchemyを利用できます。

text
Copied
--l1.url=<insert your RPC URL here>

ステップ3. Arbitrumメインネットに接続する

依存関係の設定が完了したら、以下のコードを実行してArbitrumメインネットワークへのノードリクエストを行うことができます。

text
Copied
docker run --rm -it -v /some/local/dir/arbitrum-mainnet/:/home/user/.arbitrum/mainnet -p 0.0.0.0:8547:8547

この時点で、これらのプログラムを実行してコンピュータ上で動作しなくても驚かないでください。現時点では、Arbitrumフルノードを実行する標準的な方法は存在しません。

Arbitrumの開発チームであるOffchain Labsは、ノードの実行方法に関する公式の詳細なドキュメントをまだ公開していません。

そのため、ノードの実行を成功させられるかどうかは、お使いのデバイスがどの程度対応可能か、そしてCLIをどの程度習得しているかに左右されます。

今すぐArbitrumノードを稼働させましょう!

Arbitrumフルノードの実行は、時間と費用がかかる作業であり、開発者として取り組んでいる作業そのものには直接的な影響を与えません。適切なハードウェア要件を満たすデバイスを用意し、完全なブロックチェーン台帳のダウンロードを待ち、それを日々管理する必要があります。

多くの開発者は、この面倒なプロセスを避け、ノードプロバイダーのサービスを利用することを選びます。Alchemyは、わずか数回のクリックでArbitrumノードのセットアップを支援できる、頼りになるノードサービスプロバイダーです。今すぐAlchemyを始めましょう。

Background gradient

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

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