Near | Testnet - установка ноды
Выполняем команды по очереди, внимательно все копируя!
Требования к серверу- 4 CPU
- 8 GB RAM
- 500 GB SSD
Лично я арендовала сервер на Hetzner CX51 и добавила 200 гб памяти (буду следить за использованием ресурсов) по стоимости вышло 40 евро.
Первое задание
Код:
sudo apt update && sudo apt upgrade -y
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install build-essential nodejs
PATH="$PATH"
node -v
#хороший ответ - v18.x.x
npm -v
#хороший ответ - 8.x.x
sudo npm install -g near-cli
npm install -g [email protected]
export NEAR_ENV=shardnet
echo 'export NEAR_ENV=shardnet' >> ~/.bashrc
echo 'export NEAR_ENV=shardnet' >> ~/.bash_profile
source $HOME/.bash_profile
Второе задание
Код:
lscpu | grep -P '(?=.*avx )(?=.*sse4.2 )(?=.*cx16 )(?=.*popcnt )' > /dev/null \
&& echo "Supported" \
|| echo "Not supported"
#правильный вывод команды - Supported
sudo apt install -y git binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev cmake gcc g++ python3 docker.io protobuf-compiler libssl-dev pkg-config clang llvm cargo
Устанавливаем python pip (репозиторий библиотек для python):
Код:
sudo apt install python3-pip
USER_BASE_BIN=$(python3 -m site --user-base)/bin
export PATH="$USER_BASE_BIN:$PATH"
Устанавливаем тулзы для билда
Код:
sudo apt install clang build-essential make
Устанавливаем раст и карго
Код:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
#нажимаем y и потом 1
source $HOME/.cargo/env
Копируем nearcore проект с GitHub
Код:
git clone https://github.com/near/nearcore
cd nearcore
git fetch
Коммитим
Код:
git checkout <commit>
#заменить <commit> на значение из файла, по ссылке ниже
Брать номер коммита от
сюда
Компилируем бинарники nearcore
Код:
cargo build -p neard --release --features shardnet
Создание рабочей директории
Код:
./target/release/neard --home ~/.near init --chain-id shardnet --download-genesis
Этим шагом была создана директория .near и в ней такие файлы: config.json, node_key.json, genesis.json
- config.json - Параметры конфигурации, которые отвечают за то, как будет работать узел. config.json содержит необходимую информацию для работы узла в сети ( как общаться с одноранговыми узлами и как достичь консенсуса). Некоторые параметры настраиваются.
- genesis.json - Файл со всеми данными, с которых началась сеть. Он содержит начальные учетные записи, контракты, ключи доступа и другие записи, которые представляют начальное состояние блокчейна.
- node_key.json - Файл, который содержит открытый и закрытый ключ для узла. Также включает параметр account_id, необходимый для запуска узла валидатора.
- data/ - Папка, в которую узел NEAR будет записывать свое состояние.
Находятся эти файлы по такому пути: cd /root/.near/
Перемещаем config.json
Удаляем старый конфиг файл и выкачиваем с гитхаба актуальный:
Код:
rm ~/.near/config.json
wget -O ~/.near/config.json https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/shardnet/config.json
Устанавливаем AWS Cli
Код:
sudo apt-get install awscli -y
Запускаем ноду
Код:
cd ~/nearcore
./target/release/neard --home ~/.near run
#Из важного - должны подцепиться пиры (>0) и загрузиться хедеры (ждем 100%)
#Только потом идем дальше по гайду!
#выходим - Ctrl+C
Создаем сервисный файл, что бы наша нода работала не только при ручном запуске, а и в фоновом режиме:
Код:
sudo tee /etc/systemd/system/neard.service > /dev/null <<EOF
Вставляем одной командой:
Код:
[Unit]
Description=NEARd Daemon Service
[Service]
Type=simple
User=$USER
#Group=near
WorkingDirectory=/root/.near
ExecStart=/root/nearcore/target/release/neard run
Restart=on-failure
RestartSec=30
KillSignal=SIGINT
TimeoutStopSec=45
KillMode=mixed
[Install]
WantedBy=multi-user.target
EOF
Закрываем терминал и открываем заново, что бы все фоновые процессы стопнулись.
Запускаем сервисный файл:
Код:
sudo systemctl daemon-reload
sudo systemctl enable neard
sudo systemctl restart neard
sudo systemctl status neard
Теперь устанавливаем "ccze", тулза, необходимая для красивого отображения логов:
Код:
sudo apt install ccze
Просмотр логов:
Код:
journalctl -n 100 -f -u neard | ccze -A
На этом этапе нода установлена и работает!