/NEAR

Primary LanguageShell

NEAR

Знімок екрана 2022-09-06 о 11 22 10

Создание кошелька

Переходим по ссылке создать кошелек и создаем кошелек. Вот что вы увидите Знімок екрана 2022-09-07 о 16 35 40 Здесь ты можешь создать или импотировать свой кошелек

Если ты создаешь кошелек Обязательно!!! Не забудь сохранить сид фразы.

Установка node

Устанавливаем 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

Установка node последовательно

Заходим в 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

image

Устанавливаем NEAR-CLI(также таким образом можно переустановить near-cli)

sudo npm install -g near-cli

Знімок екрана 2022-07-30 о 16 21 56

Настраиваем окружение. Текущий тест проходит в сети 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

Знімок екрана 2022-07-30 о 16 36 54

Устанавливаем репозиторий

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, тогда можно переходить к следующему разделу

image

Активация node

near login
# Водимо адрес в браузер https://wallet.shardnet.near.org/login/****

Подтверждаем все запросы

Далее когда вы пройдете вы получите ошибку 403 Not Fount.

После этого переходим в терминал и водим ваш ACCOUNT_ID Это должно выглядеть так

image

Создание валидатора

Заменяем 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