mirror of
https://github.com/logos-storage/logos-storage-testnet-starter.git
synced 2026-02-18 12:23:09 +00:00
Set auto IP (#30)
* Add Codex data-dir and ethereum keypair to the .gitignore * Add get_ip_public and unify all functions syntax * Set Public IP and Bootstrap based on the NETWORK variable, defaults to testnet
This commit is contained in:
parent
6296b07bab
commit
9f7ac4a17c
5
.gitignore
vendored
5
.gitignore
vendored
@ -4,5 +4,10 @@
|
||||
|
||||
# Datadir
|
||||
*-data
|
||||
data_client
|
||||
|
||||
# Ethereum keypair
|
||||
eth.address
|
||||
eth.key
|
||||
|
||||
.DS_Store
|
||||
|
||||
@ -4,23 +4,30 @@ set -e
|
||||
source ./utils.sh
|
||||
|
||||
if [ -z "$LOCALIP" ]; then
|
||||
LOCALIP=$(get_ip)
|
||||
if [ "${NETWORK}" == "workshop" ]; then
|
||||
LOCALIP=$(get_ip)
|
||||
else
|
||||
LOCALIP=$(get_ip_public)
|
||||
fi
|
||||
fi
|
||||
echo "LOCAL IP: ${LOCALIP}"
|
||||
|
||||
if [ -z "$BOOTSPR" ]; then
|
||||
# Local network SPR (Workshop NUC):
|
||||
# BOOTSPR="spr:CiUIAhIhAnBsex_7L5xKJQpmAuOtubQEtKsgCOXE2vaJoTJXrprbEgIDARo8CicAJQgCEiECcGx7H_svnEolCmYC4625tAS0qyAI5cTa9omhMleumtsQnbm0tAYaCwoJBMCoWP2RAh-aKkcwRQIhANjwAV9DGFe4zcMUEHjuTsGWAPc7WB7uoSS86HATwouqAiA8dFhsALCSLsQbSOPF1j7NF643oEmPEJAwU9dIwjM6TA"
|
||||
# Cloud-Node-01 SPR:
|
||||
BOOTSPR="spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P"
|
||||
# All Codex Testnet Cloud Bootstrap Node SPRs:
|
||||
# BOOTSPR="spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P"
|
||||
# BOOTSPR="spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3"
|
||||
# BOOTSPR="spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA"
|
||||
# BOOTSPR="spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0"
|
||||
# BOOTSPR="spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg"
|
||||
# BOOTSPR="spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA"
|
||||
# BOOTSPR="spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9"
|
||||
if [ "${NETWORK}" == "workshop" ]; then
|
||||
# Local network SPR (Workshop NUC):
|
||||
BOOTSPR="spr:CiUIAhIhAnBsex_7L5xKJQpmAuOtubQEtKsgCOXE2vaJoTJXrprbEgIDARo8CicAJQgCEiECcGx7H_svnEolCmYC4625tAS0qyAI5cTa9omhMleumtsQnbm0tAYaCwoJBMCoWP2RAh-aKkcwRQIhANjwAV9DGFe4zcMUEHjuTsGWAPc7WB7uoSS86HATwouqAiA8dFhsALCSLsQbSOPF1j7NF643oEmPEJAwU9dIwjM6TA"
|
||||
else
|
||||
# Cloud-Node-01 SPR:
|
||||
BOOTSPR="spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P"
|
||||
# All Codex Testnet Cloud Bootstrap Node SPRs:
|
||||
# BOOTSPR="spr:CiUIAhIhAiJvIcA_ZwPZ9ugVKDbmqwhJZaig5zKyLiuaicRcCGqLEgIDARo8CicAJQgCEiECIm8hwD9nA9n26BUoNuarCEllqKDnMrIuK5qJxFwIaosQ3d6esAYaCwoJBJ_f8zKRAnU6KkYwRAIgM0MvWNJL296kJ9gWvfatfmVvT-A7O2s8Mxp8l9c8EW0CIC-h-H-jBVSgFjg3Eny2u33qF7BDnWFzo7fGfZ7_qc9P"
|
||||
# BOOTSPR="spr:CiUIAhIhAyUvcPkKoGE7-gh84RmKIPHJPdsX5Ugm_IHVJgF-Mmu_EgIDARo8CicAJQgCEiEDJS9w-QqgYTv6CHzhGYog8ck92xflSCb8gdUmAX4ya78QoemesAYaCwoJBES39Q2RAnVOKkYwRAIgLi3rouyaZFS_Uilx8k99ySdQCP1tsmLR21tDb9p8LcgCIG30o5YnEooQ1n6tgm9fCT7s53k6XlxyeSkD_uIO9mb3"
|
||||
# BOOTSPR="spr:CiUIAhIhA6_j28xa--PvvOUxH10wKEm9feXEKJIK3Z9JQ5xXgSD9EgIDARo8CicAJQgCEiEDr-PbzFr74--85TEfXTAoSb195cQokgrdn0lDnFeBIP0QzOGesAYaCwoJBK6Kf1-RAnVEKkcwRQIhAPUH5nQrqG4OW86JQWphdSdnPA98ErQ0hL9OZH9a4e5kAiBBZmUl9KnhSOiDgU3_hvjXrXZXoMxhGuZ92_rk30sNDA"
|
||||
# BOOTSPR="spr:CiUIAhIhA7E4DEMer8nUOIUSaNPA4z6x0n9Xaknd28Cfw9S2-cCeEgIDARo8CicAJQgCEiEDsTgMQx6vydQ4hRJo08DjPrHSf1dqSd3bwJ_D1Lb5wJ4Qt_CesAYaCwoJBEDhWZORAnVYKkYwRAIgFNzhnftocLlVHJl1onuhbSUM7MysXPV6dawHAA0DZNsCIDRVu9gnPTH5UkcRXLtt7MLHCo4-DL-RCMyTcMxYBXL0"
|
||||
# BOOTSPR="spr:CiUIAhIhAzZn3JmJab46BNjadVnLNQKbhnN3eYxwqpteKYY32SbOEgIDARo8CicAJQgCEiEDNmfcmYlpvjoE2Np1Wcs1ApuGc3d5jHCqm14phjfZJs4QrvWesAYaCwoJBKpA-TaRAnViKkcwRQIhANuMmZDD2c25xzTbKSirEpkZYoxbq-FU_lpI0K0e4mIVAiBfQX4yR47h1LCnHznXgDs6xx5DLO5q3lUcicqUeaqGeg"
|
||||
# BOOTSPR="spr:CiUIAhIhAgybmRwboqDdUJjeZrzh43sn5mp8jt6ENIb08tLn4x01EgIDARo8CicAJQgCEiECDJuZHBuioN1QmN5mvOHjeyfmanyO3oQ0hvTy0ufjHTUQh4ifsAYaCwoJBI_0zSiRAnVsKkcwRQIhAJCb_z0E3RsnQrEePdJzMSQrmn_ooHv6mbw1DOh5IbVNAiBbBJrWR8eBV6ftzMd6ofa5khNA2h88OBhMqHCIzSjCeA"
|
||||
# BOOTSPR="spr:CiUIAhIhAntGLadpfuBCD9XXfiN_43-V3L5VWgFCXxg4a8uhDdnYEgIDARo8CicAJQgCEiECe0Ytp2l-4EIP1dd-I3_jf5XcvlVaAUJfGDhry6EN2dgQsIufsAYaCwoJBNEmoCiRAnV2KkYwRAIgXO3bzd5VF8jLZG8r7dcLJ_FnQBYp1BcxrOvovEa40acCIDhQ14eJRoPwJ6GKgqOkXdaFAsoszl-HIRzYcXKeb7D9"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f eth.key ]; then
|
||||
|
||||
@ -1,74 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Variables
|
||||
NETWORK="${NETWORK:-testnet}"
|
||||
|
||||
# Function to detect OS
|
||||
get_os() {
|
||||
case "$(uname -s)" in
|
||||
Linux*) echo "linux";;
|
||||
Darwin*) echo "darwin";;
|
||||
CYGWIN*|MINGW*|MSYS*|MINGW*) echo "windows";;
|
||||
*) echo "unknown";;
|
||||
esac
|
||||
case "$(uname -s)" in
|
||||
Linux*) echo "linux" ;;
|
||||
Darwin*) echo "darwin" ;;
|
||||
CYGWIN*|MINGW*|MSYS*|MINGW*) echo "windows" ;;
|
||||
*) echo "unknown" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Function to detect CPU architecture
|
||||
get_arch() {
|
||||
case "$(uname -m)" in
|
||||
x86_64|amd64) echo "amd64";;
|
||||
arm64|aarch64) echo "arm64";;
|
||||
*) echo "Unsupported architecture: $(uname -m)"; exit 1;;
|
||||
esac
|
||||
case "$(uname -m)" in
|
||||
x86_64|amd64) echo "amd64" ;;
|
||||
arm64|aarch64) echo "arm64" ;;
|
||||
*) echo "Unsupported architecture: $(uname -m)"; exit 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Function to change file permissions using native OS commands
|
||||
change_permissions() {
|
||||
local file_path="$1"
|
||||
local permissions="$2"
|
||||
local file_path="$1"
|
||||
local permissions="$2"
|
||||
|
||||
case "$OS" in
|
||||
linux|darwin)
|
||||
# Use chmod for Linux and macOS
|
||||
chmod $permissions "$file_path"
|
||||
;;
|
||||
windows)
|
||||
# For Windows, we'll skip changing permissions
|
||||
echo "Skipping permission change on Windows for $file_path"
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported OS for changing permissions"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
case "$OS" in
|
||||
linux|darwin) chmod $permissions "$file_path" ;;
|
||||
windows) echo "Skipping permission change on Windows for $file_path" ;;
|
||||
*) echo "Unsupported OS for changing permissions"; return 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Function to get IP on Linux and macOS
|
||||
get_ip_unix() {
|
||||
if command -v ip >/dev/null 2>&1; then
|
||||
ip addr show | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d "/" -f 1 | head -n 1
|
||||
elif command -v ifconfig >/dev/null 2>&1; then
|
||||
ifconfig | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1
|
||||
else
|
||||
echo "Unable to find IP address. Neither 'ip' nor 'ifconfig' command found."
|
||||
exit 1
|
||||
fi
|
||||
if command -v ip >/dev/null 2>&1; then
|
||||
ip addr show | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d "/" -f 1 | head -n 1
|
||||
elif command -v ifconfig >/dev/null 2>&1; then
|
||||
ifconfig | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1
|
||||
else
|
||||
echo "Unable to find IP address. Neither 'ip' nor 'ifconfig' command found."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to get IP on Windows
|
||||
get_ip_windows() {
|
||||
ipconfig | grep -i "IPv4 Address" | awk '{print $NF}' | head -n 1
|
||||
ipconfig | grep -i "IPv4 Address" | awk '{print $NF}' | head -n 1
|
||||
}
|
||||
|
||||
# Function to get Public IP using ip lookup service
|
||||
get_ip_public() {
|
||||
curl -m 5 -s https://ip.codex.storage
|
||||
}
|
||||
|
||||
# Detect the operating system and call the appropriate function
|
||||
get_ip() {
|
||||
case "$(uname -s)" in
|
||||
Linux*|Darwin*)
|
||||
echo $(get_ip_unix)
|
||||
;;
|
||||
CYGWIN*|MINGW32*|MSYS*|MINGW*)
|
||||
echo $(get_ip_windows)
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported operating system"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Linux*|Darwin*) echo $(get_ip_unix) ;;
|
||||
CYGWIN*|MINGW32*|MSYS*|MINGW*) echo $(get_ip_windows) ;;
|
||||
*) echo "Unsupported operating system"; exit 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user