#!/bin/bash # 检查是否以root用户运行脚本 if [ "$(id -u)" != "0" ]; then echo "此脚本需要以root用户权限运行。" echo "请尝试使用 'sudo -i' 命令切换到root用户,然后再次运行此脚本。" exit 1 fi # 脚本保存路径 SCRIPT_PATH="$HOME/Quili.sh" # 自动设置快捷键的功能 function check_and_set_alias() { local alias_name="quili" local profile_file="$HOME/.profile" # 检查快捷键是否已经设置 if ! grep -q "$alias_name" "$profile_file"; then echo "设置快捷键 '$alias_name' 到 $profile_file" echo "alias $alias_name='bash $SCRIPT_PATH'" >> "$profile_file" # 添加提醒用户激活快捷键的信息 echo "快捷键 '$alias_name' 已设置。请运行 'source $profile_file' 来激活快捷键,或重新登录。" else # 如果快捷键已经设置,提供一个提示信息 echo "快捷键 '$alias_name' 已经设置在 $profile_file。" echo "如果快捷键不起作用,请尝试运行 'source $profile_file' 或重新登录。" fi } # 节点安装功能 function install_node() { # 增加swap空间 sudo mkdir /swap sudo fallocate -l 24G /swap/swapfile sudo chmod 600 /swap/swapfile sudo mkswap /swap/swapfile sudo swapon /swap/swapfile echo '/swap/swapfile swap swap defaults 0 0' >> /etc/fstab # 向/etc/sysctl.conf文件追加内容 echo -e "\n# 自定义最大接收和发送缓冲区大小" >> /etc/sysctl.conf echo "net.core.rmem_max=600000000" >> /etc/sysctl.conf echo "net.core.wmem_max=600000000" >> /etc/sysctl.conf echo "配置已添加到/etc/sysctl.conf" # 重新加载sysctl配置以应用更改 sysctl -p echo "sysctl配置已重新加载" # 更新并升级Ubuntu软件包 sudo apt update && sudo apt -y upgrade # 安装wget、screen和git等组件 sudo apt install git ufw bison screen binutils gcc make bsdmainutils cpulimit gawk -y # 下载并安装gvm bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source /root/.gvm/scripts/gvm # 获取系统架构 ARCH=$(uname -m) # 安装并使用go1.4作为bootstrap gvm install go1.4 -B gvm use go1.4 export GOROOT_BOOTSTRAP=$GOROOT # 根据系统架构安装相应的Go版本 if [ "$ARCH" = "x86_64" ]; then gvm install go1.17.13 gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 gvm use go1.20.2 elif [ "$ARCH" = "aarch64" ]; then gvm install go1.17.13 -B gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 -B gvm use go1.20.2 else echo "Unsupported architecture: $ARCH" exit 1 fi git clone https://git.dadunode.com/smeb_y/ceremonyclient.git # 进入ceremonyclient/node目录 cd ceremonyclient/node git switch release-cdn # 创建一个screen会话并运行命令 screen -dmS Quili bash -c './node-1.4.21.1-linux-amd64' echo ====================================== 安装完成 请退出脚本使用screen 命令或者使用查看日志功能查询状态========================================= } # 节点安装功能 function install_node_mac() { # 安装 Homebrew 包管理器(如果尚未安装) if ! command -v brew &> /dev/null; then echo "Homebrew 未安装。正在安装 Homebrew..." /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" fi # 更新 Homebrew 并安装必要的软件包 brew update brew install wget git screen bison gcc make # 安装 gvm bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source $HOME/.gvm/scripts/gvm # 获取系统架构 ARCH=$(uname -m) # 安装并使用 go1.4 作为 bootstrap gvm install go1.4 -B gvm use go1.4 export GOROOT_BOOTSTRAP=$GOROOT # 根据系统架构安装相应的 Go 版本 if [ "$ARCH" = "x86_64" ]; then gvm install go1.17.13 gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 gvm use go1.20.2 elif [ "$ARCH" = "arm64" ] || [ "$ARCH" = "aarch64" ]; then gvm install go1.17.13 -B gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 -B gvm use go1.20.2 else echo "无法支持的版本: $ARCH" exit 1 fi # 克隆仓库 git clone https://git.dadunode.com/smeb_y/ceremonyclient.git # 进入 ceremonyclient/node 目录 cd ceremonyclient/node git switch release-cdn # 创建一个 screen 会话并运行命令 screen -dmS Quili bash -c './node-1.4.21.1-linux-arm64' echo ====================================== 安装完成 请退出脚本使用screen 命令或者使用查看日志功能查询状态 ========================================= } # 查看常规版本节点日志 function check_service_status() { screen -r Quili } # 独立启动 function run_node() { screen -dmS Quili bash -c "source /root/.gvm/scripts/gvm && gvm use go1.20.2 && cd ~/ceremonyclient/node && ./release_autorun.sh" echo "=======================已启动quilibrium 挖矿 请退出脚本使用screen 命令或者使用查看日志功能查询状态=========================================" } function add_snapshots() { apt install unzip -y rm -r $HOME/ceremonyclient/node/.config/store && wget -qO- https://snapshots.cherryservers.com/quilibrium/store.zip > /tmp/store.zip && unzip -j -o /tmp/store.zip -d $HOME/ceremonyclient/node/.config/store && rm /tmp/store.zip screen -dmS Quili bash -c 'source /root/.gvm/scripts/gvm && gvm use go1.20.2 && cd ~/ceremonyclient/node && ./release_autorun.sh' } function backup_set() { mkdir -p ~/backup cat ~/ceremonyclient/node/.config/config.yml > ~/backup/config.txt cat ~/ceremonyclient/node/.config/keys.yml > ~/backup/keys.txt echo "=======================备份完成,请执行cd ~/backup 查看备份文件=========================================" } function check_balance() { cd ~/ceremonyclient/node version="1.4.21.1" binary="node-$version" if [[ "$OSTYPE" == "linux-gnu"* ]]; then if [[ $(uname -m) == "aarch64"* ]]; then binary="$binary-linux-arm64" else binary="$binary-linux-amd64" fi elif [[ "$OSTYPE" == "darwin"* ]]; then binary="$binary-darwin-arm64" else echo "unsupported OS for releases, please build from source" exit 1 fi ./$binary --node-info } function unlock_performance() { cd ~/ceremonyclient/node echo "请选择要切换的版本:" echo "1. 限制CPU50%性能版本" echo "2. CPU性能拉满版本" read -p "请输入选项(1或2): " version_choice if [ "$version_choice" -eq 1 ]; then git switch release-cdn elif [ "$version_choice" -eq 2 ]; then git switch release-non-datacenter else echo "无效的选项,退出脚本。" exit 1 fi # 赋予执行权限 chmod +x release_autorun.sh # 创建一个screen会话并运行命令 screen -dmS Quili bash -c './release_autorun.sh' echo "=======================已解锁CPU性能限制并启动quilibrium 挖矿请退出脚本使用screen 命令或者使用查看日志功能查询状态=========================================" } # 升级节点版本 function update_node() { cd ~/ceremonyclient/node git remote set-url origin https://source.quilibrium.com/quilibrium/ceremonyclient.git git pull git switch release-cdn echo "节点已升级。请运行脚本独立启动挖矿功能启动节点。" } function update_node_contabo() { sudo sh -c 'echo "nameserver 8.8.8.8\nnameserver 8.8.4.4" > /etc/resolv.conf' cd ~/ceremonyclient/node git remote set-url origin https://source.quilibrium.com/quilibrium/ceremonyclient.git git pull git switch release-cdn echo "节点已升级。请运行脚本独立启动挖矿功能启动节点。" } # 更新本脚本 function update_script() { SCRIPT_URL="https://raw.githubusercontent.com/a3165458/Quilibrium/main/Quili.sh" curl -o $SCRIPT_PATH $SCRIPT_URL chmod +x $SCRIPT_PATH echo "脚本已更新。请退出脚本后,执行bash Quili.sh 重新运行此脚本。" } function install_node_contabo() { # 增加swap空间 sudo mkdir /swap sudo fallocate -l 24G /swap/swapfile sudo chmod 600 /swap/swapfile sudo mkswap /swap/swapfile sudo swapon /swap/swapfile echo '/swap/swapfile swap swap defaults 0 0' >> /etc/fstab # 向/etc/sysctl.conf文件追加内容 echo -e "\n# 自定义最大接收和发送缓冲区大小" >> /etc/sysctl.conf echo "net.core.rmem_max=600000000" >> /etc/sysctl.conf echo "net.core.wmem_max=600000000" >> /etc/sysctl.conf echo "配置已添加到/etc/sysctl.conf" # 重新加载sysctl配置以应用更改 sysctl -p echo "sysctl配置已重新加载" sudo sh -c 'echo "nameserver 8.8.8.8\nnameserver 8.8.4.4" > /etc/resolv.conf' # 更新并升级Ubuntu软件包 sudo apt update && sudo apt -y upgrade # 安装wget、screen和git等组件 sudo apt install git ufw bison screen binutils gcc make bsdmainutils cpulimit gawk -y # 下载并安装gvm bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source /root/.gvm/scripts/gvm # 获取系统架构 ARCH=$(uname -m) # 安装并使用go1.4作为bootstrap gvm install go1.4 -B gvm use go1.4 export GOROOT_BOOTSTRAP=$GOROOT # 根据系统架构安装相应的Go版本 if [ "$ARCH" = "x86_64" ]; then gvm install go1.17.13 gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 gvm use go1.20.2 elif [ "$ARCH" = "aarch64" ]; then gvm install go1.17.13 -B gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 -B gvm use go1.20.2 else echo "Unsupported architecture: $ARCH" exit 1 fi git clone https://source.quilibrium.com/quilibrium/ceremonyclient.git # 进入ceremonyclient/node目录 cd ceremonyclient/node git switch release-cdn # 赋予执行权限 chmod +x release_autorun.sh # 创建一个screen会话并运行命令 screen -dmS Quili bash -c './release_autorun.sh' } function setup_grpc() { wget --no-cache -O - https://raw.githubusercontent.com/lamat1111/quilibriumscripts/master/tools/qnode_gRPC_calls_setup.sh | bash echo "gRPC 安装后,等待约30分钟生效" } # 主菜单 function main_menu() { clear echo "脚本以及教程由推特用户大赌哥 @y95277777 编写,免费开源,请勿相信收费" echo "================================================================" echo "节点社区 Telegram 群组:https://t.me/niuwuriji" echo "节点社区 Telegram 频道:https://t.me/niuwuriji" echo "请选择要执行的操作:" echo "1. 安装常规节点" echo "2. 查看节点日志" echo "3. Mac 节点安装" echo "8. 更新本脚本" echo "9. 加载快照" echo "10. 升级节点程序版本" echo "11. 安装常规节点(针对contabo)" echo "12. 升级节点程序版本(针对contabo)" echo "13. 安装grpc" echo "=======================单独使用功能=============================" echo "4. 独立启动挖矿(安装好常规节点后搭配使用)" echo "=========================备份功能================================" echo "5. 备份文件" echo "=========================收米查询================================" echo "6. 查询余额(需要先安装grpc)" read -p "请输入选项(1-13): " OPTION case $OPTION in 1) install_node ;; 2) check_service_status ;; 3) install_node_mac ;; 4) run_node ;; 5) backup_set ;; 6) check_balance ;; 8) update_script ;; 9) add_snapshots ;; 10) update_node ;; 11) install_node_contabo ;; 12) update_node_contabo ;; 13) setup_grpc ;; *) echo "无效选项。" ;; esac } # 显示主菜单 main_menu