PC、Mini-PC、またはNUCの準備

Rocket Poolをインストールする前に、システムが互換性があり、正しく動作することを確認するためにいくつかのチェックを行う必要があります。

Danger

Rocket Pool nodeを実行するための専用マシンを作成することを強くお勧めします。 日常的な作業用デスクトップやゲーミングリグなどの汎用マシンでnodeを実行すると、ウォレットを危険にさらし、コインの盗難につながる可能性のある追加のセキュリティリスクが生じます。

最大限の安全性のために、nodeの実行専用の新しいマシンを構築してください。

システム要件

以下は、Rocket Pool nodeが必要とするソフトウェアおよびハードウェア要件の簡単な説明です。 このガイドでは、マシンが物理的に構築され、オペレーティングシステムがインストールされていることを前提としています。

サポートされているオペレーティングシステム

Rocket PoolのSmartnodeクライアントは現在、LinuxおよびmacOSシステムをサポートしています。

現時点では、WindowsはリモートのLinuxまたはMacマシンをリモート管理するために使用できますが、Smartnode自体は現在Windowsシステムでは実行できません。ただし、Rocket Poolは、Windowsマシンがホストする Linux 仮想マシンで実行できます。 このセットアップは、ホストオペレーティングシステムとしてLinuxをインストールするよりも推奨されませんが、必要に応じて動作します。 追加のリソースオーバーヘッドが必要であり、独自のセキュリティリスクが伴うため、メインネットワークで実際のEtherをstakingする際にこのセットアップを使用することはお勧めしません。

Rocket Poolは、AMD64 (x64)およびarm64 (aarch64) CPUアーキテクチャにネイティブ対応しています。 他のアーキテクチャの場合、smartnodeクライアントをソースからコンパイルする必要があります。

Smartnodeをインストールするには、ユーザーがroot/Administratorアクセス(またはsudo権限)を持っている必要があることに注意してください。

Linuxサポート

Linux OSには多くのバリアント(ディストリビューション、または略してdistrosと呼ばれます)があります。最新のdistroからRocket Poolを実行できますが、Rocket Poolのインストーラーは、UbuntuDebianCentOSFedoraにスタック全体を自動的にインストールできます。

NOTE

Ubuntuを使用する予定がある場合は、24.04などのLTSリリースを使用することを強くお勧めします。 これらのリリースはより長期間積極的にメンテナンスされており、nodeのセキュリティと安定性に役立ちます。

他のdistroへのインストールの場合、Smartnodeインストーラーは一部のシステム依存関係(docker-composeなど)を自動的にインストールできません。 インストール中にいくつかの手動手順が必要になります。

arm64システムの場合、SmartnodeインストーラーはDebianおよびUbuntuなどのDebianベースのdistroのみをネイティブサポートします。 他のdistroの場合、インストール中に手動手順が必要になります。

オペレーティングシステムのインストール

macOSを使用している場合は、オペレーティングシステムがすでにインストールされている可能性が高く、この手順をスキップできます。

Linuxを最初からインストールする場合、上記のディストリビューションのそれぞれには、オペレーティングシステムを最初からインストールするための役立つ詳細なチュートリアルが付属しています。 ただし、例として、Debian Serverのインストールと準備のプロセスを説明します。 Debianは、最大の安定性と信頼性に焦点を当てているため、node運用に適した選択肢です。どちらも24/7稼働する必要があるnodeマシンにとって非常に望ましいものです。

こちらは、スクリーンショット付きの優れたステップバイステップガイドです。nodeマシンにDebianを最初からインストールする方法を示しています。

Tip

