Allora. Устанавливаем ноду и воркер
KARMALOGIC - Личный блог о крипте, мои мысли и действия
Allora — это новая децентрализованная AI сеть с упором на Community
- Инвестировали: $33 750 000
- Инвесторы: Polychain Capital, Delphi Ventures, Blockchain Capital, и другие
- Характеристики: 2CPU/4GBRAM/5SSD — минимальные
- Арендовать сервер: billing.spacecore.pro
- Чат с поддержкой: https://t.me/+VA8TF9tqFlc2Njgy
- Ubuntu: 22.04
Команда проекта анонсировало новый сезон Фарма поинтов, в последствия наши поинты будут конвертированы в токен проекта. Мы можем поставить ноду валидатора и воркера. Но в валидаторы очень сложно попасть , поэтому мы будем ставить обычного воркера.
Арендуем сервер я беру тут https://billing.spacecore.pro/billmgr?from=56804
1 )Устанавливаем кошелек кеплер сохраняем сид фразу (она нам будет нужна в процессе установки ноды
2) Идем на сайт и жмем зеленую надпись add allora tesnet 1 добавялем тестовую сеть в кошелек
3) Заходим в кошелек в настройках и поиске ищем сеть allora-testnet-1 и добавялем , что бы она отбразилась в самом кошельке
4) Идем на сайт и запрашиваем наши тестовые токены из крана , копируем кошелек Аллора, вставляем и решаем капчу , если все в порядке выйдет зеленая надпись. (ждем поступления токенов должно придти примерно 0.0000001)
5) Теперь идем на сайт и подключаем наш кошелек к даш борду, тут нам будудт начислять баллы за работу ноды.
Советую не делать танцы с бубном и если у вас нода стояла до этого , то сперва советую снести сервак и накатить заново операционку и уже начистую переустановить и восстановить ключи!!! Приступаем к установки ноды
1) Открываем терминал и вводи первую команду
sudo apt update & sudo apt upgrade -y sudo apt install ca-certificates zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev curl git wget make jq build-essential pkg-config lsb-release libssl-dev libreadline-dev libffi-dev gcc screen unzip lz4 -y
Если появится выбор при обновлении, жмем Enter и потверждаем действие клавишей Y
sudo apt install python3 python3 --version sudo apt install python3-pip pip3 --version
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker version
VER=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4) curl -L "https://github.com/docker/compose/releases/download/"$VER"/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version
sudo groupadd docker sudo usermod -aG docker $USER
sudo rm -rf /usr/local/go curl -L https://go.dev/dl/go1.22.4.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> $HOME/.bash_profile source .bash_profile go version
Очередь Лопатника( кошелька) Аллора
git clone https://github.com/allora-network/allora-chain.git cd allora-chain && make all allorad version
Устанавливаем allora-hugging-face-worker
git clone https://github.com/allora-network/allora-huggingface-walkthrough cd allora-huggingface-walkthrough
mkdir -p worker-data chmod -R 777 worker-data
sudo apt install nano cp config.example.json config.json nano config.json
ТУТ ВНИМАТЕЛЬНО !! В ЭТОМ ФАЙЛЕ НУЖНО БУДЕТ ЗАМЕНИТЬ НАДПИСЬ “your phase” НА СВОЮ СИД ФРАЗУ ОТ КОШЕЛЬКА КЕПЛЕР И ТАК ЖЕ ЗАМЕНИТЬ RPC !! КОВЫЧКИ УДАЛЯТЬ НЕ НУЖНО. СПИСОК RCP ДЛЯ ЗАМЕНЫ https://beta.multi-rpc.com/allora_testnet/ https://allora-rpc.testnet-1.testnet.allora.network/
{ "wallet": { "addressKeyName": "test", "addressRestoreMnemonic": "your phase", "alloraHomeDir": "/root/.allorad", "gas": "1000000", "gasAdjustment": 1.0, "nodeRpc": "https://sentries-rpc.testnet-1.testnet.allora.network/", "maxRetries": 1, "delay": 1, "submitTx": false }, "worker": [ { "topicId": 1, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 1, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "ETH" } }, { "topicId": 2, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 3, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "ETH" } }, { "topicId": 3, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 5, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "BTC" } }, { "topicId": 4, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 2, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "BTC" } }, { "topicId": 5, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 4, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "SOL" } }, { "topicId": 6, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 5, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "SOL" } }, { "topicId": 7, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 2, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "ETH" } }, { "topicId": 8, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 3, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "BNB" } }, { "topicId": 9, "inferenceEntrypointName": "api-worker-reputer", "loopSeconds": 5, "parameters": { "InferenceEndpoint": "http://inference:8000/inference/{Token}", "Token": "ARB" } } ] }
Сохраняем все измениня кнопками Cntr + X, Y, Enter
Далее идем на CoinGecko и регаем демо аккаунт, тут нам нужен будет API Жмем Sign in регаемся , можно сразу авторизоватся через гугл почту , с права будет надпись Creat demo Akk жмем туда, заполняем данные можно выдумывать любые там где просит укзать часовй пояс пишем любые цифры. Все далее увидите надпись адд Api жмем туда он сгенерирует наш Api. В видео все это покажу если что.
Открываем App.ry там наша модель.
nano app.py
Тут заменяем “CG-your_api_key” на ваш API KEY который мы получил на COingeco
from flask import Flask, Response import requests import json import pandas as pd import torch from chronos import ChronosPipeline # Создаем Flask-приложение app = Flask(__name__) # Определяем модель Hugging Face, которую будем использовать model_name = "amazon/chronos-t5-tiny" def get_coingecko_url(token): base_url = "https://api.coingecko.com/api/v3/coins/" token_map = { 'ETH': 'ethereum', 'SOL': 'solana', 'BTC': 'bitcoin', 'BNB': 'binancecoin', 'ARB': 'arbitrum' } token = token.upper() if token in token_map: url = f"{base_url}{token_map[token]}/market_chart?vs_currency=usd&days=30&interval=daily" return url else: raise ValueError("Unsupported token") # Определяем наш эндпоинт @app.route("/inference/<string:token>") def get_inference(token): """Генерация прогноза для указанного токена.""" try: # Используем pipeline как высокоуровневый помощник pipeline = ChronosPipeline.from_pretrained( model_name, device_map="auto", torch_dtype=torch.bfloat16, ) except Exception as e: return Response(json.dumps({"pipeline error": str(e)}), status=500, mimetype='application/json') try: # Получаем данные с Coingecko url = get_coingecko_url(token) except ValueError as e: return Response(json.dumps({"error": str(e)}), status=400, mimetype='application/json') headers = { "accept": "application/json", "x-cg-demo-api-key": "CG-your_api_key" # замените на ваш API-ключ } response = requests.get(url, headers=headers) if response.status_code == 200: data = response.json() df = pd.DataFrame(data["prices"]) df.columns = ["date", "price"] df["date"] = pd.to_datetime(df["date"], unit='ms') df = df[:-1] # удаляем сегодняшнюю цену print(df.tail(5)) else: return Response(json.dumps({"Failed to retrieve data from the API": str(response.text)}), status=response.status_code, mimetype='application/json') # Определяем контекст и длину прогноза context = torch.tensor(df["price"]) prediction_length = 1 try: forecast = pipeline.predict(context, prediction_length) # shape [num_series, num_samples, prediction_length] print(forecast[0].mean().item()) # берем среднее значение прогнозируемого результата return Response(str(forecast[0].mean().item()), status=200) except Exception as e: return Response(json.dumps({"error": str(e)}), status=500, mimetype='application/json') # Запускаем Flask-приложение if __name__ == '__main__': app.run(host="0.0.0.0", port=8000, debug=True)
chmod +x init.config ./init.config
docker compose up --build -d
docker compose logs -f
ТЕПЕРЬ КОМАНДЫ КОТОРЫЕ НУЖНЫ НАМ ЕСЛИ ВДРУГ МЫ ХОТИМ ЗАМЕНИТЬ РПЦ ИЛИ ВНЕСТИ ИЗМЕНЕНИЯ В МОДЕЛЬ
cd /root/allora-chain/allora-huggingface-walkthrough/
cd basic-coin-prediction-node docker compose down -v
ЕСЛИ НУЖНО ЗАМЕНИТЬ РПЦ ВВОДИМ ЭТУ КОМАНДУ
sudo apt install nano nano config.json
Когда внесли изменения допустим заменил РЦП нужно сделать следующие команды
chmod +x init.config ./init.config
docker compose up -d
Моя группа в телеграмме подписывайтесь и будьте в курсе всех новостей и двжении