装備が揃ったら、いよいよ実際にノードを建てる時です。ここからが、本当の「ハンターの一歩」になります。緊張するかもしれませんが、大丈夫。一つずつ進めていきましょう。
まず、サーバーに接続する
サーバーに接続する前に、VPSの設定を完了させましょう。これは X Server の VPS の場合ですが、パケットフィルターの設定をオフにしてください。オフが不安な方は、フィルタールール設定で以下を設定します。

そして、VPS側のサイドバーで DNS設定 を開き、取得したドメインを追加しておきます。そこでDNSレコードの設定をするのですが、設定の追加ボタンから以下を入力します。

設定を追加すると、一覧にAレコードが追加されているはずです。サーバー側の基本設定は以上です。
ドメインを VPS に向ける
ドメインの設定では、ネームサーバーを X Server VPS に向けましょう。

これでVPSとドメインの設定は完了しました。
VPS を契約すると、IPアドレスと VPSパネル(管理画面)パスワードがメールで送られてきます。それとは別に、VPS契約時に記入した rootパスワード もしっかりメモして覚えておきましょう。
Windows をお使いなら PowerShell を、Mac をお使いなら ターミナル を開きます。そして、以下のコマンドを打ちます。
ssh root@【あなたのIPアドレス】
初回接続の手前で「本当に接続していい?」という確認メッセージが出ます。yes と入力して進めます。パスワードを聞かれたら、メールで届いた root パスワードを入力しましょう。
うまく接続できれば、サーバーの中に入った状態になります。プロンプトが root@【サーバー名】:~# のように変わっているはずです。ここから、すべてのコマンドはサーバー上で実行することになります。
公式インストーラーを実行する
ここからが、本番です。CAW の公式リポジトリには、ノードを一発で構築する素晴らしいスクリプトが用意されています。サーバー上で以下のコマンドを実行してください。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/GilgameshCaw/Caw/master/install.sh)"
入力すると、以下の案内が表示されます。

このスクリプトが、以下のことを自動で行ってくれます。
- 必要なシステム依存関係のインストール(Node.js、PostgreSQL、Redis、Elasticsearch、nginx、pm2、certbot など)
- caw という専用ユーザーの作成
- 公式リポジトリのクローン
- 対話式の Node CLI への引き継ぎ
スクリプトの実行には、数分〜十数分かかります。画面にさまざまなログが流れますが、エラーが出ない限りは見守るだけで大丈夫です。
CLI 対話形式の設定
インストーラーが完了すると、対話式の CLI が起動します。ここで、設定項目を順番に答えていきます。
ドメインの登録
Domain(or blank) と表示されています。空欄でも大丈夫ですが、Full node で参加する場合はここに取得したドメインを入力して Enter を押してください。
ノードタイプの選択

「Full Node」を選びます。1 と入力して Enter を押しましょう。公開フロントエンドと API を持ち、メッシュネットワークに参加するタイプです。完全に独立したノードとして機能します。
インストール方法の選択

1番のネイティブインストールを選択します。Postgres、Redis、Elasticsearch を VPS の OS に直接インストールしてくれます。設定もシンプルで一番おすすめです。インストールが進み、緑のチェックマークが全て付くと、次の項目が出てきます。

この画面は SSL/TLS証明書(HTTPS)の設定です。2番の「Use Let’s Encrypt instead (free, automated)」を選択しましょう。無料で自動取得・更新してくれる Let’s Encrypt を使います。ドメインが正しく VPS の IP に向いている場合、一番簡単で安全です。

2番を入力して次に進むと、この画面が出ます。一般的なサーバー運用である 『Production』を選択します。
RPC URL の設定
L1とL2のアーカイブチェーン、それぞれに RPC URL を入力します。

まず L1 の Ethereum Sepolia テストネットの接続先URLを設定します。推奨されているものの中でも、今回は dRPC を選択しましょう。
https://sepolia.drpc.org
現在運用している二台とも dRPC で設定しています。dRPC はアカウントログイン後に APIキーを取得する必要があります。そのAPIキーを L1 URL に入力して設定を完了させます。
その後、こんな入力を求められます。
? L1 WebSocket (wss) URL:
| 意味 | L1(Ethereum Sepolia)の WebSocket(wss)接続先の入力 |
|---|---|
| 用途 | Validator として本格的にアクション処理をしたいときや、ノードの性能を向上させたいときに使われます。設定しておいて損はありません |
| 入力値 | さきほどのURLの頭を 『wss』に変更するだけ(下記) |
wss://(あなたのL1 dRPCのAPIキー)
次は、こんな質問が表示されます。
? Use a different RPC for the frontend? (y/N)
| 意味 | フロントエンド用の RPC URL を別に設定しますか? |
|---|---|
| 答え | n(No)を入力して Enter |
| 理由 | 特別な理由がない限り、L1で設定したRPCをそのまま使えば問題ありません |
続いて、こんな入力を求められます。
? Ethereum Mainnet RPC URL:
| 意味 | Ethereum Mainnet(本番ネットワーク)の RPC URL の入力 |
|---|---|
| 用途 | Uniswap から ETH やトークンの価格情報を取得するため |
| 入力値 | dRPC のメインネット用URL(下記) |
https://lb.drpc.live/ethereum/(あなたのRPC URL)
こちらも二台ともに dRPC のものを利用しています。
このメインネットRPCは、あくまで価格情報を「読む」ためのものです。ここに本物のETHを置く必要はありません。
Validator の秘密鍵の設定

