GPU
August 25

NESA

🪓 Telegram канал UTSA 🪓 Telegram чат UTSA

Web Discord Docs

Nesa была создана как альтернатива ChatGPT и другим сегодняшним платформам вывода, которые централизованы и контролируются крупными игроками. Nesa - это глобальная сеть блокчейнов, объединяющая искусственный интеллект. Платформа Nesa позволяет приложениям, протоколам и смарт-контрактам легко интегрироваться с ИИ

В данном руководстве будет описан процесс запуска майнера. Для запуска валидатора необходимо быть отобранным в вайтлист. Для этого заполните форму https://forms.gle/uhfE4P1YZcJEogW16


В последних версиях скрипта установки нет возможности выбора моделей, но это может вернуться в будущем, поэтому важно знать варианты и модели, но самый простой вариант выбрать Non-Distributed

Distributed Miner: Присоединяется к существующим swarms для совместного майнинга. Высокая степень децентрализации с большим количеством участников

Non-Distributed Miner: Работает независимо, без сотрудничества. Низкая степень децентрализации, контролируемая центральным органом власти. Подобие пула

При выборе некоторых моделей необходимо дать разрешение на сайте https://huggingface.co/meta-llama/Meta-Llama-3.1-70B-Instruct

Основные отличия distributed и non-distributed miner

distributed майнерские стимулы обычно структурированы для вознаграждения нескольких участников децентрализованной сети. Это распространено в публичных блокчейнах, таких как Bitcoin и Ethereum

Rewards: майнеры получают вознаграждения в виде криптовалюты (например, Bitcoin, Ether) за успешную проверку и добавление новых блоков в блокчейн

Transaction Fees: майнеры также получают комиссию за транзакцию, которые они добывают
Decentralization: стимулы призваны побудить к участию большое количество майнеров, гарантируя, что сеть останется децентрализованной и безопасной

Competition: майнеры соревнуются в решении криптографических головоломок, и первый, кто решит ее, получает награду. Этот процесс известен как «Доказательство работы» (PoW)


non-distributed (или централизованная) система, стимулы для майнинга управляются центральным органом или небольшой группой субъектов. Это встречается реже в контексте криптовалют, но может наблюдаться в частных или разрешенных блокчейнах

Fixed Rewards: майнеры могут получать фиксированные вознаграждения или зарплаты за свою работу, как это определено центральным органом власти
Controlled Environment: центральный орган власти может контролировать процесс майнинга, включая то, кто может участвовать и как распределяются награды
Efficiency: поскольку окружающая среда находится под контролем, система может быть более эффективной и быстрой, но при этом приходится жертвовать децентрализацией
Security: безопасность сети больше зависит от мер центрального органа власти, а не от широкой децентрализованной сети участников


Рекомендации

  • В данной тестовой сети Вы можете самостоятельно попробовать протестировать Distributed и различные модели, но легче всего будет использовать Non-Distributed с небольшой моделью. В будущем это может измениться
  • При регистрации указывайте действующий email и сохраните данные кошелька
  • Команда будет отслеживать раннюю регистрацию, аптайм и работу
  • Для Nesa спецификации оборудования для узлов майнера и валидатора схожи, обычно требуя высокопроизводительных ЦП и достаточного объема оперативной памяти. Однако графический процессор не является обязательным для запуска узла майнера, хотя его наличие может повысить производительность для определенных задач, таких как обработка рабочих нагрузок ИИ. Так VPS 4/8/160 не всегда справляется с легкими задачами Non-Distributed и вылетает из-за нехватки памяти
  • В настоящее время для правильной работы майнера нужно открыть порт 31333, так как через данный порт майнер будет получать задания. В будущем ожидается, что обязательное использование порта 31333 будет отменено ufw allow 31333
  • Если у Вас уже используется порт 8080, который также необходим для работы майнера (открывать не обязательно), то его можно изменить отредактировав ~/.nesa/docker/ipfs.yml и изменить, к примеру 8080:8080 на 38080:38080 или любой другой порт
  • Если у Вас Response Count не увеличивается, то проверьте не работаете ли Вы через ipv6, которая не поддерживается. Для улучшенной работы рекомендуется отключить ipv6. Отредактируйте $HOME/.nesa/env/base.env и измените PUBLIC_IP=<ВАШ_IP_ipv4>. После изменения IP запустите скрипт настройки/установки повторно

Подготовка сервера

# обновляем репозитории
apt update && apt upgrade -y