上記のガイドへのいくつかの役立つ修正があります。

  • rootパスワードの設定を求められたら、空白のままにすることをお勧めします。これにより、rootアカウントが無効になり、代わりにsudoパッケージがインストールされ、ユーザーはパスワードを再入力して権限を昇格させることでroot操作を実行できます。これは、Ubuntu Linuxのセットアップ方法に類似しており、ユーザーにとってより馴染みがあるかもしれません。
  • 最後の方のソフトウェアの選択画面では、デスクトップGUIをインストールしたくない場合があります。
    • デスクトップGUIは、nodeにはほとんど不要です。追加のオーバーヘッドが追加され、ほとんどの場合、ターミナル経由でリモートコントロールするため使用されないため、ここでGNOMEとDebianデスクトップ環境のチェックを外すことをお勧めします。
    • nodeでデスクトップUIが必要な場合は、システムリソースが軽量であるため、GNOMEのチェックを外してXFCEをチェックすることをお勧めします。また、nodeではブラウザやDiscordなどの追加のソフトウェアを実行しないことをお勧めします。これらはセキュリティを低下させ、システムリソースを消費します。
    • webサーバーのチェックを外しますが、SSHサーバー標準システムユーティリティはチェックしたままにします。
  • isoからフラッシュドライブを作成した場合、aptを実行するためにCD-ROMリポジトリを無効にする必要がある場合があります。 これを行う方法の説明はこちらにあります。
  • システムはデフォルトでスリープ/ハイバネートするように設定されている可能性があります。これらの設定を無効にするには、次のコマンドを実行できます。 sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

sudoのインストール

Rocket Poolのインストーラーは、すべての依存関係を取得するためにsudoプログラムを必要とします。 前の手順でrootユーザーパスワードを空白のままにした場合は、既にこれがインストールされています。 そうでない場合は、次のコマンドを実行して今すぐインストールしてください。

apt update
apt install sudo
usermod -aG sudo $USER

次に、マシンを再起動します。 これで、sudo apt updateなどのsudo経由でコマンドを実行できるようになります。

SSHの使用

サーバーがインストールされてログインできるようになったら、そのIPアドレスを取得する必要があります。 簡単な方法は、'net-tools'パッケージに組み込まれているifconfigを使用することです。

sudo apt update
sudo apt install net-tools
sudo ifconfig

ここにはいくつかのエントリが表示される場合がありますが、探しているものは次のようになります。

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255
      inet6 fe80::96f2:bf29:e269:1097  prefixlen 64  scopeid 0x20<link>
      ether <mac address>  txqueuelen 1000  (Ethernet)
      ...

flagsにはUP,BROADCAST,RUNNING,MULTICASTと表示されるはずです。 inet値(ここでは192.168.1.8)がマシンのローカルIPアドレスです。

次に、SSHをインストールします。

sudo apt install openssh-server
NOTE

Debianのインストール中にSSHサーバーボックスにチェックを入れた場合は、既にこれがインストールされているため、このコマンドは何もしません。

これが完了したら、sshを使用してラップトップまたはデスクトップからマシンのターミナルにリモートログインできます。

sshに慣れていない場合は、Secure Shell入門ガイドをご覧ください。

NOTE

この時点で、nodeのIPアドレスを静的にするようにルーターを構成することを強く検討する必要があります。 これは、nodeが永遠に同じIPアドレスを持つことを意味し、そのIPアドレスを使用していつでもSSHでログインできます。 そうしないと、nodeのIPが時点で変更される可能性があり、上記のSSHコマンドが機能しなくなります。 nodeの新しいIPアドレスが何であるかを確認するには、ルーターの構成に入る必要があります。

各ルーターは異なるため、静的IPアドレスを割り当てる方法については、ルーターのドキュメントを参照する必要があります。

スワップスペースの設定

ほとんどの場合、ExecutionクライアントとConsensusクライアントとインスタンスタイプを慎重に選択すれば、RAMが不足することはないはずです。 とはいえ、もう少し追加しても損はありません。 これから行うことは、スワップスペースと呼ばれるものを追加することです。 基本的には、何かひどく悪いことが起こってサーバーが通常のRAMを使い果たした場合に備えて、SSDを「バックアップRAM」として使用することを意味します。 SSDは通常のRAMほど高速ではないため、スワップスペースにヒットすると速度が低下しますが、完全にクラッシュしてすべてが壊れることはありません。 これは、(おそらく)決して必要としない追加の保険と考えてください。

スワップファイルの作成