Ethereum / Base 上のトランザクションに署名するために必要な秘密鍵を設定します。Generate new key を選択して Enter を押しましょう。押すと、バリデーター用のウォレットアドレスが表示されますので、メモしておきましょう。
そのあとに秘密鍵についての質問が来ます。秘密鍵をバックアップするために yes を選び、表示されたキーをメモ帳などに保管しましょう。絶対に第三者に見せてはいけません。「バックアップしましたか?」と質問が来るので、
y を入力して Enter を押します。

By username を選択して、ミントしたユーザーNFTを紐づけます。Enter を押した後、自身のユーザーネームを入力してください。「このユーザーを使いますか?」と再確認が来るので、y を押して Enter を押します。
「ZK sig-only path」の有効化確認

これはテストネット段階では必要ないので n を押して Enter で構いません。ZK証明を使ってガス代を節約できる高度な機能ですが、メインネットが始まってからでも遅くはないかと思います。
Admin Dashboard のパスワード設定

パスワードを設定して、メモ帳などで保管しておきましょう。私は紙に書くのと、スマホにメモを入れる、両方やっています。
Client ID

Use client Id 1 はパブリック CAW ネットワークの一部として動く、みんなと繋がる選択肢です。推奨されているので、これを選択して OK です。
WalletConnect Project ID の設定

ユーザーがあなたの CAW フロントエンドで「Connect Wallet」をクリックすると、ウォレット選択モーダルは WalletConnect(現 Reown)によって動きます。
MetaMask Mobile、Rainbow、Trust などのモバイルウォレットは、Reown のリレーサーバー経由でサイトと通信しているので、Project ID がない場合、モーダルはプレースホルダーにフォールバックし、WalletConnect ベースのウォレットに接続できません。
それを回避するために、Reown でアカウントを作成し、プロジェクトを作成して32桁の英数字をコピペしましょう。
Giphy API key の設定

GIF検索・GIF選択機能があり、その機能に Giphy という GIF サービスを使うための APIキーが必要です、という案内です。後から追加もできるので、今回は skip します。
ノードをオンチェーンに登録するかの設定

あなたの CAW インスタンスは、API URL をオンチェーンに登録できます。これを yes で選択すると instanceID が付与され、オンチェーンでこのドメインが認識される仕組みです。
登録には Base Sepolia のテストETH が少量必要になります(バリデーターウォレットに入れておきます)。これは無料で入手できるテスト用ETHで、本物のお金ではありません。
今回は y を押して Enter します。
X連携・Sentry の設定

今はフロントエンドでの本格的運用を考えていないので、この機能拡張はスキップします。

これは Sentry のエラー監視を設定しますか?という画面です。これも任意なので、空欄でスキップできます。Sentry は、アプリやサーバーで起きたエラーを自動で集めてくれるサービスですが、今回は飛ばします。
SigNoz でパフォーマンス計測を設定

SigNoz は、自分でサーバーに立てられる監視ツールで、設定すると、この CAW ノードの処理速度やボトルネックを確認できます。とても便利ですが、RAM を 2GB、ディスク 30GB 使うので、今回はスキップしておきます。
L2 Sepolia の RPC URL の設定

https://sepolia.base.org(Base 公式)を入力し、その後 WebSocket の設定も行います。
https://sepolia.base.org
wss://sepolia.base.org # websocket
別のフロントエンド用RPCの設定は行わないので、n を入れて Enter を押します(小文字で入力OKです)。
Replication(複製・検証用の記録)の設定

参加するバリデーターは、各バッチごとのハッシュを記録し、他の参加者の不正な提出を監視します。もし誰かが不正なコミットをしているのを見つけたら、その相手のステークを slash(没収・ペナルティ)して報酬を得られる、という仕組みです。今回は y で進めてみます。
Arbitrum Sepolia の設定

https://sepolia-rollup.arbitrum.io/rpc(Arbitrum 公式)を使用します。

下の画面は、このノードがどの Client ID のアクションを Replication 対象にするか質問しています。先ほど Client ID で1番を選択したので、どこの CAW アクションをアーカイブするのか、ということで 1 と入力します。
レプリケーターキーの生成

ウォレットのアドレスと秘密鍵をメモしておきましょう。新しく生成するなら Generate key、すでにあるものを使う場合は 2番の import を選びましょう。
これらを完了すると、最後にインストールが走ります。

セットアップ コンプリート!!
設定完了、ノード稼働
すべての設定が完了すると、pm2 がノードのプロセスを起動します。成功すれば、こんな表示が出ます。

status: online になっていれば、ノードが正常に起動しています。
ブラウザでアクセスしてみる
最後の儀式です。ブラウザを開いて、https://【あなたのドメイン】 にアクセスしてみてください。
そこに、あなたのノードのフロントエンドが表示されたら ── おめでとうございます。あなたは、CAW ネットワーク上に、独立したフルノードを建てた、新しいハンターです。
一息ついて
ここまで本当にお疲れさまでした。実は、これでセットアップは「ひとまずの完了」です。でも、ノード運営は「建てた瞬間がゴール」ではなく、「建てた瞬間がスタート」です。
セキュリティを強化したり、定期的に動作を確認したり、つまずいた時に対処したり ── そういう日々の番人としての営みが、これから始まります。
あなたは確かに、CAW の一部になりました。
次の話では、ノードを安全に運営するための「城門を固める」作業、つまりセキュリティ強化についてお伝えします。