# устанавливаем необходимые утилиты
apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev libgmp3-dev tar clang bsdmainutils ncdu unzip llvm libudev-dev make protobuf-compiler -y

Устанавливаем docker + docker-compose

# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ru
apt update && \
apt install apt-transport-https ca-certificates curl software-properties-common -y && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && \
apt update && \
apt-cache policy docker-ce && \
sudo apt install docker-ce -y && \
docker --version
# ручная установка docker-compose https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04-ru
# проверяем версию https://github.com/docker/compose/releases и подставляем в команду установки
curl -L "https://github.com/docker/compose/releases/download/v2.10.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

# проверить версию
docker-compose --version

Драйвера на видеокарту

sudo apt-get install linux-headers-$(uname -r)

distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')

wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb

sudo dpkg -i cuda-keyring_1.0-1_all.deb

sudo apt-get update

sudo apt-get -y install cuda-drivers

---

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update

sudo apt-get install -y nvidia-container-toolkit

---

sudo nvidia-ctk runtime configure --runtime=docker

sudo systemctl restart docker

nvidia-smi
#nvcc --version
# Create a docker group (if non-existent), adds the current user, 
# and applies group membership immediately in the current session
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

Получение токена API Hugging Face

Для начала нам необходимо получить токен API Hugging Face

  • Переходим на сайт https://huggingface.co/docs/hub/security-tokens и регистрируемся
  • После регистрации подтверждаем свой email
  • Переходим в настройки аккаунта и выбираем Access Tokens
  • Нажимаем создать новый токен - даем права и сохраняем наш токен в надежном месте!!! Убедитесь, что Ваш API-токен Hugging Face надежно сохранен. Он понадобится Вам во время настройки

Можно использовать несколько экземпляров VPS для запуска приложений, которым требуется доступ к вашему токену API Hugging Face. Каждый VPS может использовать один и тот же токен API для выполнения запросов к Hugging Face, при условии, что они находятся в пределах ограничений использования, определенных вашим планом Hugging Face


Start Mining

# Если запускаете из под root, то вводите команду
curl -sSL https://raw.githubusercontent.com/nesaorg/bootstrap/master/bootstrap.sh | sudo bash

# Универсальный скрипт для запуска валидитора или майнера
bash <(curl -s https://raw.githubusercontent.com/nesaorg/bootstrap/master/bootstrap.sh)

Сначала нам предлагаю выбрать Wizardy или Advanced Wizardy. Выбираем Wizardy. Нажимаем ENTER

Wizardry — это стандартный режим настройки, в котором скрипт шаг за шагом проводит Вас через процесс настройки, запрашивая ввод данных при необходимости. Он разработан, чтобы провести Вас через установку с минимальной сложностью

Далее соглашаемся с предложенным моникером или редактируем его. Не используем пробелы. Нажимаем ENTER

Далее вводим действующий email. Нажимаем ENTER

В новой версии скрипта ввели реферальную систему. Вы можете ввести мой кошелек или оставить кошелек разработчиков по умолчанию. Мой кошелек nesa1qxluyha0wqmvtkclefd0292wtp6rv8n600xv88

Нажимаем ENTER

Далее нам необходимо вставить наш API key от Huggingface, который мы получали ранее. Нажимаем ENTER

Далее нам необходимо использовать private key, совместимый с Cosmos. Кошелек Keplr не даст Вам private key, поэтому можно скопировать Вашу seed фразу и импортировать ее в кошелек Leap, чтобы получить private key. Нажимаем ENTER

В конце нам покажется вся наша конфигурация и необходимо будет нажать Y для


Ниже правильные логи оркестратора при обработке задания

После запуска майнера мы можем просмотреть статистику нашего майнера в браузере. Для этого вводим команду, вывод которой вставляем в браузер

node_id=$(cat $HOME/.nesa/identity/peer_id.id)
echo https://node.nesa.ai/nodes/$node_id

Полезные команды

# проверить логи
docker logs -f -n 100 orchestrator
docker logs -f -n 100 ipfs_node
docker logs -f -n 100 mongodb

# рестарт контейнеров
docker restart orchestrator mongodb docker-watchtower-1 ipfs_node
# остановить контейнеров
docker stop orchestrator mongodb docker-watchtower-1 ipfs_node
# удалить контейнеров
docker rm orchestrator mongodb docker-watchtower-1 ipfs_node

Поддержим природу вместе: 0xa7476EC14cD663C742d527113638C77a1631Cc89 cosmos1m2mm7kzvw6m3464h94ryqg8xvr6tyeyyecppnq