Skip to main content

A CLI tool for creating Allora Chain Worker Nodes

Project description

Building a Worker Node with the allocmd CLI

Docker! Python! Apache License

The allocmd is a CLI tool that handles seamless creation of Allora external resources built to integrate with Allora chain. With this tool, you do not need to write the worker or reputer node or even a validator from scratch, the CLI tool will help you bootstrap all the needed components to get resource working.

The following are the list of stuff that can don with this tool at the moment

  1. Generating worker node files
  2. Genrating reputer node files
  3. Generating validator node files
  4. Funding of edgenet account addresses

for all the files generation commands, the tool will help in generation of the needed files and their respective docker files and you can spin them up as usual docker containers with docker-compose

Install allocmd CLI

You will begin with installing the tool on your machine.

pip install allocmd

you should use version 1.0.0 for Allora Chain v1 and version 2.0.0 for Allora Chain v2. Run allocmd --help to get general help or allocmd [command] --help to get help relating to a particular command.

Initializing resources

Initialize the worker/reputer for development

Note that all commands here will pass for both worker or reputer node

The next step is initializing the CLI to bootstrap all the needed components to get your worker or reputer running. The following command will handle the initialization process. It will create all the files in the appropriate directories and generate identities for your node to be used for local development.

allocmd generate worker --name <preffered name> --topic <topic id> --env dev

Before running this command you will have to pick the topic Id you wish to generate inference for after which you can run this command with the topic Id. The command will auto-create some files, the most important of which is the dev-docker-compose.yamlfile which is an already complete docker-compose that you can run immediately to see your worker/reputer and head nodes running perfectly on your local machine. You can edit the files as you wish. for instance the main.py is meant for you to call your inference server, hence you will have to edit the sample code with actual URLs and logic as you prefer.

When you run the docker-compose (docker-compose -f dev-docker-compose.yaml up --build), maybe after you have written and tested your logic in main.py, you then should be seeing the logs from the nodes, and you should be able to make a request to your head node and see it get a response from the worker/reputer node. Note that in production, you won't be the one to make the inference request, as the Allora chain will do this at the cadence provided by the topic creator.

You can test your node by running the following curl command:

curl --location 'http://localhost:6000/api/v1/functions/execute' --header 'Accept: application/json, text/plain, */*' --header 'Content-Type: application/json;charset=UTF-8' --data '{
    "function_id": "bafybeigpiwl3o73zvvl6dxdqu7zqcub5mhg65jiky2xqb4rdhfmikswzqm",
    "method": "allora-inference-function.wasm",
    "parameters": null,
    "topic": "<TOPIC_ID>",
    "config": {
        "env_vars": [
            {                              
                "name": "BLS_REQUEST_PATH",
                "value": "/api"
            },
            {                              
                "name": "ALLORA_ARG_PARAMS",
                "value": "<argument>"
            }
        ],
        "number_of_nodes": -1,
        "timeout" : 2
    }
}' | jq

The <TOPIC_ID> needs to be an existing topic on the chain. The <argument> is what the topic is expecting to receive to perform the inference (as an indication to test, you can use the DefaultArg value from the topic on-chain, e.g. for ETH prediction topic, it should be "ETH").

Initialize the worker/reputer for production

Your worker/reputer node is now ready to be deployed, the main.py has been modified, all env variables passed, and the worker/reputer node is running locally and you are now ready to deploy your worker/reputer to run in the production environment. The following command will handle the generation of the prod-docker-compose.yaml file which contains all the keys and parameters needed for your worker/reputer to function perfectly in production.

allocmd generate worker --env prod

By running this command, prod-docker-compose.yaml will be generated with appropriate keys and parameters. You can now run the docker-compose file or deploy the whole codebase in your preferred cloud instance. At this stage, your worker should be responding to inference request from the Allora Chain.

Initialize validator production

allocmd generate validator --name <validator-name> --network <edgenet>

The above command can generate validator files and you can then use docker-compose to deploy

Fund account address

allocmd fund <address> 

The above command takes address and fund the account with Allora Faucet

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allocmd-2.0.5.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

allocmd-2.0.5-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file allocmd-2.0.5.tar.gz.

File metadata

  • Download URL: allocmd-2.0.5.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for allocmd-2.0.5.tar.gz
Algorithm Hash digest
SHA256 42a193006afa60e4cfcdb1c2f9b2aabc8d59c96c83249266e3abb5e3d9c98c7b
MD5 6d5fc7dfc6fc80e134b0d33c6b4d61cf
BLAKE2b-256 224a015e0f94361a5a940ebd98c4393dbaffa2324f41a141f7408235269afb6d

See more details on using hashes here.

File details

Details for the file allocmd-2.0.5-py3-none-any.whl.

File metadata

  • Download URL: allocmd-2.0.5-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for allocmd-2.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f7c95cffe9a003235ce948bef44cc0021e128dac1c4982643e57ba32563f05ac
MD5 f8f267806db231f8cd477b70bf840680
BLAKE2b-256 8edbb68a337c2f32d8c11cb7365eea48db0d543b4f1782bbf61937605f98f6ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page