# Allora node

By [Untitled](https://paragraph.com/@0x268606fb0b6bd4f49c5a456c2368a08682a34c27) · 2024-07-06

---

    sudo apt update && sudo apt upgrade -y
    sudo apt install ca-certificates zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev curl git wget make
    

    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
    

    sudo curl -L "https://github.com/docker/compose/releases/download/2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
    docker compose version
    

    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
    

    allorad keys add testkey --recover
    

+mnemonic and pass

    cd $HOME && git clone https://github.com/allora-network/basic-coin-prediction-node
    
    cd basic-coin-prediction-node
    
    mkdir worker-data
    mkdir head-data
    

    sudo chmod -R 777 worker-data
    sudo chmod -R 777 head-data
    

    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)"
    

    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)"
    

    cat head-data/keys/identity
    

  
Copy head-id

    rm -rf docker-compose.yml && nano docker-compose.yml
    

### CHANGE HEAD\_ID and WALLETmNEMONIC:

    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=allora-topic-1-worker \
              --allora-chain-key-name=testkey \
              --allora-chain-restore-mnemonic='WALLETmNEMONIC' \
              --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:
    

CTRLX Y Enter

    docker compose build
    docker compose up -d
    

    curl --location 'http://localhost:6000/api/v1/functions/execute' \
    --header 'Content-Type: application/json' \
    --data '{
        "function_id": "bafybeigpiwl3o73zvvl6dxdqu7zqcub5mhg65jiky2xqb4rdhfmikswzqm",
        "method": "allora-inference-function.wasm",
        "parameters": null,
        "topic": "1",
        "config": {
            "env_vars": [
                {
                    "name": "BLS_REQUEST_PATH",
                    "value": "/api"
                },
                {
                    "name": "ALLORA_ARG_PARAMS",
                    "value": "ETH"
                }
            ],
            "number_of_nodes": -1,
            "timeout": 2
        }
    }'
    

if 200 all good

---

*Originally published on [Untitled](https://paragraph.com/@0x268606fb0b6bd4f49c5a456c2368a08682a34c27/allora-node)*
