cryptofoundry

Связаться с cryptofoundry

Расскажите, что вы хотите создать или автоматизировать.

Электронная почта
[email protected]
ADAMANT Messenger
Открыть в ADAMANT
Статья

Как установить ноду ADAMANT на macOS

Как установить ноду ADAMANT на macOS

Это руководство охватывает установку и запуск ноды блокчейна ADAMANT Messenger с нуля на macOS, включая инструменты разработки, PostgreSQL, Node.js и настройку автозапуска после перезагрузки.

Проверено на macOS 13 Ventura и новее. Тип ноды: mainnet или testnet. Время выполнения: ~15–30 минут.

Запуск ноды ADAMANT поддерживает полностью децентрализованный, ориентированный на приватность блокчейн, лежащий в основе ADAMANT Messenger. Это укрепляет сеть, обеспечивает прямой доступ к данным блокчейна и позволяет получать вознаграждения по модели dPoS, если вы станете валидатором/делегатом.

Предварительные требования

Вам понадобится Mac с macOS 13 (Ventura) или новее, учётная запись пользователя с правами администратора, стабильное интернет-соединение, около 50 ГБ свободного места на диске и базовые навыки работы с Терминалом. Откройте Терминал, нажав Cmd + Space, введите Terminal и нажмите Enter.

Установка инструментов командной строки от Apple

Для компиляции кода и использования Git требуются инструменты разработчика от Apple:

xcode-select --install

Появится всплывающее окно с запросом подтверждения установки. Подтвердите и дождитесь завершения.

Установка Homebrew

Homebrew — это менеджер пакетов для macOS, используемый для установки PostgreSQL и других зависимостей:

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

Как установить ноду ADAMANT на macOS

Подтвердите нажатием клавиши Enter. После установки выполните инструкции из раздела “Next steps” (обычно это добавление Homebrew в конфигурацию вашей оболочки, например, ~/.zprofile или ~/.bash_profile). Перезагрузите оболочку:

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

Создайте пользователя и базу данных PostgreSQL для ADAMANT:

# 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

Склонируйте репозиторий ADAMANT с GitHub:

# 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

Как установить ноду ADAMANT на macOS

Настройте конфигурационный файл ноды ADM:

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

Эта команда копирует конфигурацию по умолчанию и вводит пароль от базы данных, который вы задали ранее. Вы также можете отредактировать конфигурацию вручную с помощью 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 минут, но сэкономит около недели времени синхронизации.

Запуск ноды ADM

Сначала запустите ноду временно в Терминале, чтобы убедиться, что всё работает:

node app.js

При успешном запуске вы увидите вывод процесса старта и синхронизацию блокчейна с увеличением высоты блока:

Как установить ноду ADAMANT на macOS

Как установить ноду ADAMANT на macOS

Остановите ноду с помощью Ctrl + C, затем запустите её через 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

Как установить ноду ADAMANT на macOS

Сохраните список процессов pm2:

pm2 save

Проверьте, что нода запущена:

pm2 logs adamant

Как установить ноду ADAMANT на macOS

Перезапуск ноды после перезагрузки macOS

Чтобы автоматически перезапускать ноду ADAMANT после перезагрузки Mac, у вас есть два варианта.

Вариант 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.