Allora

Gm, yeni bir Node Point > All ile buluşuyoruz.

Allora'nın worker/price bot'unu kuruyoruz bugün.

Benzer içerikler sohbetler ve güncellemler için telegramdayız.

Yatırımı hakkında

image

Donanım

Açıkcası ben sunucu almadım, airchains station'umun içine kurdum.

Yinede donanım olarak minimum 2 CPU 4 RAM iyidir.

Kurulum

# sunucu güncellememiz
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

sudo apt install python3
sudo apt install python3-pip

# Dockeri yükleyelim
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

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

sudo groupadd docker
sudo usermod -aG docker $USER

# go kurulumu
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

Allora ve Cüzdan kurulumu

# allora kurulumu
git clone https://github.com/allora-network/allora-chain.git
cd allora-chain && make all

# cüzdan oluşturma
allorad keys add CÜZDAN_İSMİ
# cüzdanınıza bir isim veriniz

Akabinde keplr'a 24 kelimenizi import ediniz

Allora ağını keplr'a buradan ekleyelim.

Allora dashboard'a buradan bağlanıyoruz.

Allora cüzdanımıza token buradan alıyoruz.

Workerlerin kurulumu

cd $HOME
git clone https://github.com/allora-network/basic-coin-prediction-node

cd basic-coin-prediction-node

# dosyaları oluşturalım
mkdir worker-data
mkdir head-data

# dosya izinleri
sudo chmod -R 777 worker-data
sudo chmod -R 777 head-data

# head keyimizi oluşturalım
sudo docker run -it --entrypoint=bash -v ./head-data:/data alloranetwork/allora-inference-base:latest -c "mkdir -p /data/keys && (cd /data/keys && allora-keys)"

# worker keyimizi oluşturalım
sudo docker run -it --entrypoint=bash -v ./worker-data:/data alloranetwork/allora-inference-base:latest -c "mkdir -p /data/keys && (cd /data/keys && allora-keys)"

Bu komut ile head keyimzi alacağız.

cat head-data/keys/identity

Çıktının sonu root kısmı ile birleşik gelebilir kopyalarken dikkat edelim.

Keyimizi saklayalım lütfen.

# docker-compose.yml temizleyeliim
rm -rf docker-compose.yml

Alloraya bağlanalım

# yeni docker-compose.yml oluşturacağız alttaki komutla
nano docker-compose.yml

Alttaki kod bloğunu direkt sunucumuza komple yapıştıralım

ve henüz kaydetmeden bu reponun aşağısına gidelim.

version: '3'

services:
  inference:
    container_name: inference-basic-eth-pred
    build:
      context: .
    command: python -u /app/app.py
    ports:
      - "8000:8000"
    networks:
      eth-model-local:
        aliases:
          - inference
        ipv4_address: 172.22.0.4
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/inference/ETH"]
      interval: 10s
      timeout: 5s
      retries: 12
    volumes:
      - ./inference-data:/app/data

  updater:
    container_name: updater-basic-eth-pred
    build: .
    environment:
      - INFERENCE_API_ADDRESS=http://inference:8000
    command: >
      sh -c "
      while true; do
        python -u /app/update_app.py;
        sleep 24h;
      done
      "
    depends_on:
      inference:
        condition: service_healthy
    networks:
      eth-model-local:
        aliases:
          - updater
        ipv4_address: 172.22.0.5

  worker:
    container_name: worker-basic-eth-pred
    environment:
      - INFERENCE_API_ADDRESS=http://inference:8000
      - HOME=/data
    build:
      context: .
      dockerfile: Dockerfile_b7s
    entrypoint:
      - "/bin/bash"
      - "-c"
      - |
        if [ ! -f /data/keys/priv.bin ]; then
          echo "Generating new private keys..."
          mkdir -p /data/keys
          cd /data/keys
          allora-keys
        fi
        # Change boot-nodes below to the key advertised by your head
        allora-node --role=worker --peer-db=/data/peerdb --function-db=/data/function-db \
          --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \
          --private-key=/data/keys/priv.bin --log-level=debug --port=9011 \
          --boot-nodes=/ip4/172.22.0.100/tcp/9010/p2p/head-id \
          --topic=1 \
          --allora-chain-key-name=testkey \
          --allora-chain-restore-mnemonic='24 KELIME BURAYA' \
          --allora-node-rpc-address=https://allora-rpc.edgenet.allora.network/ \
          --allora-chain-topic-id=1
    volumes:
      - ./worker-data:/data
    working_dir: /data
    depends_on:
      - inference
      - head
    networks:
      eth-model-local:
        aliases:
          - worker
        ipv4_address: 172.22.0.10

  head:
    container_name: head-basic-eth-pred
    image: alloranetwork/allora-inference-base-head:latest
    environment:
      - HOME=/data
    entrypoint:
      - "/bin/bash"
      - "-c"
      - |
        if [ ! -f /data/keys/priv.bin ]; then
          echo "Generating new private keys..."
          mkdir -p /data/keys
          cd /data/keys
          allora-keys
        fi
        allora-node --role=head --peer-db=/data/peerdb --function-db=/data/function-db  \
          --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \
          --private-key=/data/keys/priv.bin --log-level=debug --port=9010 --rest-api=:6000
    ports:
      - "6000:6000"
    volumes:
      - ./head-data:/data
    working_dir: /data
    networks:
      eth-model-local:
        aliases:
          - head
        ipv4_address: 172.22.0.100


networks:
  eth-model-local:
    driver: bridge
    ipam:
      config:
        - subnet: 172.22.0.0/24

volumes:
  inference-data:
  worker-data:
  head-data:

sunuc içersinde ctrl w ile aratarak head-id ve 24 KELIME BURAYA kısımlarını değiştirelim.

head-id cat komutumuz ile almıştık, 24 kelimeyi cüzdanı oluştururken aldık.

Akabinde CTRL X Y ENTER ile kaydetip çıkalım.

Workerlerimizi başlatma

docker compose build
docker compose up -d

docker ps ile aratıp node-worker'imizin container id'iyi alalım.

Ekran Resmi 2024-06-28 12 59 20

docker logs -f container_id komutunu düzenleyip aratalım.

Ekran Resmi 2024-06-28 13 00 23

Success çıktımızı aldıysak tebrikler.

Allora puanlarımız her gün güncellenerek buraya yansıyacaktır.

image