cryptofoundry

cryptofoundry へのお問い合わせ

構築または自動化したい内容をお聞かせください。

記事

macOSにADAMANTノードをインストールする方法

macOSにADAMANTノードをインストールする方法

このガイドでは、macOSにADAMANT Messengerブロックチェーンノードをゼロからインストールおよび実行する方法について説明します。開発ツール、PostgreSQL、Node.js、および再起動後の自動起動設定も含まれます。

macOS 13 Ventura以降でテスト済み。ノードタイプ:mainnetまたはtestnet。所要時間:約15~30分。

ADAMANTノードを実行することで、ADAMANT Messengerを支える完全に分散型でプライバシー重視のブロックチェーンをサポートできます。ネットワークを強化し、ブロックチェーンデータに直接アクセスでき、検証者/デリゲートになればdPoS報酬も受け取れます。

前提条件

macOS 13(Ventura)以降を搭載したMac、管理者ユーザーアカウント、安定したインターネット接続、約50 GBの空きディスク容量、およびターミナルの基本的な操作スキルが必要です。Cmd + Spaceを押して「Terminal」と入力し、Enterキーを押すことでターミナルを開きます。

Appleコマンドラインツールのインストール

コードのコンパイルやGitの使用には、Appleの開発者ツールが必要です:

xcode-select --install

ポップアップが表示され、インストールの確認を求められます。承認し、完了まで待ちます。

Homebrewのインストール

Homebrewは、PostgreSQLやその他の依存関係をインストールするために使用されるmacOS用パッケージマネージャーです:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

How to Install an ADAMANT Node on macOS

Enterキーで確認します。インストール後、「Next steps」セクションに表示される手順(通常は~/.zprofileや~/.bash_profileなどのシェル設定にHomebrewを追加)に従ってください。シェルを再読み込みします:

source ~/.zprofile  # or ~/.bash_profile depending on your shell

必要なパッケージのインストール

PostgreSQL、Redis、Git、およびその他の必要なツールをインストールします:

brew install postgresql redis git make automake autoconf libtool jq htop

PostgreSQLとRedisを起動および有効化します:

brew services start postgresql
brew services start redis

PostgreSQLデータベースのセットアップ

ADAMANT用のPostgreSQLユーザーとデータベースを作成します:

# Customize these as needed
DB_USER=adamant
DB_NAME=adamant_main
DB_PASSWORD=securepassword

psql postgres -c "CREATE ROLE $DB_USER LOGIN PASSWORD '$DB_PASSWORD';"
psql postgres -c "CREATE DATABASE $DB_NAME OWNER $DB_USER;"

NVMとNode.jsのインストール

Node Version Manager(NVM)とNode.js 22 LTS(コードネームJod)をインストールします:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 22

pm2(Node.jsプロセスマネージャ)をインストールします:

npm install -g pm2

pm2のログローテーションを設定します(オプションですが推奨):

pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 500M
pm2 set pm2-logrotate:retain 5
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:rotateInterval '0 0 0 1 *'

ADAMANTノードのクローンとセットアップ

整理されたセットアップのために、~/Applicationsディレクトリを使用します(ホームディレクトリ内の個人用フォルダで、システム全体の/Applicationsとは異なります):

mkdir -p ~/Applications
cd ~/Applications

GitHubからADAMANTリポジトリをクローンします:

# Customize these as needed
NETWORK=mainnet   # or testnet
BRANCH=master     # or desired Git branch

git clone https://github.com/Adamant-im/adamant --branch $BRANCH
cd adamant
npm install

How to Install an ADAMANT Node on macOS

ADMノードの設定ファイルを設定します:

cp config.default.json config.json
sed -i '' "s/\"password\": \"password\"/\"password\": \"$DB_PASSWORD\"/" config.json

これにより、デフォルトの設定が自身のファイルにコピーされ、先ほど設定したDBパスワードが入力されます。nano config.jsonで設定ファイルを手動で編集することもできます。

testnetノードの場合は、代わりに以下のコマンドを使用します:

cp test/config.default.json test/config.json
sed -i '' "s/\"password\": \"password\"/\"password\": \"$DB_PASSWORD\"/" test/config.json

ブロックチェーンスナップショットのダウンロード(任意、mainnetのみ)

完全な分散化をサポートしたい場合は、この手順をスキップしてください。そうでない場合、スナップショットのダウンロードによりブロックチェーンの同期が大幅に高速化されます:

curl -O https://explorer.adamant.im/db_backup.sql.gz
gunzip db_backup.sql.gz
psql $DB_NAME < db_backup.sql
rm db_backup.sql

最大20分かかる場合がありますが、同期時間の約1週間を節約できます。

ADMノードの実行

まず、ターミナルで一時的にノードを実行して、すべてが正常に動作するか確認します:

node app.js

成功すると、起動出力が表示され、ノードの高さが増加しながらブロックチェーンが同期していることがわかります:

How to Install an ADAMANT Node on macOS

How to Install an ADAMANT Node on macOS

Ctrl + Cでノードを停止し、次にTerninalを閉じた後も永続化するためにpm2*で起動します:

# Mainnet
pm2 start --name adamant app.js

# Or, for testnet
# pm2 start --name adamanttest app.js -- --config test/config.json --genesis test/genesisBlock.json

How to Install an ADAMANT Node on macOS

pm2プロセスリストを保存します:

pm2 save

実行中であることを確認します:

pm2 logs adamant

How to Install an ADAMANT Node on macOS

macOS再起動後のノード再起動

Macの再起動後にADAMANTノードを自動的に再起動するには、2つのオプションがあります。

オプション1:再起動後に手動で起動。Macを再起動するたびに、以下のコマンドを実行します:

source ~/.nvm/nvm.sh
pm2 resurrect

これをシェルプロファイル(例:~/.zprofile)に追加することで自動化できます:

echo 'source ~/.nvm/nvm.sh && pm2 resurrect' >> ~/.zprofile

オプション2:pm2 startupによる自動起動。pm2 startupコマンドは、macOSのシステム整合性保護(SIP)とシームレスに動作しない場合があります。代わりに、launchdサービスを作成します:

pm2 startup launchd

これにより、sudo env PATH=$PATH:/Users/youruser/.nvm/versions/node/vXX.X.X/bin pm2 startup launchd -u youruser — hp /Users/youruserのようなコマンドが出力されます。ターミナルでこれを実行し、その後pm2プロセスリストを保存します:

pm2 save

これで、pm2は起動時にADAMANTノードを自動的に再起動します。後でこれを解除するには、pm2 unstartup launchdを実行します。

インストールの確認

プロセスのステータスを確認します:

pm2 show adamant

ノードのブロック高さを確認します:

curl http://localhost:36666/api/blocks/getHeight

ノードのステータスを取得します:

curl http://localhost:36666/api/node/status

"syncing":trueを含む応答は、ノードがまだ完全に同期していないことを意味します。ブロックチェーンの完全な同期が完了するまで待ちます。ブロックチェーンスナップショットを使用すると、このプロセスが大幅に高速化されます。

詳細については、ADAMANTノードドキュメントを参照してください。