最初のステップは、スワップスペースとして機能する新しいファイルを作成することです。 どれだけ使用するかを決定します。妥当な開始点は8GBです。つまり、8GBの通常のRAMと8GBの「バックアップRAM」で合計16GBです。 超安全にするために、24GBにすることもできます。つまり、システムには8GBの通常のRAMと24GBの「バックアップRAM」で合計32GBになりますが、これはおそらくやりすぎです。 幸いなことに、SSDには1または2TBのスペースがあるため、スワップファイルに8〜24GBを割り当てることは微々たるものです。

このウォークスルーの目的で、素敵な中間点を選びましょう。たとえば、合計RAM 24GBのスワップスペース16GBです。 進むにつれて、任意の数値に置き換えてください。

これを入力すると、/swapfileという新しいファイルが作成され、16GBのゼロで満たされます。 量を変更するには、count=16の数値を任意の値に変更するだけです。これには長時間かかりますが、問題ありません。

sudo dd if=/dev/zero of=/swapfile bs=1G count=16 status=progress

次に、rootユーザーのみが読み書きできるように権限を設定します(セキュリティのため)。

sudo chmod 600 /swapfile

次に、それをスワップファイルとしてマークします。

sudo mkswap /swapfile

次に、それを有効にします。

sudo swapon /swapfile

最後に、サーバーの再起動時に自動的にロードされるように、マウントテーブルに追加します。

sudo nano /etc/fstab

次のような新しい行を最後に追加します。

/swapfile                            none            swap    sw              0       0

Ctrl+OEnterを押して保存し、次にCtrl+XEnterを押して終了します。

アクティブであることを確認するには、次のコマンドを実行します。

sudo apt install htop
htop

出力の上部は次のようになります。

Swpとラベル付けされた最後の行の2番目の数値(/の後の数値)がゼロ以外の場合、準備が整っています。 例えば、0K / 16.0Gと表示されている場合、スワップスペースが正常にアクティブ化されました。 0K / 0Kと表示されている場合は機能しておらず、前の手順を正しく入力したことを確認する必要があります。

qまたはF10を押してhtopを終了し、ターミナルに戻ります。

SwappinessとCache Pressureの構成

デフォルトでは、LinuxはシステムのRAMの圧力を軽減するために多くのスワップスペースを積極的に使用します。 私たちはそれを望んでいません。スワップに頼る前に、すべてのRAMを最後の瞬間まで使用したいのです。 次のステップは、システムの「swappiness」を変更することです。これは基本的に、スワップスペースをどれだけ積極的に使用するかです。 これに設定する値については多くの議論がありますが、6の値がうまく機能することがわかりました。

また、「キャッシュ圧力」を下げたいと思います。これは、サーバーがファイルシステムのキャッシュをどれだけ早く削除するかを決定します。 セットアップでは多くのスペアRAMがあるため、これを「10」にすることができ、キャッシュをしばらくメモリに残し、ディスクI/Oを削減します。

これらを設定するには、次のコマンドを実行します。

sudo sysctl vm.swappiness=6
sudo sysctl vm.vfs_cache_pressure=10

次に、再起動後に再適用されるように、それらをsysctl.confファイルに入れます。

sudo nano /etc/sysctl.conf

最後にこれらの2行を追加します。

vm.swappiness=6
vm.vfs_cache_pressure=10

次に、以前と同じように保存して終了します(Ctrl+OCtrl+X)。

インストール前のシステムチェック

Rocket Poolをインストールする前に、次のチェックリストを確認してください。

  • システムが完全に構築され、電源が入り、オペレーティングシステムに起動できる。
  • インターネットの閲覧、メールのチェック、ゲームのプレイなど、システムで他の活動を行わない。
  • Linuxオペレーティングシステムがインストールされている。
  • ユーザーアカウントにroot/管理者権限がある。
  • パフォーマンス要件を満たすSSDがある。
  • SSDがファイルシステムにマウントされている。
  • 初期のExecutionとConsensusの同期プロセスのために少なくとも1.5TBのディスク空き容量がある。
  • ISPがデータ量に上限を設けている場合、月間2TB以上である。

これらの項目をすべて確認して確認した場合、Rocket Poolをインストールしてnodeの実行を開始する準備が整いました。 ETHクライアントの選択セクションに進んでください。