更新 ore.sh
This commit is contained in:
parent
95d88bd7f5
commit
39b256a1de
644
ore.sh
644
ore.sh
@ -7,87 +7,77 @@ if [ "$(id -u)" != "0" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
function install_node() {
|
function install_node() {
|
||||||
|
# 更新系统和安装必要的包
|
||||||
|
echo "更新系统软件包..."
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
echo "安装必要的工具和依赖..."
|
||||||
|
sudo apt install -y curl build-essential jq git libssl-dev pkg-config screen
|
||||||
|
|
||||||
# 更新系统和安装必要的包
|
# 安装 Rust 和 Cargo
|
||||||
echo "更新系统软件包..."
|
echo "正在安装 Rust 和 Cargo..."
|
||||||
sudo apt update && sudo apt upgrade -y
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||||
echo "安装必要的工具和依赖..."
|
source $HOME/.cargo/env
|
||||||
sudo apt install -y curl build-essential jq git libssl-dev pkg-config screen
|
|
||||||
|
|
||||||
# 安装 Rust 和 Cargo
|
# 安装 Solana CLI
|
||||||
echo "正在安装 Rust 和 Cargo..."
|
echo "正在安装 Solana CLI..."
|
||||||
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
sh -c "$(curl -sSfL https://release.solana.com/v1.18.4/install)"
|
||||||
source $HOME/.cargo/env
|
|
||||||
|
|
||||||
# 安装 Solana CLI
|
# 检查 solana-keygen 是否在 PATH 中
|
||||||
echo "正在安装 Solana CLI..."
|
if ! command -v solana-keygen &> /dev/null; then
|
||||||
sh -c "$(curl -sSfL https://release.solana.com/v1.18.4/install)"
|
echo "将 Solana CLI 添加到 PATH"
|
||||||
|
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
# 检查 solana-keygen 是否在 PATH 中
|
# 创建 Solana 密钥对
|
||||||
if ! command -v solana-keygen &> /dev/null; then
|
echo "正在创建 Solana 密钥对..."
|
||||||
echo "将 Solana CLI 添加到 PATH"
|
solana-keygen new --derivation-path m/44'/501'/0'/0' --force | tee solana-keygen-output.txt
|
||||||
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
|
|
||||||
export PATH="$HOME/.cargo/bin:$PATH"
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
# 显示提示信息,要求用户确认已备份
|
||||||
|
echo "请确保你已经备份了上面显示的助记词和私钥信息。"
|
||||||
|
echo "请向pubkey充值sol资产,用于挖矿gas费用。"
|
||||||
|
echo "备份完成后,请输入 'yes' 继续:"
|
||||||
|
|
||||||
# 创建 Solana 密钥对
|
read -p "" user_confirmation
|
||||||
echo "正在创建 Solana 密钥对..."
|
|
||||||
solana-keygen new --derivation-path m/44'/501'/0'/0' --force | tee solana-keygen-output.txt
|
|
||||||
|
|
||||||
# 显示提示信息,要求用户确认已备份
|
if [[ "$user_confirmation" == "yes" ]]; then
|
||||||
echo "请确保你已经备份了上面显示的助记词和私钥信息。"
|
echo "确认备份。继续执行脚本..."
|
||||||
echo "请向pubkey充值sol资产,用于挖矿gas费用。"
|
else
|
||||||
|
echo "脚本终止。请确保备份你的信息后再运行脚本。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "备份完成后,请输入 'yes' 继续:"
|
# 安装 Ore CLI
|
||||||
|
echo "正在安装 Ore CLI..."
|
||||||
|
cargo install ore-cli
|
||||||
|
|
||||||
read -p "" user_confirmation
|
# 检查并将Solana的路径添加到 .bashrc,如果它还没有被添加
|
||||||
|
grep -qxF 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' >> ~/.bashrc
|
||||||
|
|
||||||
if [[ "$user_confirmation" == "yes" ]]; then
|
# 检查并将Cargo的路径添加到 .bashrc,如果它还没有被添加
|
||||||
echo "确认备份。继续执行脚本..."
|
grep -qxF 'export PATH="$HOME/.cargo/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
|
||||||
else
|
|
||||||
echo "脚本终止。请确保备份你的信息后再运行脚本。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 安装 Ore CLI
|
# 使改动生效
|
||||||
echo "正在安装 Ore CLI..."
|
source ~/.bashrc
|
||||||
cargo install ore-cli
|
|
||||||
|
|
||||||
# 检查并将Solana的路径添加到 .bashrc,如果它还没有被添加
|
# 获取用户输入的 RPC 地址或使用默认地址
|
||||||
grep -qxF 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' >> ~/.bashrc
|
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
||||||
|
RPC_URL=${custom_rpc:-https://api.mainnet-beta.solana.com}
|
||||||
|
|
||||||
# 检查并将Cargo的路径添加到 .bashrc,如果它还没有被添加
|
# 获取用户输入的优先费用或使用默认值
|
||||||
grep -qxF 'export PATH="$HOME/.cargo/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
|
read -p "请输入交易的优先费用 (默认设置 1): " custom_priority_fee
|
||||||
|
PRIORITY_FEE=${custom_priority_fee:-1}
|
||||||
|
|
||||||
# 使改动生效
|
# 使用 screen 和 Ore CLI 开始挖矿
|
||||||
source ~/.bashrc
|
session_name="ore"
|
||||||
|
echo "开始挖矿,会话名称为 $session_name ..."
|
||||||
|
|
||||||
# 获取用户输入的 RPC 地址或使用默认地址
|
start="while true; do ore --rpc $RPC_URL --keypair ~/.config/solana/id.json --priority-fee $PRIORITY_FEE mine; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
||||||
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
screen -dmS "$session_name" bash -c "$start"
|
||||||
RPC_URL=${custom_rpc:-https://api.mainnet-beta.solana.com}
|
|
||||||
|
|
||||||
# 获取用户输入的线程数或使用默认值
|
|
||||||
read -p "请输入挖矿时要使用的线程数 (默认设置 1): " custom_threads
|
|
||||||
THREADS=${custom_threads:-1}
|
|
||||||
|
|
||||||
# 获取用户输入的优先费用或使用默认值
|
|
||||||
read -p "请输入交易的优先费用 (默认设置 1): " custom_priority_fee
|
|
||||||
PRIORITY_FEE=${custom_priority_fee:-1}
|
|
||||||
|
|
||||||
# 使用 screen 和 Ore CLI 开始挖矿
|
|
||||||
session_name="ore"
|
|
||||||
echo "开始挖矿,会话名称为 $session_name ..."
|
|
||||||
|
|
||||||
start="while true; do ore --rpc $RPC_URL --keypair ~/.config/solana/id.json --priority-fee $PRIORITY_FEE mine --threads $THREADS; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
|
||||||
screen -dmS "$session_name" bash -c "$start"
|
|
||||||
|
|
||||||
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
|
||||||
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
|
||||||
|
|
||||||
|
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
||||||
|
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
||||||
}
|
}
|
||||||
|
|
||||||
# 查看节点同步状态
|
# 查看节点同步状态
|
||||||
@ -99,7 +89,7 @@ function export_wallet() {
|
|||||||
echo "安装必要的工具和依赖..."
|
echo "安装必要的工具和依赖..."
|
||||||
sudo apt install -y curl build-essential jq git libssl-dev pkg-config screen
|
sudo apt install -y curl build-essential jq git libssl-dev pkg-config screen
|
||||||
check_and_install_dependencies
|
check_and_install_dependencies
|
||||||
|
|
||||||
echo "正在恢复Solana钱包..."
|
echo "正在恢复Solana钱包..."
|
||||||
# 提示用户输入助记词
|
# 提示用户输入助记词
|
||||||
echo "下方请粘贴/输入你的助记词,用空格分隔,盲文不会显示的"
|
echo "下方请粘贴/输入你的助记词,用空格分隔,盲文不会显示的"
|
||||||
@ -110,24 +100,19 @@ function export_wallet() {
|
|||||||
echo "钱包已恢复。"
|
echo "钱包已恢复。"
|
||||||
echo "请确保你的钱包地址已经充足的 SOL 用于交易费用。"
|
echo "请确保你的钱包地址已经充足的 SOL 用于交易费用。"
|
||||||
|
|
||||||
# 检查并将Solana的路径添加到 .bashrc,如果它还没有被添加
|
# 检查并将Solana的路径添加到 .bashrc,如果它还没有被添加
|
||||||
grep -qxF 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' >> ~/.bashrc
|
grep -qxF 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"' >> ~/.bashrc
|
||||||
|
|
||||||
# 检查并将Cargo的路径添加到 .bashrc,如果它还没有被添加
|
# 检查并将Cargo的路径添加到 .bashrc,如果它还没有被添加
|
||||||
grep -qxF 'export PATH="$HOME/.cargo/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
|
grep -qxF 'export PATH="$HOME/.cargo/bin:$PATH"' ~/.bashrc || echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
|
||||||
|
|
||||||
# 使改动生效
|
|
||||||
source ~/.bashrc
|
|
||||||
|
|
||||||
|
# 使改动生效
|
||||||
|
source ~/.bashrc
|
||||||
|
|
||||||
# 获取用户输入的 RPC 地址或使用默认地址
|
# 获取用户输入的 RPC 地址或使用默认地址
|
||||||
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
||||||
RPC_URL=${custom_rpc:-https://api.mainnet-beta.solana.com}
|
RPC_URL=${custom_rpc:-https://api.mainnet-beta.solana.com}
|
||||||
|
|
||||||
# 获取用户输入的线程数或使用默认值
|
|
||||||
read -p "请输入挖矿时要使用的线程数 (默认设置 1): " custom_threads
|
|
||||||
THREADS=${custom_threads:-1}
|
|
||||||
|
|
||||||
# 获取用户输入的优先费用或使用默认值
|
# 获取用户输入的优先费用或使用默认值
|
||||||
read -p "请输入交易的优先费用 (默认设置 1): " custom_priority_fee
|
read -p "请输入交易的优先费用 (默认设置 1): " custom_priority_fee
|
||||||
PRIORITY_FEE=${custom_priority_fee:-1}
|
PRIORITY_FEE=${custom_priority_fee:-1}
|
||||||
@ -136,7 +121,7 @@ source ~/.bashrc
|
|||||||
session_name="ore"
|
session_name="ore"
|
||||||
echo "开始挖矿,会话名称为 $session_name ..."
|
echo "开始挖矿,会话名称为 $session_name ..."
|
||||||
|
|
||||||
start="while true; do ore --rpc $RPC_URL --keypair ~/.config/solana/id.json --priority-fee $PRIORITY_FEE mine --threads $THREADS; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
start="while true; do ore --rpc $RPC_URL --keypair ~/.config/solana/id.json --priority-fee $PRIORITY_FEE mine; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
||||||
screen -dmS "$session_name" bash -c "$start"
|
screen -dmS "$session_name" bash -c "$start"
|
||||||
|
|
||||||
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
||||||
@ -162,43 +147,37 @@ function check_and_install_dependencies() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查是否已安装 Ore CLI
|
# 检查是否已安装 Ore CLI
|
||||||
if ! ore -V &> /dev/null; then
|
if ! ore -V &> /dev/null; then
|
||||||
echo "Ore CLI 未安装,正在安装..."
|
echo "Ore CLI 未安装,正在安装..."
|
||||||
cargo install ore-cli
|
cargo install ore-cli
|
||||||
else
|
else
|
||||||
echo "Ore CLI 已安装。"
|
echo "Ore CLI 已安装。"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
|
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
|
||||||
export PATH="$HOME/.cargo/bin:$PATH"
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
# 获取用户输入的 RPC 地址或使用默认地址
|
# 获取用户输入的 RPC 地址或使用默认地址
|
||||||
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
||||||
RPC_URL=${custom_rpc:-https://api.mainnet-beta.solana.com}
|
RPC_URL=${custom_rpc:-https://api.mainnet-beta.solana.com}
|
||||||
|
|
||||||
# 获取用户输入的线程数或使用默认值
|
# 获取用户输入的优先费用或使用默认值
|
||||||
read -p "请输入挖矿时要使用的线程数 (默认设置 1): " custom_threads
|
read -p "请输入交易的优先费用 (默认设置 1): " custom_priority_fee
|
||||||
THREADS=${custom_threads:-1}
|
PRIORITY_FEE=${custom_priority_fee:-1}
|
||||||
|
|
||||||
# 获取用户输入的优先费用或使用默认值
|
# 使用 screen 和 Ore CLI 开始挖矿
|
||||||
read -p "请输入交易的优先费用 (默认设置 1): " custom_priority_fee
|
session_name="ore"
|
||||||
PRIORITY_FEE=${custom_priority_fee:-1}
|
echo "开始挖矿,会话名称为 $session_name ..."
|
||||||
|
|
||||||
# 使用 screen 和 Ore CLI 开始挖矿
|
start="while true; do ore --rpc $RPC_URL --keypair ~/.config/solana/id.json --priority-fee $PRIORITY_FEE mine; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
||||||
session_name="ore"
|
screen -dmS "$session_name" bash -c "$start"
|
||||||
echo "开始挖矿,会话名称为 $session_name ..."
|
|
||||||
|
|
||||||
start="while true; do ore --rpc $RPC_URL --keypair ~/.config/solana/id.json --priority-fee $PRIORITY_FEE mine --threads $THREADS; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
|
||||||
screen -dmS "$session_name" bash -c "$start"
|
|
||||||
|
|
||||||
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
|
||||||
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
|
||||||
|
|
||||||
|
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
||||||
|
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# 查询奖励
|
# 查询奖励
|
||||||
function view_rewards() {
|
function view_rewards() {
|
||||||
ore --rpc https://api.mainnet-beta.solana.com --keypair ~/.config/solana/id.json rewards
|
ore --rpc https://api.mainnet-beta.solana.com --keypair ~/.config/solana/id.json rewards
|
||||||
@ -206,306 +185,269 @@ function view_rewards() {
|
|||||||
|
|
||||||
# 领取奖励
|
# 领取奖励
|
||||||
function claim_rewards() {
|
function claim_rewards() {
|
||||||
ore --rpc https://api.mainnet-beta.solana.com --keypair ~/.config/solana/id.json --priority-fee 50000 claim
|
ore --rpc https://api.mainnet-beta.solana.com --keypair ~/.config/solana/id.json --priority-fee 50000 claim
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function check_logs() {
|
function check_logs() {
|
||||||
screen -r ore
|
screen -r ore
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function multiple() {
|
function multiple() {
|
||||||
#!/bin/bash
|
echo "更新系统软件包..."
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
echo "安装必要的工具和依赖..."
|
||||||
|
sudo apt install -y curl build-essential jq git libssl-dev pkg-config screen
|
||||||
|
check_and_install_dependencies
|
||||||
|
|
||||||
echo "更新系统软件包..."
|
# 提示用户输入RPC配置地址
|
||||||
sudo apt update && sudo apt upgrade -y
|
read -p "请输入RPC配置地址: " rpc_address
|
||||||
echo "安装必要的工具和依赖..."
|
|
||||||
sudo apt install -y curl build-essential jq git libssl-dev pkg-config screen
|
|
||||||
check_and_install_dependencies
|
|
||||||
|
|
||||||
|
|
||||||
# 提示用户输入RPC配置地址
|
# 用户输入要生成的钱包配置文件数量
|
||||||
read -p "请输入RPC配置地址: " rpc_address
|
read -p "请输入你想要运行的钱包数量: " count
|
||||||
|
|
||||||
# 用户输入要生成的钱包配置文件数量
|
# 用户输入优先费用
|
||||||
read -p "请输入你想要运行的钱包数量: " count
|
read -p "请输入交易的优先费用 (默认设置为 1): " priority_fee
|
||||||
|
priority_fee=${priority_fee:-1}
|
||||||
|
|
||||||
# 用户输入优先费用
|
# 基础会话名
|
||||||
read -p "请输入交易的优先费用 (默认设置为 1): " priority_fee
|
session_base_name="ore"
|
||||||
priority_fee=${priority_fee:-1}
|
|
||||||
|
|
||||||
# 用户输入线程数
|
# 启动命令模板,使用变量替代rpc地址和优先费用
|
||||||
read -p "请输入挖矿时要使用的线程数 (默认设置为 1): " threads
|
start_command_template="while true; do ore --rpc $rpc_address --keypair ~/.config/solana/idX.json --priority-fee $priority_fee mine; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
||||||
threads=${threads:-1}
|
|
||||||
|
|
||||||
# 基础会话名
|
# 确保.solana目录存在
|
||||||
session_base_name="ore"
|
mkdir -p ~/.config/solana
|
||||||
|
|
||||||
# 启动命令模板,使用变量替代rpc地址、优先费用和线程数
|
# 循环创建配置文件和启动挖矿进程
|
||||||
start_command_template="while true; do ore --rpc $rpc_address --keypair ~/.config/solana/idX.json --priority-fee $priority_fee mine --threads $threads; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
for (( i=1; i<=count; i++ ))
|
||||||
|
do
|
||||||
|
# 提示用户输入私钥
|
||||||
|
echo "为id${i}.json输入私钥 (格式为包含64个数字的JSON数组):"
|
||||||
|
read -p "私钥: " private_key
|
||||||
|
|
||||||
# 确保.solana目录存在
|
# 生成配置文件路径
|
||||||
mkdir -p ~/.config/solana
|
config_file=~/.config/solana/id${i}.json
|
||||||
|
|
||||||
# 循环创建配置文件和启动挖矿进程
|
# 直接将私钥写入配置文件
|
||||||
for (( i=1; i<=count; i++ ))
|
echo $private_key > $config_file
|
||||||
do
|
|
||||||
# 提示用户输入私钥
|
|
||||||
echo "为id${i}.json输入私钥 (格式为包含64个数字的JSON数组):"
|
|
||||||
read -p "私钥: " private_key
|
|
||||||
|
|
||||||
# 生成配置文件路径
|
# 检查配置文件是否成功创建
|
||||||
config_file=~/.config/solana/id${i}.json
|
if [ ! -f $config_file ]; then
|
||||||
|
echo "创建id${i}.json失败,请检查私钥是否正确并重试。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 直接将私钥写入配置文件
|
# 生成会话名
|
||||||
echo $private_key > $config_file
|
session_name="${session_base_name}_${i}"
|
||||||
|
|
||||||
# 检查配置文件是否成功创建
|
# 替换启动命令中的配置文件名和RPC地址
|
||||||
if [ ! -f $config_file ]; then
|
start_command=${start_command_template//idX/id${i}}
|
||||||
echo "创建id${i}.json失败,请检查私钥是否正确并重试。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 生成会话名
|
# 打印开始信息
|
||||||
session_name="${session_base_name}_${i}"
|
echo "开始挖矿,会话名称为 $session_name ..."
|
||||||
|
|
||||||
# 替换启动命令中的配置文件名和RPC地址
|
# 使用 screen 在后台启动挖矿进程
|
||||||
start_command=${start_command_template//idX/id${i}}
|
screen -dmS "$session_name" bash -c "$start_command"
|
||||||
|
|
||||||
# 打印开始信息
|
|
||||||
echo "开始挖矿,会话名称为 $session_name ..."
|
|
||||||
|
|
||||||
# 使用 screen 在后台启动挖矿进程
|
|
||||||
screen -dmS "$session_name" bash -c "$start_command"
|
|
||||||
|
|
||||||
# 打印挖矿进程启动信息
|
|
||||||
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
|
||||||
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
# 打印挖矿进程启动信息
|
||||||
|
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
||||||
|
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_multiple() {
|
function check_multiple() {
|
||||||
# 提示用户同时输入起始和结束编号,用空格分隔
|
# 提示用户同时输入起始和结束编号,用空格分隔
|
||||||
|
|
||||||
# 提示用户输入RPC地址
|
# 提示用户输入RPC地址
|
||||||
echo -n "请输入RPC地址(例如 https://api.mainnet-beta.solana.com): "
|
echo -n "请输入RPC地址(例如 https://api.mainnet-beta.solana.com): "
|
||||||
read rpc_address
|
read rpc_address
|
||||||
|
|
||||||
# 提示用户同时输入起始和结束编号,用空格分隔
|
# 提示用户同时输入起始和结束编号,用空格分隔
|
||||||
echo -n "请输入起始和结束编号,中间用空格分隔(例如,对于10个钱包地址,输入1 10): "
|
echo -n "请输入起始和结束编号,中间用空格分隔(例如,对于10个钱包地址,输入1 10): "
|
||||||
read -a range
|
read -a range
|
||||||
|
|
||||||
# 获取起始和结束编号
|
|
||||||
start=${range[0]}
|
|
||||||
end=${range[1]}
|
|
||||||
|
|
||||||
# 执行循环
|
|
||||||
for i in $(seq $start $end); do
|
|
||||||
ore --rpc $rpc_address --keypair ~/.config/solana/id$i.json --priority-fee 1 rewards
|
|
||||||
done
|
|
||||||
|
|
||||||
|
# 获取起始和结束编号
|
||||||
|
start=${range[0]}
|
||||||
|
end=${range[1]}
|
||||||
|
|
||||||
|
# 执行循环
|
||||||
|
for i in $(seq $start $end); do
|
||||||
|
ore --rpc $rpc_address --keypair ~/.config/solana/id$i.json --priority-fee 1 rewards
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function lonely() {
|
function lonely() {
|
||||||
|
# 提示用户输入RPC配置地址
|
||||||
|
read -p "请输入RPC配置地址: " rpc_address
|
||||||
|
|
||||||
# 提示用户输入RPC配置地址
|
# 用户输入要生成的钱包配置文件数量
|
||||||
read -p "请输入RPC配置地址: " rpc_address
|
read -p "请输入你想要运行的钱包数量: " count
|
||||||
|
|
||||||
# 用户输入要生成的钱包配置文件数量
|
# 用户输入优先费用
|
||||||
read -p "请输入你想要运行的钱包数量: " count
|
read -p "请输入交易的优先费用 (默认设置为 1): " priority_fee
|
||||||
|
priority_fee=${priority_fee:-1}
|
||||||
|
|
||||||
# 用户输入优先费用
|
# 基础会话名
|
||||||
read -p "请输入交易的优先费用 (默认设置为 1): " priority_fee
|
session_base_name="ore"
|
||||||
priority_fee=${priority_fee:-1}
|
|
||||||
|
|
||||||
# 用户输入线程数
|
# 启动命令模板,使用变量替代rpc地址和优先费用
|
||||||
read -p "请输入挖矿时要使用的线程数 (默认设置为 1): " threads
|
start_command_template="while true; do ore --rpc $rpc_address --keypair ~/.config/solana/idX.json --priority-fee $priority_fee mine; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
||||||
threads=${threads:-1}
|
|
||||||
|
|
||||||
# 基础会话名
|
# 确保.solana目录存在
|
||||||
session_base_name="ore"
|
mkdir -p ~/.config/solana
|
||||||
|
|
||||||
# 启动命令模板,使用变量替代rpc地址、优先费用和线程数
|
# 循环创建配置文件和启动挖矿进程
|
||||||
start_command_template="while true; do ore --rpc $rpc_address --keypair ~/.config/solana/idX.json --priority-fee $priority_fee mine --threads $threads; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
for (( i=1; i<=count; i++ ))
|
||||||
|
do
|
||||||
|
# 提示用户输入私钥
|
||||||
|
echo "为id${i}.json输入私钥 (格式为包含64个数字的JSON数组):"
|
||||||
|
read -p "私钥: " private_key
|
||||||
|
|
||||||
# 确保.solana目录存在
|
# 生成配置文件路径
|
||||||
mkdir -p ~/.config/solana
|
config_file=~/.config/solana/id${i}.json
|
||||||
|
|
||||||
|
# 直接将私钥写入配置文件
|
||||||
|
echo $private_key > $config_file
|
||||||
|
|
||||||
|
# 检查配置文件是否成功创建
|
||||||
|
if [ ! -f $config_file ]; then
|
||||||
|
echo "创建id${i}.json失败,请检查私钥是否正确并重试。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 生成会话名
|
||||||
|
session_name="${session_base_name}_${i}"
|
||||||
|
|
||||||
|
# 替换启动命令中的配置文件名和RPC地址
|
||||||
|
start_command=${start_command_template//idX/id${i}}
|
||||||
|
|
||||||
|
# 打印开始信息
|
||||||
|
echo "开始挖矿,会话名称为 $session_name ..."
|
||||||
|
|
||||||
|
# 使用 screen 在后台启动挖矿进程
|
||||||
|
screen -dmS "$session_name" bash -c "$start_command"
|
||||||
|
|
||||||
|
# 打印挖矿进程启动信息
|
||||||
|
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
||||||
|
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function cliam_multiple() {
|
||||||
|
# 提示用户输入RPC地址
|
||||||
|
echo -n "请输入RPC地址(例如:https://api.mainnet-beta.solana.com): "
|
||||||
|
read rpc_address
|
||||||
|
|
||||||
|
# 确认用户输入的是有效RPC地址
|
||||||
|
if [[ -z "$rpc_address" ]]; then
|
||||||
|
echo "RPC地址不能为空。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 提示用户输入优先费用
|
||||||
|
echo -n "请输入优先费用(单位:lamports,例如:500000): "
|
||||||
|
read priority_fee
|
||||||
|
|
||||||
|
# 确认用户输入的是有效的数字
|
||||||
|
if ! [[ "$priority_fee" =~ ^[0-9]+$ ]]; then
|
||||||
|
echo "优先费用必须是一个整数。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 提示用户同时输入起始和结束编号
|
||||||
|
echo -n "请输入起始和结束编号,中间用空格分隔比如跑了10个钱包地址,输入1 10即可: "
|
||||||
|
read -a range
|
||||||
|
|
||||||
|
# 获取起始和结束编号
|
||||||
|
start=${range[0]}
|
||||||
|
end=${range[1]}
|
||||||
|
|
||||||
|
# 无限循环
|
||||||
|
while true; do
|
||||||
|
# 执行循环
|
||||||
|
for i in $(seq $start $end); do
|
||||||
|
echo "执行钱包 $i 并且RPC $rpc_address and 以及 $priority_fee"
|
||||||
|
ore --rpc $rpc_address --keypair ~/.config/solana/id$i.json --priority-fee $priority_fee claim
|
||||||
|
done
|
||||||
|
echo "成功领取 $start to $end."
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function rerun_rpc() {
|
||||||
|
# 提示用户输入RPC配置地址
|
||||||
|
read -p "请输入RPC配置地址: " rpc_address
|
||||||
|
|
||||||
|
# 用户输入优先费用
|
||||||
|
read -p "请输入交易的优先费用 (默认设置为 1): " priority_fee
|
||||||
|
priority_fee=${priority_fee:-1}
|
||||||
|
|
||||||
|
# 基础会话名
|
||||||
|
session_base_name="ore"
|
||||||
|
|
||||||
|
# 启动命令模板
|
||||||
|
start_command_template="while true; do ore --rpc $rpc_address --keypair {} --priority-fee $priority_fee mine; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
||||||
|
|
||||||
|
# 自动查找所有的idn.json文件
|
||||||
|
config_files=$(find ~/.config/solana -name "id*.json")
|
||||||
|
for config_file in $config_files
|
||||||
|
do
|
||||||
|
# 使用jq读取文件中的前五个数字,并将它们转换成逗号分隔的字符串
|
||||||
|
key_prefix=$(jq -r '.[0:5] | join(",")' "$config_file")
|
||||||
|
|
||||||
|
# 生成会话名
|
||||||
|
session_name="${session_base_name}_[${key_prefix}]"
|
||||||
|
|
||||||
|
# 替换启动命令中的配置文件路径
|
||||||
|
start_command=$(echo $start_command_template | sed "s|{}|$config_file|g")
|
||||||
|
|
||||||
|
# 打印开始信息
|
||||||
|
echo "开始挖矿,会话名称为 $session_name ..."
|
||||||
|
|
||||||
|
# 使用screen在后台启动挖矿进程
|
||||||
|
screen -dmS "$session_name" bash -c "$start_command"
|
||||||
|
|
||||||
|
# 打印挖矿进程启动信息
|
||||||
|
echo "挖矿进程已在名为 $session_name 的screen会话中后台启动。"
|
||||||
|
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function benchmark() {
|
||||||
|
read -p "请输入挖矿时要使用的线程数 : " threads
|
||||||
|
ore benchmark --threads "$threads"
|
||||||
|
}
|
||||||
|
|
||||||
|
function jito() {
|
||||||
|
git clone -b jito https://github.com/a3165458/ore-cli.git
|
||||||
|
cd ore-cli
|
||||||
|
cp ore /usr/bin
|
||||||
|
|
||||||
# 循环创建配置文件和启动挖矿进程
|
|
||||||
for (( i=1; i<=count; i++ ))
|
|
||||||
do
|
|
||||||
# 提示用户输入私钥
|
# 提示用户输入私钥
|
||||||
echo "为id${i}.json输入私钥 (格式为包含64个数字的JSON数组):"
|
echo "为id${i}.json输入私钥 (格式为包含64个数字的JSON数组):"
|
||||||
read -p "私钥: " private_key
|
read -p "私钥: " private_key
|
||||||
|
|
||||||
# 生成配置文件路径
|
# 生成配置文件路径
|
||||||
config_file=~/.config/solana/id${i}.json
|
config_file=~/id.json
|
||||||
|
|
||||||
# 直接将私钥写入配置文件
|
# 直接将私钥写入配置文件
|
||||||
echo $private_key > $config_file
|
echo $private_key > $config_file
|
||||||
|
|
||||||
# 检查配置文件是否成功创建
|
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
||||||
if [ ! -f $config_file ]; then
|
RPC_URL=${custom_rpc:-https://node.onekey.so/sol}
|
||||||
echo "创建id${i}.json失败,请检查私钥是否正确并重试。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 生成会话名
|
# 获取用户输入的优先费用或使用默认值
|
||||||
session_name="${session_base_name}_${i}"
|
read -p "请输入交易的优先费用 (默认设置 15000): " custom_priority_fee
|
||||||
|
PRIORITY_FEE=${custom_priority_fee:-15000}
|
||||||
|
|
||||||
# 替换启动命令中的配置文件名、RPC地址、优先费用和线程数
|
# 使用 screen 和 Ore CLI 开始挖矿
|
||||||
start_command=${start_command_template//idX/id${i}}
|
session_name="ore"
|
||||||
|
|
||||||
# 打印开始信息
|
|
||||||
echo "开始挖矿,会话名称为 $session_name ..."
|
echo "开始挖矿,会话名称为 $session_name ..."
|
||||||
|
|
||||||
# 使用 screen 在后台启动挖矿进程
|
start="while true; do ore --rpc $RPC_URL --keypair ~/id.json --priority-fee $PRIORITY_FEE mine --threads $THREADS; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
||||||
screen -dmS "$session_name" bash -c "$start_command"
|
screen -dmS "$session_name" bash -c "$start"
|
||||||
|
|
||||||
# 打印挖矿进程启动信息
|
|
||||||
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
||||||
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function cliam_multiple() {
|
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# 提示用户输入RPC地址
|
|
||||||
echo -n "请输入RPC地址(例如:https://api.mainnet-beta.solana.com): "
|
|
||||||
read rpc_address
|
|
||||||
|
|
||||||
# 确认用户输入的是有效RPC地址
|
|
||||||
if [[ -z "$rpc_address" ]]; then
|
|
||||||
echo "RPC地址不能为空。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 提示用户输入优先费用
|
|
||||||
echo -n "请输入优先费用(单位:lamports,例如:500000): "
|
|
||||||
read priority_fee
|
|
||||||
|
|
||||||
# 确认用户输入的是有效的数字
|
|
||||||
if ! [[ "$priority_fee" =~ ^[0-9]+$ ]]; then
|
|
||||||
echo "优先费用必须是一个整数。"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 提示用户同时输入起始和结束编号
|
|
||||||
echo -n "请输入起始和结束编号,中间用空格分隔比如跑了10个钱包地址,输入1 10即可: "
|
|
||||||
read -a range
|
|
||||||
|
|
||||||
# 获取起始和结束编号
|
|
||||||
start=${range[0]}
|
|
||||||
end=${range[1]}
|
|
||||||
|
|
||||||
# 无限循环
|
|
||||||
while true; do
|
|
||||||
# 执行循环
|
|
||||||
for i in $(seq $start $end); do
|
|
||||||
echo "执行钱包 $i 并且RPC $rpc_address and 以及 $priority_fee"
|
|
||||||
ore --rpc $rpc_address --keypair ~/.config/solana/id$i.json --priority-fee $priority_fee claim
|
|
||||||
|
|
||||||
done
|
|
||||||
echo "成功领取 $start to $end."
|
|
||||||
done
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function rerun_rpc() {
|
|
||||||
|
|
||||||
|
|
||||||
# 提示用户输入RPC配置地址
|
|
||||||
read -p "请输入RPC配置地址: " rpc_address
|
|
||||||
|
|
||||||
# 用户输入优先费用
|
|
||||||
read -p "请输入交易的优先费用 (默认设置为 1): " priority_fee
|
|
||||||
priority_fee=${priority_fee:-1}
|
|
||||||
|
|
||||||
# 用户输入线程数
|
|
||||||
read -p "请输入挖矿时要使用的线程数 (默认设置为 1): " threads
|
|
||||||
threads=${threads:-1}
|
|
||||||
|
|
||||||
# 基础会话名
|
|
||||||
session_base_name="ore"
|
|
||||||
|
|
||||||
# 启动命令模板
|
|
||||||
start_command_template="while true; do ore --rpc $rpc_address --keypair {} --priority-fee $priority_fee mine --threads $threads; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
|
||||||
|
|
||||||
# 自动查找所有的idn.json文件
|
|
||||||
config_files=$(find ~/.config/solana -name "id*.json")
|
|
||||||
for config_file in $config_files
|
|
||||||
do
|
|
||||||
# 使用jq读取文件中的前五个数字,并将它们转换成逗号分隔的字符串
|
|
||||||
key_prefix=$(jq -r '.[0:5] | join(",")' "$config_file")
|
|
||||||
|
|
||||||
# 生成会话名
|
|
||||||
session_name="${session_base_name}_[${key_prefix}]"
|
|
||||||
|
|
||||||
# 替换启动命令中的配置文件路径
|
|
||||||
start_command=$(echo $start_command_template | sed "s|{}|$config_file|g")
|
|
||||||
|
|
||||||
# 打印开始信息
|
|
||||||
echo "开始挖矿,会话名称为 $session_name ..."
|
|
||||||
|
|
||||||
# 使用screen在后台启动挖矿进程
|
|
||||||
screen -dmS "$session_name" bash -c "$start_command"
|
|
||||||
|
|
||||||
# 打印挖矿进程启动信息
|
|
||||||
echo "挖矿进程已在名为 $session_name 的screen会话中后台启动。"
|
|
||||||
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function benchmark() {
|
|
||||||
read -p "请输入挖矿时要使用的线程数 : " threads
|
|
||||||
ore benchmark --threads "$threads"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function jito() {
|
|
||||||
git clone -b jito https://github.com/a3165458/ore-cli.git
|
|
||||||
cd ore-cli
|
|
||||||
cp ore /usr/bin
|
|
||||||
|
|
||||||
# 提示用户输入私钥
|
|
||||||
echo "为id${i}.json输入私钥 (格式为包含64个数字的JSON数组):"
|
|
||||||
read -p "私钥: " private_key
|
|
||||||
|
|
||||||
# 生成配置文件路径
|
|
||||||
config_file=~/id.json
|
|
||||||
|
|
||||||
# 直接将私钥写入配置文件
|
|
||||||
echo $private_key > $config_file
|
|
||||||
|
|
||||||
read -p "请输入自定义的 RPC 地址,建议使用免费的Quicknode 或者alchemy SOL rpc(默认设置使用 https://api.mainnet-beta.solana.com): " custom_rpc
|
|
||||||
RPC_URL=${custom_rpc:-https://node.onekey.so/sol}
|
|
||||||
|
|
||||||
# 获取用户输入的线程数或使用默认值
|
|
||||||
read -p "请输入挖矿时要使用的线程数 (默认设置 1): " custom_threads
|
|
||||||
THREADS=${custom_threads:-1}
|
|
||||||
|
|
||||||
# 获取用户输入的优先费用或使用默认值
|
|
||||||
read -p "请输入交易的优先费用 (默认设置 15000): " custom_priority_fee
|
|
||||||
PRIORITY_FEE=${custom_priority_fee:-15000}
|
|
||||||
|
|
||||||
# 使用 screen 和 Ore CLI 开始挖矿
|
|
||||||
session_name="ore"
|
|
||||||
echo "开始挖矿,会话名称为 $session_name ..."
|
|
||||||
|
|
||||||
start="while true; do ore --rpc $RPC_URL --keypair ~/id.json --priority-fee $PRIORITY_FEE mine --threads $THREADS; echo '进程异常退出,等待重启' >&2; sleep 1; done"
|
|
||||||
screen -dmS "$session_name" bash -c "$start"
|
|
||||||
|
|
||||||
echo "挖矿进程已在名为 $session_name 的 screen 会话中后台启动。"
|
|
||||||
echo "使用 'screen -r $session_name' 命令重新连接到此会话。"
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 主菜单
|
# 主菜单
|
||||||
@ -541,10 +483,10 @@ function main_menu() {
|
|||||||
5) claim_rewards ;;
|
5) claim_rewards ;;
|
||||||
6) check_logs ;;
|
6) check_logs ;;
|
||||||
7) multiple ;;
|
7) multiple ;;
|
||||||
8) lonely ;;
|
8) lonely ;;
|
||||||
9) check_multiple ;;
|
9) check_multiple ;;
|
||||||
10) cliam_multiple ;;
|
10) cliam_multiple ;;
|
||||||
11) rerun_rpc ;;
|
11) rerun_rpc ;;
|
||||||
12) benchmark ;;
|
12) benchmark ;;
|
||||||
13) jito ;;
|
13) jito ;;
|
||||||
esac
|
esac
|
||||||
|
Loading…
Reference in New Issue
Block a user