chore: set testnet codex spr records from url

This commit is contained in:
Slava 2025-08-26 19:41:56 +03:00
parent 06fd29d54a
commit 6d1397c8c4
No known key found for this signature in database
GPG Key ID: 351E7AA9BD0DFEB8

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# Environment variables from files # Environment variables from files in form of foo=bar
# If set to file path, read the file and export the variables # If set to file path, read the file and export the variables
# If set to directory path, read all files in the directory and export the variables # If set to directory path, read all files in the directory and export the variables
if [[ -n "${ENV_PATH}" ]]; then if [[ -n "${ENV_PATH}" ]]; then
@ -9,11 +9,11 @@ if [[ -n "${ENV_PATH}" ]]; then
set +a set +a
fi fi
# Parameters # Parameters
if [[ -z "${CODEX_NAT}" ]]; then if [[ -z "${CODEX_NAT}" ]]; then
if [[ "${NAT_IP_AUTO}" == "true" && -z "${NAT_PUBLIC_IP_AUTO}" ]]; then if [[ "${NAT_IP_AUTO}" == "true" && -z "${NAT_PUBLIC_IP_AUTO}" ]]; then
export CODEX_NAT="extip:$(hostname --ip-address)" export CODEX_NAT="extip:$(hostname --ip-address)"
echo "Private: CODEX_NAT=${CODEX_NAT}"
elif [[ -n "${NAT_PUBLIC_IP_AUTO}" ]]; then elif [[ -n "${NAT_PUBLIC_IP_AUTO}" ]]; then
# Run for 60 seconds if fail # Run for 60 seconds if fail
WAIT=120 WAIT=120
@ -24,7 +24,6 @@ if [[ -z "${CODEX_NAT}" ]]; then
# Check if exit code is 0 and returned value is not empty # Check if exit code is 0 and returned value is not empty
if [[ $? -eq 0 && -n "${IP}" ]]; then if [[ $? -eq 0 && -n "${IP}" ]]; then
export CODEX_NAT="extip:${IP}" export CODEX_NAT="extip:${IP}"
echo "Public: CODEX_NAT=${CODEX_NAT}"
break break
else else
# Sleep and check again # Sleep and check again
@ -46,16 +45,13 @@ fi
# If marketplace is enabled from the testing environment, # If marketplace is enabled from the testing environment,
# The file has to be written before Codex starts. # The file has to be written before Codex starts.
for key in PRIV_KEY ETH_PRIVATE_KEY; do
keyfile="private.key" keyfile="private.key"
if [[ -n "${!key}" ]]; then if [[ -n "${ETH_PRIVATE_KEY}" ]]; then
[[ "${key}" == "PRIV_KEY" ]] && echo "PRIV_KEY variable is deprecated and will be removed in the next releases, please use ETH_PRIVATE_KEY instead!" echo "${ETH_PRIVATE_KEY}" > "${keyfile}"
echo "${!key}" > "${keyfile}"
chmod 600 "${keyfile}" chmod 600 "${keyfile}"
export CODEX_ETH_PRIVATE_KEY="${keyfile}" export CODEX_ETH_PRIVATE_KEY="${keyfile}"
echo "Private key set" echo "Private key set"
fi fi
done
# Set arguments # Set arguments
if [[ "${MODE}" == "codex-node-with-marketplace" ]]; then if [[ "${MODE}" == "codex-node-with-marketplace" ]]; then
@ -67,21 +63,33 @@ else
unset CODEX_ETH_PROVIDER unset CODEX_ETH_PROVIDER
fi fi
# Set network parameters # Bootstrap node from URL
if [[ "${NETWORK}" == "testnet" ]]; then BOOTSTRAP_NODE_FROM_URL="${BOOTSTRAP_NODE_FROM_URL:-https://spr.codex.storage/${NETWORK}}"
bootstrap_nodes=(
--bootstrap-node=spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P if [[ -n "${BOOTSTRAP_NODE_FROM_URL}" ]]; then
--bootstrap-node=spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3 WAIT=${BOOTSTRAP_NODE_FROM_URL_WAIT:-300}
--bootstrap-node=spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA SECONDS=0
--bootstrap-node=spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0 SLEEP=1
--bootstrap-node=spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg # Run and retry if fail
--bootstrap-node=spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA while (( SECONDS < WAIT )); do
--bootstrap-node=spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9 SPR=($(curl -s -f -m 5 "${BOOTSTRAP_NODE_FROM_URL}"))
) # Check if exit code is 0 and returned value is not empty
if [[ $? -eq 0 && -n "${SPR}" ]]; then
for node in "${SPR[@]}"; do
bootstrap+="--bootstrap-node=$node "
done
set -- "$@" ${bootstrap}
break
else
# Sleep and check again
echo "Can't get SPR from ${BOOTSTRAP_NODE_FROM_URL} - Retry in $SLEEP seconds / $((WAIT - SECONDS))"
sleep $SLEEP
fi
done
fi fi
# Update arguments # Update arguments
set -- "$@" ${bootstrap_nodes[@]} ${EXTRA_OPTS} set -- "$@" ${EXTRA_OPTS}
# Check if the endpoint is synced # Check if the endpoint is synced
if [[ -n "${CODEX_ETH_PROVIDER}" ]]; then if [[ -n "${CODEX_ETH_PROVIDER}" ]]; then
@ -143,11 +151,11 @@ if [[ "$@" == *"prover"* ]]; then
fi fi
# Show # Show
echo "Codex parameters:" echo -e "\nCodex run parameters:"
vars=$(env | grep CODEX_) vars=$(env | grep CODEX_)
echo -e "${vars//CODEX_/ - CODEX_}" echo -e "${vars//CODEX_/ - CODEX_}"
echo -e " $@" echo -e " - $@\n"
# Run # Run
echo "Run Codex node..." echo "Run Codex node"
exec "$@" exec "$@"