Open1
Symbolノード構築方法・バージョンアップ方法メモ
Symbolノード構築方法
はじめに
ノード運営は、環境やノード管理者のスキルレベルによって、最適解は様々です。自分なりに納得できる運用を模索して、手順やスクリプトを自分なりに管理しましょう。
前提条件
- OS: Ubuntu 20.04
ポイント
- 非rootユーザーで動作させるのが、環境構築ではまりにくい&セキュリティ的にも望ましくおすすめ。ユーザー名
symbol
, 作業ディレクトリ~/platform
として以下を説明。 - Node.jsのインストールは非rootユーザーにnvmでインストールすると、はまりどころが少ない気がする。
- docker, docker-composeのインストールは、sudo無しでもdockerをインストールできるようにすることと、その変更が適切に反映された状態でdocker関連サービスが再起動される必要がある。こだわらないならサーバーをrebootするのが一番着実か。
- symbol-bootstrapの操作で重要な点をメモ。
- 設定ファイルをきちんと育てていくこと。
- その設定ファイルをサーバー外にバックアップしておくこと。
- 委任ハーベストが多い場合は、バージョンアップやサーバー移管等の操作前に
harvesters.dat
ファイルもバックアップしておくと心強いかも? -
harvesters.dat
ファイルについては、適切な設定ファイルでゼロから同期することで、無くても委任ハーベストの情報は復元されるとの情報もあるが自分自身では未確認。
流れ
- VPS等のサーバー作成し、SSH公開鍵認証でログインできるよう設定(省略) ... 逸般的な誤家庭の方は誤自宅サーバーでのノード運営にチャレンジしてみるのも面白いかもしれませんね。
- DNS設定 ... サーバーのIPアドレスをドメインの管理画面等からAレコード(IPv4アドレス)やAAAAレコード(IPv6アドレス)に登録するというのが一般的で自然な方法でしょうか?環境によっては色々あると思うので適宜対応ください。
-
sudo apt update -y
,sudo apt upgrade -y
を実行して色々最新化。 - ファイアーウォールの設定 ... 3000, 3001, 7900とSSH用にどこかのポートを開けておく必要があるという感じでしょうか。
- Node.jsのインストール ... 非rootユーザーでnvmを使うのが良いでしょう。最新のLTS, 最新のnpmを使うくらいの運用がバランス良いと思いますが、いの一番に最新のLTSに上げると若干人柱的な感じがあるので、そのあたりは自分の納得できるバージョンを設定して運用するとよいでしょう。
- dockerのインストール ... 公式ページに沿って丁寧にやっておくと、以降、
sudo apt update -y
,sudo apt upgrade -y
でよい感じにdocker自身もバージョンアップしてくれると思うのでおすすめという感じでしょうか。
- docker-composeのインストール ... こちらも公式ページに必要な手順は全て書かれているので、そちらを参照して進めるのが良いでしょう。Linuxのタブをクリックすると手順が説明されていると思います。ただし注意点としては、最新のdockerだと、
docker-compose
ではなくdocker compose
が入るようで、手元の端末でdocker-compose
をdocker compose
に読み替えてあげるaliasを設定するか、少しイレギュラーな手順でdocker-compose
を明示的にインストールする必要があるかもしれません。この点は注意が必要だと思います。
-
docker -v
,docker-compose -v
でバージョン表示ができるか、docker run hello-world
が実行できるか等試しておいたほうが良いでしょう。おそらく最初は、sudo無しにdockerコマンドやdocker-composeコマンド実行できない状態になっていると思うので、以下の公式ページを参考にsudo無しにdockerやdocker-compose等が実行できるようにしておいたり、再起動後にdocker daemonが自動的に立ち上がるようにしておく等、やっておくとトラブルが減らせると思います。手順によってはここで再起動が必要な場合もあると思うのでそこは承知しておいてください。 - symbol-bootstrapをグローバルにインストール。
npm i -g npm@latest symbol-boostrap@latest
- 以降、新たにノード建てることがあったら加筆します。(普段はバージョンアップの操作しかしないから、正直記憶が怪しい...)