Показать сообщение отдельно
Непрочитано 23.12.2022, 12:49   #1
Ekaterina Kulikova
Member
 
Регистрация: 20.07.2022
Сообщений: 99
По умолчанию Near | Testnet - установка ноды

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
На этом этапе нода установлена и работает!
Ekaterina Kulikova вне форума   Ответить с цитированием