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

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

執筆者 John Favole

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

Arbitrumは、Ethereumのスケーラビリティ課題であるトランザクションスループットの低さと手数料の高さを解決するために、optimistic rollupsを用いてEthereumのレイヤー1セキュリティを維持するレイヤー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ノードに接続する方法

Arbitrum上での開発を始めるために、Alchemyをノードプロバイダーとして利用しArbitrumノードに接続する手順を段階的に説明する。

ステップ1. Alchemyに登録する

まずAlchemyのウェブサイトにアクセスし、登録して必要事項を入力する。すでに登録済みの場合は、単純にログインすればよい。

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

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

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

Alchemyダッシュボード:Arbitrum Mainnetで新しいアプリを作成する
Arbitrumメインネット上でのArbitrumノードのセットアップ

ステップ3. npmパッケージとAlchemy SDKをインストールする

まだインストールしていない場合、この先npmパッケージが必要になる。次に、以下のコマンドを実行してAlchemy SDKをインストールする。

text
Copied
npm install alchemy-SDK

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

Ether.jsまたはWeb.jsを使って、Alchemy SDKをインポートしノードリクエストを行う必要がある。以下のコマンドを貼り付けてSDKをインポートする。

text
Copied
import { Network, Alchemy } from 'alchemy-sdk';

次に、Alchemy Arbitrum APIキーを入力してオブジェクトを設定する。APIキーを確認するには、Alchemyのダッシュボードに移動し、アプリの「view key」をクリックする。

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

環境内で以下のコマンドを実行する。

text
Copied
const settings = { apiKey: <api-key>, network: Network.ARB_MAINNET, }; const alchemy = new Alchemy(settings); alchemy.core.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開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。