
このガイドでは、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)"

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

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


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

pm2プロセスリストを保存します:
pm2 save
実行中であることを確認します:
pm2 logs adamant

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ノードドキュメントを参照してください。