Add init scripts

This commit is contained in:
conache 2024-08-08 14:12:31 +03:00
parent 2f97575d52
commit 9db05c7140
No known key found for this signature in database
6 changed files with 79 additions and 15 deletions

13
.gitignore vendored
View File

@ -2,11 +2,10 @@
__pycache__ __pycache__
*.pyc *.pyc
logs/* logs/*
.env
inference-data
worker-data
head-data
offchain-node-data
.env.* .allorad
!.env.*.example .cache
inference-data
config.json
env

View File

@ -1,8 +1,7 @@
ALLORA_OFFCHAIN_NODE_CONFIG_JSON='{ {
"wallet": { "wallet": {
"addressKeyName": "test", "addressKeyName": "test",
"addressRestoreMnemonic": "", "addressRestoreMnemonic": "",
"addressAccountPassphrase": "",
"alloraHomeDir": "", "alloraHomeDir": "",
"gas": "1000000", "gas": "1000000",
"gasAdjustment": 1.0, "gasAdjustment": 1.0,
@ -17,9 +16,9 @@ ALLORA_OFFCHAIN_NODE_CONFIG_JSON='{
"inferenceEntrypointName": "api-worker-reputer", "inferenceEntrypointName": "api-worker-reputer",
"loopSeconds": 5, "loopSeconds": 5,
"parameters": { "parameters": {
"InferenceEndpoint": "http://inference:8000/inference/{Token}", "InferenceEndpoint": "http://source:8000/inference/{Token}",
"Token": "ETH" "Token": "ETH"
} }
} }
] ]
}' }

View File

@ -6,7 +6,7 @@ services:
dockerfile: Dockerfile_inference dockerfile: Dockerfile_inference
command: python -u /app/app.py command: python -u /app/app.py
ports: ports:
- "8000:8000" - "8002:8000"
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/inference/ETH"] test: ["CMD", "curl", "-f", "http://localhost:8000/inference/ETH"]
interval: 10s interval: 10s
@ -34,7 +34,7 @@ services:
condition: service_healthy condition: service_healthy
node: node:
container_name: offchain_node_test container_name: offchain_node
image: allora-offchain-node:latest image: allora-offchain-node:latest
volumes: volumes:
- ./offchain-node-data:/data - ./offchain-node-data:/data
@ -42,7 +42,7 @@ services:
inference: inference:
condition: service_healthy condition: service_healthy
env_file: env_file:
- ./env.offchain-node - ./offchain-node-data/env_file
networks: networks:
eth-model-local: eth-model-local:
@ -53,4 +53,4 @@ networks:
volumes: volumes:
inference-data: inference-data:
worker-data: offchain-node-data:

29
init.offchain-node Executable file
View File

@ -0,0 +1,29 @@
#!/bin/bash
set -e
if [ ! -f config.json ]; then
echo "Error: config.json file not found, please provide one"
exit 1
fi
nodeName=$(jq -r '.wallet.addressKeyName' config.json)
if [ -z "$nodeName" ]; then
echo "No name was provided for the node, please provide value for wallet.addressKeyName in the config.json"
exit 1
fi
if [ ! -f ./offchain-node-data/env_file ]; then
echo "ENV_LOADED=false" > ./offchain-node-data/env_file
fi
ENV_LOADED=$(grep '^ENV_LOADED=' ./offchain-node-data/env_file | cut -d '=' -f 2)
if [ "$ENV_LOADED" = "false" ]; then
json_content=$(cat ./config.json)
stringified_json=$(echo "$json_content" | jq -c .)
docker run -it --entrypoint=bash -v $(pwd)/offchain-node-data:/data -e NAME="${nodeName}" -e ALLORA_OFFCHAIN_NODE_CONFIG_JSON="${stringified_json}" alloranetwork/allora-chain:latest -c "bash /data/scripts/init.sh"
echo "config.json saved to ./offchain-node-data/env_file"
else
echo "config.json is already loaded, skipping the operation. You can set ENV_LOADED variable to false in ./offchain-node-data/env_file to reload the config.json"
fi

View File

@ -0,0 +1,4 @@
ALLORA_OFFCHAIN_NODE_CONFIG_JSON='{"wallet":{"addressKeyName":"basic-coin-prediction-offchain-node","addressRestoreMnemonic":"rich note fetch lava bless snake delay theme era anger ritual sea pluck neck hazard dish talk ranch trophy clap fancy human divide gun","addressAccountPassphrase":"secret","alloraHomeDir":"","gas":"1000000","gasAdjustment":1,"nodeRpc":"https://allora-rpc.devnet.behindthecurtain.xyz","maxRetries":1,"minDelay":1,"maxDelay":2,"submitTx":false},"worker":[{"topicId":1,"inferenceEntrypointName":"api-worker-reputer","loopSeconds":5,"parameters":{"InferenceEndpoint":"http://inference:8000/inference/{Token}","Token":"ETH"}}]}'
ALLORA_OFFCHAIN_ACCOUNT_ADDRESS=allo14wkkdeg93mdc0sd770z9p4mpjz7w9mysz328um
NAME=basic-coin-prediction-offchain-node
ENV_LOADED=true

View File

@ -0,0 +1,33 @@
#!/bin/bash
set -e
if allorad keys --home=/data/.allorad --keyring-backend test show $NAME > /dev/null 2>&1 ; then
echo "allora account: $NAME already imported"
else
echo "creating allora account: $NAME"
output=$(allorad keys add $NAME --home=/data/.allorad --keyring-backend test 2>&1)
address=$(echo "$output" | grep 'address:' | sed 's/.*address: //')
mnemonic=$(echo "$output" | tail -n 1)
# Parse and update the JSON string
updated_json=$(echo "$ALLORA_OFFCHAIN_NODE_CONFIG_JSON" | jq --arg name "$NAME" --arg mnemonic "$mnemonic" '
.wallet.addressKeyName = $name |
.wallet.addressRestoreMnemonic = $mnemonic
')
stringified_json=$(echo "$updated_json" | jq -c .)
echo "ALLORA_OFFCHAIN_NODE_CONFIG_JSON='$stringified_json'" > /data/env_file
echo ALLORA_OFFCHAIN_ACCOUNT_ADDRESS=$address >> /data/env_file
echo "NAME=$NAME" >> /data/env_file
echo "Updated ALLORA_OFFCHAIN_NODE_CONFIG_JSON saved to /data/env_file"
fi
if grep -q "ENV_LOADED=false" /data/env_file; then
sed -i 's/ENV_LOADED=false/ENV_LOADED=true/' /data/env_file
else
echo "ENV_LOADED=true" >> /data/env_file
fi