Add Testnet scripts (#24)

* Make scripts more flexible, robust and wrappable

* Add Codex Testnet scripts
This commit is contained in:
Slava 2024-11-18 22:03:34 +02:00 committed by GitHub
parent 3b2b7a00e4
commit ac7067416c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 130 additions and 37 deletions

View File

@ -11,10 +11,11 @@ MODE=${MODE:-remote}
PROGRESS_MARK="\033[0;36m\u2022\033[0m"
PASS_MARK="\033[0;32m\u2714\033[0m"
FAIL_MARK="\033[0;31m\u2718\033[0m"
SCRIPT_URL="${SCRIPT_URL:-https://get.codex.storage/generate.sh}"
# Help
if [[ $1 == *"h"* ]] ; then
COMMAND="curl -s https://get.codex.storage/generate.sh"
if [[ $1 == *"help"* ]] ; then
COMMAND="curl -s ${SCRIPT_URL}"
echo -e "
\e[33mGenerate private key for Ethereum wallet\e[0m\n
\e[33mUsage:\e[0m

View File

@ -14,7 +14,7 @@
<body>
<h3>
Get Codex - Linux, macOS and Windows (msys2)
Get Codex - Linux, macOS and Windows (msys2)
</h3>
<p>

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -e
# Install Codex on Linux, macOS, and Windows(msys2)
# Install Codex on Linux, macOS, and Windows (msys2)
# Variables
VERSION=${VERSION:-latest}
@ -19,10 +19,11 @@ TEMP_DIR="${TEMP_DIR:-.}"
PROGRESS_MARK="\033[0;36m\u2022\033[0m"
PASS_MARK="\033[0;32m\u2714\033[0m"
FAIL_MARK="\033[0;31m\u2718\033[0m"
SCRIPT_URL="${SCRIPT_URL:-https://get.codex.storage/install.sh}"
# Help
if [[ $1 == *"h"* ]] ; then
COMMAND="curl -s https://get.codex.storage/install.sh"
if [[ $1 == *"help"* ]] ; then
COMMAND="curl -s ${SCRIPT_URL}"
echo -e "
\e[33mInstall Codex\e[0m\n
\e[33mUsage:\e[0m
@ -193,6 +194,7 @@ for BINARY in "${BINARIES[@]}"; do
# Install
message="Installing ${BINARY_NAME} to ${INSTALL_PATH}"
show_progress "${message}"
[[ -d "${INSTALL_PATH}" ]] && show_fail "${message}" "Installation path ${INSTALL_PATH} is a directory"
if ! (mkdir -p "${INSTALL_DIR}" && install -m 755 "${TEMP_DIR}/${BINARY_NAME}" "${INSTALL_PATH}") 2> /dev/null; then
$(sudo -n true 2>/dev/null) || TRIM=2
sudo mkdir -p "${INSTALL_DIR}" && sudo install -m 755 "${TEMP_DIR}/${BINARY_NAME}" "${INSTALL_PATH}"
@ -240,7 +242,6 @@ if [[ ${#dependencies[@]} -ne 0 ]]; then
fi
# Path
[[ "${INSTALL_DIR}" == "." ]] && INSTALL_DIR=$(pwd)
if [[ $PATH != *"${INSTALL_DIR}"* ]]; then
if [[ "${INSTALL_DIR}" != "." && "${PATH}" != *"${INSTALL_DIR}"* ]]; then
echo -e " Note: Please add install directory '"${INSTALL_DIR}"' to your PATH\n"
fi

46
run.sh
View File

@ -9,7 +9,8 @@ CIRDL_BINARY="${CIRDL_BINARY:-cirdl}"
PROGRESS_MARK="\033[0;36m\u2022\033[0m"
PASS_MARK="\033[0;32m\u2714\033[0m"
FAIL_MARK="\033[0;31m\u2718\033[0m"
NETWORK="${NETWORK:-testnet}"
SCRIPT_URL="${SCRIPT_URL:-https://get.codex.storage/run.sh}"
SCRIPT_BASE_URL=$(sed 's/\/[a-z.]\+$//'<<<"${SCRIPT_URL}")
# Disable argument conversion to Windows path
export MSYS_NO_PATHCONV=1
@ -25,18 +26,16 @@ export CODEX_BLOCK_TTL="${CODEX_BLOCK_TTL:-30d}"
export CODEX_LOG_LEVEL="${CODEX_LOG_LEVEL:-info}"
export CODEX_ETH_PRIVATE_KEY="${CODEX_ETH_PRIVATE_KEY:-eth.key}"
export CODEX_ETH_PROVIDER="${CODEX_ETH_PROVIDER:-https://rpc.testnet.codex.storage}"
# export CODEX_MARKETPLACE_ADDRESS="${CODEX_MARKETPLACE_ADDRESS:-}"
[[ -n "${CODEX_MARKETPLACE_ADDRESS}" ]] && export CODEX_MARKETPLACE_ADDRESS="${CODEX_MARKETPLACE_ADDRESS}"
# Help
if [[ $1 == *"help"* ]] ; then
COMMAND="curl -s https://get.codex.storage/run.sh"
COMMAND="curl -s ${SCRIPT_URL}"
echo -e "
\e[33mRun Codex\e[0m\n
\e[33mUsage:\e[0m
${COMMAND} | bash
${COMMAND} | CODEX_NAT=1.2.3.4 bash
${COMMAND} | CODEX_LOG_LEVEL=debug bash
${COMMAND} | CODEX_DATA_DIR=./data CODEX_NAT=1.2.3.4 bash
${COMMAND} | CODEX_DATA_DIR=./data CODEX_NAT=1.2.3.4 bash -s -- --log-level=debug
${COMMAND} | bash -s help
@ -86,7 +85,7 @@ show_start "Running Codex..."
message="Checking if Codex is installed"
show_progress "${message}"
if ! command -v ${CODEX_BINARY} &> /dev/null; then
show_fail "Checking if Codex is installed" "Please install Codex first by running 'curl -s https://get.codex.storage/install.sh | bash'"
show_fail "Checking if Codex is installed" "Please install Codex first by running 'curl -s ${SCRIPT_BASE_URL}/install.sh | bash'"
fi
show_pass "${message}"
@ -94,7 +93,7 @@ show_pass "${message}"
message="Checking private key"
show_progress "${message}"
if [[ ! -f ${CODEX_ETH_PRIVATE_KEY} ]]; then
show_fail "Checking private key" "Please generate private key by running 'curl -s https://get.codex.storage/generate.sh | bash'
show_fail "Checking private key" "Please generate private key by running 'curl -s ${SCRIPT_BASE_URL}/generate.sh | bash'
or set the CODEX_ETH_PRIVATE_KEY environment variable to the path of the Ethereum private key file."
fi
show_pass "${message}"
@ -132,28 +131,17 @@ fi
# Network
message="Defining network specific settings"
show_progress "${message}" && show_pass "${message}"
case ${NETWORK} in
testnet)
bootstrap_nodes=(
--bootstrap-node=spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P
--bootstrap-node=spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3
--bootstrap-node=spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA
--bootstrap-node=spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0
--bootstrap-node=spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg
--bootstrap-node=spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA
--bootstrap-node=spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9
)
export CODEX_ETH_PROVIDER="https://rpc.testnet.codex.storage"
;;
workshop)
bootstrap_nodes=(
--bootstrap-node=spr:CiUIAhIhAnBsex_7L5xKJQpmAuOtubQEtKsgCOXE2vaJoTJXrprbEgIDARo8CicAJQgCEiECcGx7H_svnEolCmYC4625tAS0qyAI5cTa9omhMleumtsQnbm0tAYaCwoJBMCoWP2RAh-aKkcwRQIhANjwAV9DGFe4zcMUEHjuTsGWAPc7WB7uoSS86HATwouqAiA8dFhsALCSLsQbSOPF1j7NF643oEmPEJAwU9dIwjM6TA \
)
export CODEX_ETH_PROVIDER="https://rpc.testnet.codex.storage"
;;
*) show_fail "Unknown network" "Please set the NETWORK environment variable to 'testnet'."
;;
esac
if [[ "$@" != *"--bootstrap-node"* ]]; then
bootstrap_nodes=(
--bootstrap-node=spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P
--bootstrap-node=spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3
--bootstrap-node=spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA
--bootstrap-node=spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0
--bootstrap-node=spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg
--bootstrap-node=spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA
--bootstrap-node=spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9
)
fi
# Show Codex parameters
message="Codex parameters:"

16
testnet/generate.sh Normal file
View File

@ -0,0 +1,16 @@
# Codex Testnet - Generate
# Variables
set -a
BASE_SCRIPT="https://get.codex.storage/generate.sh"
SCRIPT_URL="https://get.codex.storage/testnet/generate.sh"
set +a
# Help
if [[ $1 == *"help"* ]] ; then
curl -s "${BASE_SCRIPT}" | bash -s -- help
exit 0
fi
# Generate
curl -s "${BASE_SCRIPT}" | bash

44
testnet/index.html Normal file
View File

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
<head>
<title>Join Codex Testnet</title>
<style>
html * {
font-size: 14px;
line-height: 1.5;
color: black;
font-family: monospace;
}
</style>
</head>
<body>
<h3>
Join Codex Testnet - Linux, macOS and Windows (msys2)
</h3>
<p>
<span style="color:grey;">
# Install Codex
</span>
<br>
curl -s https://get.codex.storage/testnet/install.sh | bash
</p>
<p>
<span style="color:grey;">
# Generate key
</span>
<br>
curl -s https://get.codex.storage/testnet/generate.sh | bash
</p>
<p>
<span style="color:grey;">
# Run Codex
</span>
<br>
curl -s https://get.codex.storage/testnet/generate.sh | bash
</p>
</body>
</html>

17
testnet/install.sh Normal file
View File

@ -0,0 +1,17 @@
# Codex Testnet - Install
# Variables
set -a
BASE_SCRIPT="https://get.codex.storage/install.sh"
SCRIPT_URL="https://get.codex.storage/testnet/install.sh"
INSTALL_DIR="${INSTALL_DIR:-.}"
set +a
# Help
if [[ $1 == *"help"* ]] ; then
curl -s "${BASE_SCRIPT}" | bash -s -- help
exit 0
fi
# Install
curl -s "${BASE_SCRIPT}" | bash

26
testnet/run.sh Normal file
View File

@ -0,0 +1,26 @@
# Codex Testnet - Run
# Variables
set -a
BASE_SCRIPT="https://get.codex.storage/run.sh"
SCRIPT_URL="https://get.codex.storage/testnet/run.sh"
CODEX_BINARY="${CODEX_BINARY:-./codex}"
bootstrap_nodes=(
--bootstrap-node=spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P
--bootstrap-node=spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3
--bootstrap-node=spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA
--bootstrap-node=spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0
--bootstrap-node=spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg
--bootstrap-node=spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA
--bootstrap-node=spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9
)
set +a
# Help
if [[ $1 == *"help"* ]] ; then
curl -s "${BASE_SCRIPT}" | bash -s -- help
exit 0
fi
# Run
curl -s "${BASE_SCRIPT}" | bash -s -- ${bootstrap_nodes[@]} $@