装備が揃ったら、いよいよ実際にノードを建てる時です。ここからが、本当の「ハンターの一歩」になります。緊張するかもしれませんが、大丈夫。一つずつ進めていきましょう。
はじめる前に、手元に用意しておくもの
- VPS(本記事は X Server VPS で進めます)と rootパスワード
- 取得済みのドメイン
- dRPC のアカウントとAPIキー(手順4で使用・無料枠あり)
- Reown(旧WalletConnect)のアカウントと Project ID(手順9で使用)
- ミント済みのユーザーネームNFT(手順5で紐づけ)
- Base Sepolia のテストETH を少量(手順11で使用)。入手方法は テストETHの入手とブリッジ方法 にまとめてあります
途中でアカウント作成に走ると CLI が待ちぼうけになります。先に揃えておくと、一気に駆け抜けられます。
まず、サーバーに接続する
サーバーに接続する前に、VPSの設定を完了させましょう。これは X Server の VPS の場合ですが、まずパケットフィルターです。フィルタールール設定で、最低限つぎの3つを許可します。
- SSH(22番ポート) ── サーバー接続用
- Web(80番ポート) ── HTTP/Let’s Encrypt の認証用
- Web(443番ポート) ── HTTPS(ノードの公開用)
もし接続がうまくいかない場合の切り分けとして、パケットフィルター自体を一時的にオフにする方法もあります。ただしその場合も、動作確認が済んだら必ずオンに戻しましょう(守りの固め方は、次回「城門を固める」で詳しくやります)。

そして、VPS側のサイドバーで DNS設定 を開き、取得したドメインを追加しておきます。そこでDNSレコードの設定をするのですが、設定の追加ボタンから以下を入力します。
| 種別 | A(Aレコード) |
|---|---|
| ホスト名 | 空欄(ドメインそのものに向ける場合) |
| 内容 | あなたの VPSのIPアドレス |

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

これでVPSとドメインの設定は完了しました。
VPS を契約すると、IPアドレスと VPSパネル(管理画面)パスワードがメールで送られてきます。それとは別に、VPS契約時に記入した rootパスワード もしっかりメモして覚えておきましょう。
Windows をお使いなら PowerShell を、Mac をお使いなら ターミナル を開きます。そして、以下のコマンドを打ちます。
ssh root@【あなたのIPアドレス】
初回接続の手前で「本当に接続していい?」という確認メッセージが出ます。yes と入力して進めます。パスワードを聞かれたら、VPS契約時に設定した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 を押してください。
役割ドメインはノードの「公開住所」。リポジトリは /var/www/(ドメイン) に配置され、SSL証明書の発行先にも、手順11でオンチェーンに登録するAPI URLにもなります。
ノードタイプの選択

「Full Node」を選びます。1 と入力して Enter を押しましょう。公開フロントエンドと API を持ち、メッシュネットワークに参加するタイプです。完全に独立したノードとして機能します。
役割フルノードは検索(Elasticsearch)・データベース(Postgres)・API・React製フロントの「全部入り」。公式READMEの推奨スペックは RAM 8GB/2コア以上/SSD 25GB以上です(メモリを一番食うのはElasticsearch)。
インストール方法の選択

1番のネイティブインストールを選択します。Postgres、Redis、Elasticsearch を VPS の OS に直接インストールしてくれます。設定もシンプルで一番おすすめです。インストールが進み、緑のチェックマークが全て付くと、次の項目が出てきます。
役割ここで入れる3つが、ノードの記憶装置です。Postgres=投稿やユーザーの本棚、Redis=高速な作業机、Elasticsearch=全文検索の索引。Docker利用や既存DBへの接続も選べますが、1台構成ならネイティブが素直です。

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

2番を入力して次に進むと、この画面が出ます。一般的なサーバー運用である 『Production』を選択します。
RPC URL の設定
ここでは、まず L1(Ethereum Sepolia)側の RPC URL を設定します。L2(Base Sepolia)側は、のちほど手順14で設定します。
役割RPCはノードの生命線。バリデーターの提出(書き込み)と、チェーン上のイベントを読み取ってデータベースに索引する収集(読み取り)の両方が、この回線を通ります。遅いRPCはノードの成績に直結します。

まず L1 の Ethereum Sepolia テストネットの接続先URLを設定します。推奨されているものの中でも、今回は dRPC を選択しましょう(現在運用している二台とも dRPC です)。dRPC はアカウント作成後に APIキーを取得し、以下の形式で入力します。
https://lb.drpc.live/sepolia/(あなたのAPIキー)
その後、こんな入力を求められます。
? L1 WebSocket (wss) URL:
| 意味 | L1(Ethereum Sepolia)の WebSocket(wss)接続先の入力 |
|---|---|
| 用途 | Validator として本格的にアクション処理をしたいときや、ノードの性能を向上させたいときに使われます。設定しておいて損はありません |
| 入力値 | さきほどのURLの頭を https から wss に変更するだけ(下記) |
wss://lb.drpc.live/sepolia/(あなたの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/(あなたのAPIキー)
こちらも二台ともに dRPC のものを利用しています。
このメインネットRPCは、あくまで価格情報を「読む」ためのものです。ここに本物のETHを置く必要はありません。
Validator の秘密鍵の設定

