- Создание кошелька
- Встановлення ноди через скрипт
- Последовательная установка
- Активация node
- Создание валидатора
- Дополнительные команды
- Создание пинг
Переходим по ссылке создать кошелек и создаем кошелек. Вот что вы увидите Здесь ты можешь создать или импотировать свой кошелек
Если ты создаешь кошелек Обязательно!!! Не забудь сохранить сид фразы.
Устанавливаем новую версию ветви Узнать это можно перейдя по этой ссылке Последняя версия
exempl 68bfa84ed1455f891032434d37ccad696e91e4f5
checkuot=<new_version>
wget https://raw.githubusercontent.com/azbookin/NEAR/main/near_install_node.sh && chmod +x near_install_node.sh && bash near_install_node.sh
Update cli (эта команда может значиться позже)
sudo npm install -g near-cli
Заходим в root пользователя
sudo su
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"
sudo apt install -y git binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev cmake gcc g++ python docker.io protobuf-compiler libssl-dev pkg-config llvm cargo
sudo apt install clang build-essential make
sudo apt install curl jq
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejs
PATH="$PATH"
Проверяем версии
node -v && npm -v
Устанавливаем NEAR-CLI(также таким образом можно переустановить near-cli)
sudo npm install -g near-cli
Настраиваем окружение. Текущий тест проходит в сети shardnet. Вводим название сети как переменное
export NEAR_ENV=shardnet
echo 'export NEAR_ENV=shardnet' >> ~/.bashrc
Устанавливаем и настраиваем Python pip
sudo apt install python3-pip
USER_BASE_BIN=$(python3 -m site --user-base)/bin
export PATH="$USER_BASE_BIN:$PATH"
Устанавливаем Rust
sudo apt install curl build-essential gcc make -y
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Вибираємо -> 1) Proceed with installation (default)
source ~/.profile
source ~/.cargo/env
Устанавливаем репозиторий
git clone https://github.com/near/nearcore
cd nearcore
git fetch
#Обов'язково провіряємо чи це нова версія
git checkout 1897d5144a7068e4c0d5764d8c9180563db2fe43
Узнать это можно перейдя по этой ссылке Последняя версия
Собираем бинарные файлы
cargo build -p neard --release --features shardnet
Инициализируем ноду и загружаем генезис файл
./target/release/neard --home ~/.near init --chain-id shardnet --download-genesis
Загружаем файл конфигураций
rm ~/.near/config.json
wget -O ~/.near/config.json https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/shardnet/config.json
Загружаем снепшот
sudo apt-get install awscli -y
cd ~/.near
aws s3 --no-sign-request cp s3://build.openshards.io/stakewars/shardnet_noarchive/data.tar.gz .
tar -xzvf data.tar.gz
Запускаем ноду
cd ~
cd nearcore
./target/release/neard --home ~/.near run
Теперь можно остановить Cntr+C и создаем сервисник
echo "[Unit]
Description=NEARd Daemon Service
[Service]
Type=simple
User=root
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" | tee -a /etc/systemd/system/neard.service
Запускаем сервисник
sudo systemctl daemon-reload
sudo systemctl enable neard
sudo systemctl restart neard
Команда для проверки логов Здесь также должно показываться что идет загрузка headers
journalctl -u neard -f -o cat
Когда оно загрузится вы увидите следующие логи
Проверяем синхронизацию
curl -s http://127.0.0.1:3030/status | jq .sync_info
Если синхронизация показывает false, тогда можно переходить к следующему разделу
near login
# Водимо адрес в браузер https://wallet.shardnet.near.org/login/****
Подтверждаем все запросы
Далее когда вы пройдете вы получите ошибку 403 Not Fount.
После этого переходим в терминал и водим ваш ACCOUNT_ID Это должно выглядеть так
Заменяем moniker на свой ник
MONIKER=<MONIKER>
POOL=$MONIKER.factory.shardnet.near
ACCOUNT_ID=$MONIKER.shardnet.near
Теперь создаем ключи валидатора
near generate-key $ACCOUNT_ID
Делаем некоторые изменения в создавшемся файле
sed -i 's/private_key/secret_key/' ~/.near-credentials/shardnet/$ACCOUNT_ID.json
sed -i s/$ACCOUNT_ID/$POOL/ ~/.near-credentials/shardnet/$ACCOUNT_ID.json
Копируем ключ в другую дерикторию и переименуем
cp ~/.near-credentials/shardnet/$ACCOUNT_ID.json ~/.near/validator_key.json
И перезапускаем ноду
sudo systemctl restart neard
Это еще не все для того, чтобы создать валидатора, мы должны выполнить еще некоторые действия.
В данный скрипт мы должны заменить public_key
на ваш публичный ключ
near call factory.shardnet.near create_staking_pool '{"staking_pool_id": "$MONIKER", "owner_id": "$ACCOUNT_ID", "stake_public_key": "<public key>", "reward_fee_fraction": {"numerator": 5, "denominator": 100}, "code_hash":"DD428g9eqLL8fWUxv8QSpVFzyHi1Qd16P8ephYCTmMSZ"}' --accountId="$ACCOUNT_ID" --amount=30 --gas=300000000000000
Также нужно забросить соответствующую сумму для того, чтобы валидатор находился в валидном сете.
near call $MONIKER deposit_and_stake --amount <amount> --accountId $ACCOUNT_ID --gas=300000000000000
- Unstake and Unstake All
near call <staking_pool_id> unstake '{"amount": "<amount yoctoNEAR>"}' --accountId <accountId> --gas=300000000000000
near call <staking_pool_id> unstake_all --accountId <accountId> --gas=300000000000000
- Снять или Снять всю сумму.
near call <staking_pool_id> withdraw '{"amount": "<amount yoctoNEAR>"}' --accountId <accountId> --gas=300000000000000
near call <staking_pool_id> withdraw_all --accountId <accountId> --gas=300000000000000
- Доступный для вывода. Вы можете снять деньги с контракта, только если они разблокированы.
near view <staking_pool_id> is_account_unstaked_balance_available '{"account_id": "<accountId>"}'
- Посмотреть стейк баланс.
near view <staking_pool_id> get_account_staked_balance '{"account_id": "<accountId>"}'
- Растейка баланса.
near view <staking_pool_id> get_account_unstaked_balance '{"account_id": "<accountId>"}'
Устанавливаем такой скрипт
wget -P ~/ https://raw.githubusercontent.com/azbookin/NEAR/main/ping.sh && chmod +x ~/ping.sh
mkdir -p $HOME/logs
Устанавливаем crontab если он у вас не установлен и открываем редактор, где будем задавать изменения
apt install crontab
crontab -e
Если вы раньше не пользовались им вам дадут выбор какой использовать редактор(я буду пользоваться nano) Теперь вставляем такую фразу в конец списка
0 */2 * * * bash /root/ping.sh
Чтобы увидеть logs этих команд нужно вести
nano ~/logs/all.log