└── README.md /README.md: -------------------------------------------------------------------------------- 1 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/1c784684-8407-45ba-9d98-3a8de21517cd)# Allora-Network-Worker-node 2 | 3 | 4 | 5 | 6 | 7 | ## Install packages 8 | ``` 9 | sudo apt update && sudo apt upgrade -y 10 | ``` 11 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/1d7cd561-6b16-4fe0-89f5-e606f3d787d2) 12 | 13 | 14 | 15 | ## Install dependencies 16 | ``` 17 | 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 18 | ``` 19 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/00783786-cb7c-422a-a079-e25dfc721d24) 20 | 21 | 22 | 23 | -------------- 24 | ## Install python 25 | ### Press ```y``` and proceed 26 | ``` 27 | sudo apt install python3 28 | python3 --version 29 | 30 | sudo apt install python3-pip 31 | pip3 --version 32 | ``` 33 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/baa5caf5-f835-470a-942a-9098579ce02c) 34 | 35 | 36 | ## Install Docker 37 | ``` 38 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 39 | 40 | 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 41 | 42 | sudo apt-get update 43 | sudo apt-get install docker-ce docker-ce-cli containerd.io 44 | docker version 45 | ``` 46 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/31c0d459-37f1-49f8-9b03-c81e14b26588) 47 | 48 | 49 | 50 | ## Install Docer compose 51 | ``` 52 | VER=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4) 53 | 54 | curl -L "https://github.com/docker/compose/releases/download/"$VER"/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 55 | 56 | chmod +x /usr/local/bin/docker-compose 57 | docker-compose --version 58 | ``` 59 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/7710bd4c-bbf6-4662-a3cb-a7e1f16c1029) 60 | 61 | ### Docker compose poermission 62 | ``` 63 | sudo groupadd docker 64 | sudo usermod -aG docker $USER 65 | ``` 66 | 67 | 68 | ## Install GO 69 | ``` 70 | cd $HOME && \ 71 | ver="1.21.3" && \ 72 | wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \ 73 | sudo rm -rf /usr/local/go && \ 74 | sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \ 75 | rm "go$ver.linux-amd64.tar.gz" && \ 76 | echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \ 77 | source $HOME/.bash_profile && \ 78 | go version 79 | ``` 80 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/1af466f2-3a0d-4b97-89e8-f5e33cac8e4d) 81 | 82 | 83 | 84 | ## Install Allorad: Wallet 85 | ``` 86 | git clone https://github.com/allora-network/allora-chain.git 87 | cd allora-chain && make all 88 | allorad version 89 | ``` 90 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/2a3f318a-fdc2-417f-9128-3199edc745a0) 91 | 92 | 93 | 94 | ## Recover wallet with seed-phrase created previously 95 | ### Enter ```bip39``` key [seedphrase] then the keyphrase enter a password, twice. 96 | ``` 97 | allorad keys add testkey --recover 98 | ``` 99 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/40f78d47-cfdd-4bb7-b005-c3e2d956b8f3) 100 | 101 | 102 | 103 | --------------------- 104 | ## Add Network 105 | Visit: https://explorer.edgenet.allora.network/wallet/suggest 106 | Add to Keplr 107 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/f322211d-60c2-4ad0-9fb5-24cde756113d) 108 | 109 | 110 | ## Request Faucet 111 | Visit: https://faucet.edgenet.allora.network/ 112 | Copy address from Keplr or the CMD [allo.......] 113 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/ae8c2348-36c3-4149-a5c8-dbf61c20a4ac) 114 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/ef51c12a-57ed-42e3-8c5c-cb964d9a37e4) 115 | 116 | 117 | 118 | 119 | ## Install Worker 120 | ``` 121 | git clone https://github.com/allora-network/basic-coin-prediction-node 122 | cd basic-coin-prediction-node 123 | 124 | mkdir worker-data && mkdir head-data 125 | ``` 126 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/ce147710-863e-4f1a-8c65-09c61fe16d66) 127 | 128 | ### Granting permission 129 | ``` 130 | sudo chmod -R 777 worker-data 131 | sudo chmod -R 777 head-data 132 | ``` 133 | 134 | 135 | ### Create Head key 136 | ``` 137 | 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)" 138 | ``` 139 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/903a7a48-d8c4-45e0-a08a-4d5375c595e0) 140 | 141 | 142 | 143 | ### Create Worker key 144 | ``` 145 | 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)" 146 | ``` 147 | 148 | ### Copy head ID 149 | ``` 150 | cat head-data/keys/identity 151 | ``` 152 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/23a6a877-5938-4b31-a66e-7b3fe07670aa) 153 | 154 | 155 | 156 | 157 | # Connecting Allora Chain 158 | ``` 159 | rm -rf docker-compose.yml && nano docker-compose.yml 160 | ``` 161 | 162 | ## Paste content 163 | Copy and paste these content 164 | Replace ```head-id``` and ```wallet_seed_phrase``` 165 | 166 | ``` 167 | version: '3' 168 | 169 | services: 170 | inference: 171 | container_name: inference-basic-eth-pred 172 | build: 173 | context: . 174 | command: python -u /app/app.py 175 | ports: 176 | - "8000:8000" 177 | networks: 178 | eth-model-local: 179 | aliases: 180 | - inference 181 | ipv4_address: 172.22.0.4 182 | healthcheck: 183 | test: ["CMD", "curl", "-f", "http://localhost:8000/inference/ETH"] 184 | interval: 10s 185 | timeout: 5s 186 | retries: 12 187 | volumes: 188 | - ./inference-data:/app/data 189 | 190 | updater: 191 | container_name: updater-basic-eth-pred 192 | build: . 193 | environment: 194 | - INFERENCE_API_ADDRESS=http://inference:8000 195 | command: > 196 | sh -c " 197 | while true; do 198 | python -u /app/update_app.py; 199 | sleep 24h; 200 | done 201 | " 202 | depends_on: 203 | inference: 204 | condition: service_healthy 205 | networks: 206 | eth-model-local: 207 | aliases: 208 | - updater 209 | ipv4_address: 172.22.0.5 210 | 211 | worker: 212 | container_name: worker-basic-eth-pred 213 | environment: 214 | - INFERENCE_API_ADDRESS=http://inference:8000 215 | - HOME=/data 216 | build: 217 | context: . 218 | dockerfile: Dockerfile_b7s 219 | entrypoint: 220 | - "/bin/bash" 221 | - "-c" 222 | - | 223 | if [ ! -f /data/keys/priv.bin ]; then 224 | echo "Generating new private keys..." 225 | mkdir -p /data/keys 226 | cd /data/keys 227 | allora-keys 228 | fi 229 | # Change boot-nodes below to the key advertised by your head 230 | allora-node --role=worker --peer-db=/data/peerdb --function-db=/data/function-db \ 231 | --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \ 232 | --private-key=/data/keys/priv.bin --log-level=debug --port=9011 \ 233 | --boot-nodes=/ip4/172.22.0.100/tcp/9010/p2p/head-id \ 234 | --topic=1 \ 235 | --allora-chain-key-name=testkey \ 236 | --allora-chain-restore-mnemonic='WALLET_SEED_PHRASE' \ 237 | --allora-node-rpc-address=https://allora-rpc.edgenet.allora.network/ \ 238 | --allora-chain-topic-id=1 239 | volumes: 240 | - ./worker-data:/data 241 | working_dir: /data 242 | depends_on: 243 | - inference 244 | - head 245 | networks: 246 | eth-model-local: 247 | aliases: 248 | - worker 249 | ipv4_address: 172.22.0.10 250 | 251 | head: 252 | container_name: head-basic-eth-pred 253 | image: alloranetwork/allora-inference-base-head:latest 254 | environment: 255 | - HOME=/data 256 | entrypoint: 257 | - "/bin/bash" 258 | - "-c" 259 | - | 260 | if [ ! -f /data/keys/priv.bin ]; then 261 | echo "Generating new private keys..." 262 | mkdir -p /data/keys 263 | cd /data/keys 264 | allora-keys 265 | fi 266 | allora-node --role=head --peer-db=/data/peerdb --function-db=/data/function-db \ 267 | --runtime-path=/app/runtime --runtime-cli=bls-runtime --workspace=/data/workspace \ 268 | --private-key=/data/keys/priv.bin --log-level=debug --port=9010 --rest-api=:6000 269 | ports: 270 | - "6000:6000" 271 | volumes: 272 | - ./head-data:/data 273 | working_dir: /data 274 | networks: 275 | eth-model-local: 276 | aliases: 277 | - head 278 | ipv4_address: 172.22.0.100 279 | 280 | 281 | networks: 282 | eth-model-local: 283 | driver: bridge 284 | ipam: 285 | config: 286 | - subnet: 172.22.0.0/24 287 | 288 | volumes: 289 | inference-data: 290 | worker-data: 291 | head-data: 292 | ``` 293 | 294 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/9ebd2df2-6b86-4b15-be75-186e6ef570a2) 295 | 296 | 297 | Proceed with ```CTRL X + Y,``` then ```ENTER``` 298 | 299 | 300 | ## Employ Worker 301 | ``` 302 | docker compose build 303 | docker compose up -d 304 | ``` 305 | 306 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/5b86e398-aefb-4fa1-8a2e-cac61c54420c) 307 | 308 | Wait for it . . .. . . 309 | 310 | 311 | 312 | ## Check running service 313 | ``` 314 | docker ps 315 | ``` 316 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/a011fd82-229e-4402-84f3-2394b02f94eb) 317 | 318 | 319 | 320 | ## Replace ID with ```CONTAINER_ID``` 321 | ``` 322 | docker logs -f CONTAINER_ID 323 | ``` 324 | 325 | e.g docker logs -f 12c69e3c45db for mine 326 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/c21f5948-b5fd-4214-b3da-02e85644013a) 327 | 328 | 329 | 330 | 331 | # Looking up Worker Node: 332 | ``` 333 | curl --location 'http://localhost:6000/api/v1/functions/execute' \ 334 | --header 'Content-Type: application/json' \ 335 | --data '{ 336 | "function_id": "bafybeigpiwl3o73zvvl6dxdqu7zqcub5mhg65jiky2xqb4rdhfmikswzqm", 337 | "method": "allora-inference-function.wasm", 338 | "parameters": null, 339 | "topic": "1", 340 | "config": { 341 | "env_vars": [ 342 | { 343 | "name": "BLS_REQUEST_PATH", 344 | "value": "/api" 345 | }, 346 | { 347 | "name": "ALLORA_ARG_PARAMS", 348 | "value": "ETH" 349 | } 350 | ], 351 | "number_of_nodes": -1, 352 | "timeout": 2 353 | } 354 | }' 355 | ``` 356 | 357 | 358 | Here is my response: 359 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/76c6920a-9208-484f-bdb4-6d6aecaeded4) 360 | 361 | 362 | 363 | 364 | ## Check update node 365 | ``` 366 | curl http://localhost:8000/update 367 | ``` 368 | 369 | ## Check Inference node 370 | ``` 371 | curl http://localhost:8000/inference/ETH 372 | ``` 373 | ![image](https://github.com/mztacat/Allora-Network-Worker-node/assets/31314340/604447a0-ae02-48b3-ba0f-78c9190332b8) 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | --------------------------------------------------------------------------------