Ethereum / Base 上のトランザクションに署名するために必要な秘密鍵を設定します。Generate new key を選択して Enter を押しましょう。押すと、バリデーター用のウォレットアドレスが表示されますので、メモしておきましょう。
役割この鍵が、あなたのノードの「実印」。バリデーターが未処理アクションをまとめてオンチェーンに提出するとき、すべてこの鍵で署名します。ユーザーNFTの紐づけは、そのノードの「名義」にあたります。
そのあとに秘密鍵についての質問が来ます。秘密鍵をバックアップするために yes を選び、表示されたキーを保管しましょう。紙に書き写すなど、オフラインでの保管が最も安全です。テストネット段階の鍵とはいえ、扱いはメインネットと同じ習慣で。絶対に第三者に見せてはいけません。「バックアップしましたか?」と質問が来るので、
y を入力して Enter を押します。

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

これはテストネット段階では必要ないので n を押して Enter で構いません。ZK証明を使ってガス代を節約できる高度な機能ですが、メインネットが始まってからでも遅くはないかと思います。
この機能を自分のサーバーで動かすには、高スペックなVPSを契約する必要があります。公式ドキュメント(docs/ZK_SIG_PATH.md)によれば、証明の生成にはピークで約16GBのRAMを消費します。メモリの少ないVPS(6GB程度)では、生成中にメモリ不足でサーバーごと落ちる(Postgres や pm2 が強制終了される)と明記されています。
| 推奨 | ローカルで証明を生成するなら RAM 16GB以上のプランを。初回は約5.8GBの一時データのダウンロードも発生します |
|---|---|
| 代替 | 低スペックのVPSでも、ホスト型の証明ネットワーク(SP1)を利用すれば動かせます(1証明あたり約10秒) |
| 費用対効果 | 現状のバッチ規模(20〜30アクション)ではガスがむしろ約25%割高。1バッチ約70アクションを超えて初めて得になる、と公式に明記されています |
Admin Dashboard のパスワード設定

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

Use client Id 1 はパブリック CAW ネットワークの一部として動く、みんなと繋がる選択肢です。推奨されているので、これを選択して OK です。
役割Client ID は「どのネットワーク(クライアント群)に属すか」の区分。ネットワーク登録・手数料・インスタンス台帳を司る CawNetworkManager コントラクト上の単位で、1=パブリックCAW本体。手順16の複製対象の指定にも、この番号が再登場します。
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 が付与され、オンチェーンでこのドメインが認識される仕組みです。
役割インスタンス台帳(Instance Registry)への記帳です。あなたのAPI URLがオンチェーンに載ることで、他のノードやクライアントから「発見してもらえる」ようになります。メッシュの一員として名簿に載るイメージです。
登録には Base Sepolia のテストETH が少量必要になります(バリデーターウォレットに入れておきます)。これは無料で入手できるテスト用ETHで、本物のお金ではありません。Sepolia ETH の入手から Base/Arbitrum へのブリッジまでの手順は、こちらの記事にまとめてあります。入手したら、手順5でメモしたバリデーターアドレスへ送っておきましょう。
今回は y を押して Enter します。
X連携・Sentry の設定

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

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

SigNoz は、自分でサーバーに立てられる監視ツールで、設定すると、この CAW ノードの処理速度やボトルネック(HTTPルート・DBクエリ・RPC呼び出しの所要時間)を確認できます。とても便利ですが、公式READMEによると RAM 約4GB、ディスク 約30GB を使うので、今回はスキップしておきます。
L2 Sepolia の RPC URL の設定

https://sepolia.base.org(Base 公式)を入力し、その後 WebSocket の設定も行います。
役割Base L2 が、CAWにとっての「正本」(immutable source of truth)。アクションの提出先も、タイムラインの読み取り元も、最終的にはここです。
https://sepolia.base.org
wss://sepolia.base.org # websocket
別のフロントエンド用RPCの設定は行わないので、n を入れて Enter を押します(小文字で入力OKです)。
Replication(複製・検証用の記録)の設定

参加するバリデーターは、各バッチごとのハッシュを記録し、他の参加者の不正な提出を監視します。もし誰かが不正なコミットをしているのを見つけたら、その相手のステークを slash(没収・ペナルティ)して報酬を得られる、という仕組みです。不正への異議申し立てには2日間のチャレンジ期間が設けられています。今回は y で進めてみます。
役割これがCAWの「楽観的アーカイブ」。記録は一旦信じて受け入れ、2日間は誰でも異議を申し立てられる——性善説と監視を組み合わせた保存の仕組みに、あなたのノードが加わります。
Arbitrum Sepolia の設定

https://sepolia-rollup.arbitrum.io/rpc(Arbitrum 公式)を使用します。
役割Arbitrum はアーカイブ(保管庫)チェーン。Base上の記録のチェックポイントが LayerZero 経由でここに複製され、二重に保全されます。

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

ウォレットのアドレスと秘密鍵をメモしておきましょう。新しく生成するなら Generate key、すでにあるものを使う場合は 2番の import を選びましょう。
役割手順5の鍵が「提出用の実印」なら、こちらはアーカイブチェーン側で複製を提出・ステークするための別の実印。役割ごとに鍵を分けることで、万一の際の影響を小さくできます。
これらを完了すると、最後にインストールが走ります。

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

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






