#!/bin/bash # 脚本保存路径 SCRIPT_PATH="$HOME/Quilibrium.sh" # 自动设置快捷键的功能 function check_and_set_alias() { local alias_name="quili" local shell_rc="$HOME/.bashrc" # 对于Zsh用户,使用.zshrc if [ -n "$ZSH_VERSION" ]; then shell_rc="$HOME/.zshrc" elif [ -n "$BASH_VERSION" ]; then shell_rc="$HOME/.bashrc" fi # 检查快捷键是否已经设置 if ! grep -q "$alias_name" "$shell_rc"; then echo "设置快捷键 '$alias_name' 到 $shell_rc" echo "alias $alias_name='bash $SCRIPT_PATH'" >> "$shell_rc" # 添加提醒用户激活快捷键的信息 echo "快捷键 '$alias_name' 已设置。请运行 'source $shell_rc' 来激活快捷键,或重新打开终端。" else # 如果快捷键已经设置,提供一个提示信息 echo "快捷键 '$alias_name' 已经设置在 $shell_rc。" echo "如果快捷键不起作用,请尝试运行 'source $shell_rc' 或重新打开终端。" fi } # 节点安装功能 function install_node() { # 检查是否以root用户执行脚本 if [ "$(id -u)" != "0" ]; then echo "该脚本必须以root权限运行" 1>&2 exit 1 fi # 增加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 -y # 安装GVM bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source /root/.gvm/scripts/gvm gvm install go1.4 -B gvm use go1.4 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.17.13 gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 gvm use go1.20.2 # 克隆仓库 git clone https://github.com/quilibriumnetwork/ceremonyclient # 进入ceremonyclient/node目录 cd ceremonyclient/node # 赋予执行权限 chmod +x poor_mans_cd.sh # 创建一个screen会话并运行命令 screen -dmS Quili bash -c './poor_mans_cd.sh' } # 节点安装功能 function install_node_service() { # 检查是否以root用户执行脚本 if [ "$(id -u)" != "0" ]; then echo "该脚本必须以root权限运行" 1>&2 exit 1 fi # 增加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 -y # 安装GVM bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) source /root/.gvm/scripts/gvm gvm install go1.4 -B gvm use go1.4 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.17.13 gvm use go1.17.13 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.20.2 gvm use go1.20.2 # 克隆仓库 git clone https://github.com/quilibriumnetwork/ceremonyclient # 进入ceremonyclient/node目录 cd ceremonyclient/node # 构建服务 GOEXPERIMENT=arenas go install ./... # 写入服务 sudo tee /lib/systemd/system/ceremonyclient.service > /dev/null <