diff --git a/ElixirV3.sh b/ElixirV3.sh index a4fd8f0..1f8dfbd 100644 --- a/ElixirV3.sh +++ b/ElixirV3.sh @@ -3,6 +3,7 @@ # 检查是否以root用户运行脚本 if [ "$(id -u)" != "0" ]; then echo "此脚本需要以root用户权限运行。" + echo "请尝试使用 'sudo -i' 命令切换到root用户,然后再次运行此脚本。" exit 1 fi @@ -25,24 +26,65 @@ function check_and_install_docker() { fi } -# 检查并更新Docker镜像 -function check_and_update_docker_image() { - local current_version="v3.4.4" # 当前版本 - local latest_version=$(curl -s https://registry.hub.docker.com/v2/repositories/elixirprotocol/validator/tags | jq -r '.results[].name' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -n 1) # 获取最新版本 +# 节点安装功能 +function install_node() { + check_and_install_docker - if [ "$current_version" != "$latest_version" ]; then - echo "发现新版本 $latest_version,正在更新..." - docker pull elixirprotocol/validator:$latest_version - echo "Docker 镜像已更新到版本 $latest_version。" + # 提示用户输入环境变量的值 + read -p "请输入验证者节点设备的IP地址: " ip_address + read -p "请输入验证者节点的显示名称: " validator_name + read -p "请输入验证者节点的奖励收取地址: " safe_public_address + read -p "请输入签名者私钥,无需0x: " private_key - # 更新当前的容器 - echo "正在更新当前的容器..." - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c --run-once elixir + # 将环境变量保存到 validator.env 文件 + cat < validator.env +ENV=testnet-3 + +STRATEGY_EXECUTOR_IP_ADDRESS=${ip_address} +STRATEGY_EXECUTOR_DISPLAY_NAME=${validator_name} +STRATEGY_EXECUTOR_BENEFICIARY=${safe_public_address} +SIGNER_PRIVATE_KEY=${private_key} +EOF + + echo "环境变量已设置并保存到 validator.env 文件。" + + # 拉取 Docker 镜像 + docker pull elixirprotocol/validator:v3 + + # 提示用户选择平台 + read -p "您是否在Apple/ARM架构上运行?(y/n): " is_arm + + if [[ "$is_arm" == "y" ]]; then + # 在Apple/ARM架构上运行 + docker run -it -d \ + --env-file validator.env \ + --name elixir \ + --platform linux/amd64 \ + elixirprotocol/validator:v3 else - echo "当前已是最新版本 $current_version。" + # 默认运行 + docker run -it -d \ + --env-file validator.env \ + --name elixir \ + elixirprotocol/validator:v3 fi } +# 查看Docker日志功能 +function check_docker_logs() { + echo "查看Elixir Docker容器的日志..." + docker logs -f elixir +} + +# 删除Docker容器功能 +function delete_docker_container() { + echo "删除Elixir Docker容器..." + docker stop elixir + docker rm elixir + echo "Elixir Docker容器已删除。" +} + + # 创建更新检查脚本 function create_update_script() { cat << 'EOF' > /usr/local/bin/check_update.sh @@ -83,12 +125,15 @@ function main_menu() { clear echo "脚本以及教程由推特用户大赌哥 @y95277777 编写,免费开源,请勿相信收费" echo "=====================Elixir V3节点安装=========================" + echo "节点社区 Telegram 群组:https://t.me/niuwuriji" + echo "节点社区 Telegram 频道:https://t.me/niuwuriji" + echo "节点社区 Discord 社群:https://discord.gg/GbMV5EcNWF" echo "请选择要执行的操作:" echo "1. 安装Elixir V3节点" echo "2. 查看Docker日志" echo "3. 删除Elixir Docker容器" - echo "4. 启用自动更新" - read -p "请输入选项(1-4): " OPTION + echo "4. 设置自动更新检查" + read -p "请输入选项(1-3): " OPTION case $OPTION in 1) install_node ;;