diff --git a/ore.sh b/ore.sh index 76802df..e65d7c3 100644 --- a/ore.sh +++ b/ore.sh @@ -72,7 +72,10 @@ echo "使用 'screen -r $session_name' 命令重新连接到此会话。" } # 查看节点同步状态 +# 恢复Solana钱包并开始挖矿 function export_wallet() { + check_and_install_dependencies + echo "正在恢复Solana钱包..." # 提示用户输入助记词 echo "请输入你的助记词,用空格分隔:" @@ -83,6 +86,56 @@ function export_wallet() { echo "钱包已恢复。" echo "请确保你的钱包地址已经充足的 SOL 用于交易费用。" + + + # 获取用户输入的 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} + + # 获取用户输入的线程数或使用默认值 + read -p "请输入挖矿时要使用的线程数 (默认设置 4): " custom_threads + THREADS=${custom_threads:-4} + + # 获取用户输入的优先费用或使用默认值 + 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' 命令重新连接到此会话。" +} + +function check_and_install_dependencies() { + # 检查是否已安装 Rust 和 Cargo + if ! command -v cargo &> /dev/null; then + echo "Rust 和 Cargo 未安装,正在安装..." + curl https://sh.rustup.rs -sSf | sh -s -- -y + source $HOME/.cargo/env + else + echo "Rust 和 Cargo 已安装。" + fi + + # 检查是否已安装 Solana CLI + if ! command -v solana-keygen &> /dev/null; then + echo "Solana CLI 未安装,正在安装..." + sh -c "$(curl -sSfL https://release.solana.com/v1.18.4/install)" + else + echo "Solana CLI 已安装。" + fi + + # 检查是否已安装 Ore CLI + if ! cargo install ore-cli --version | grep ore-cli &> /dev/null; then + echo "Ore CLI 未安装,正在安装..." + cargo install ore-cli + else + echo "Ore CLI 已安装。" + fi }