├── test.sh └── t3rn.sh /test.sh: -------------------------------------------------------------------------------- 1 | channel_logo() { 2 | echo -e '\033[0;31m' 3 | echo -e '┌┐ ┌─┐┌─┐┌─┐┌┬┐┬┬ ┬ ┌─┐┬ ┬┌┐ ┬┬ ' 4 | echo -e '├┴┐│ ││ ┬├─┤ │ │└┬┘ └─┐└┬┘├┴┐││ ' 5 | echo -e '└─┘└─┘└─┘┴ ┴ ┴ ┴ ┴ └─┘ ┴ └─┘┴┴─┘' 6 | echo -e '\e[0m' 7 | echo -e "\n\nПодпишись на самый 4ekHyTbIu* канал в крипте @h0ld_er [💸]" 8 | } 9 | 10 | download_node() { 11 | if [ -d "$HOME/executor" ] || screen -list | grep -q "\.t3rnnode"; then 12 | echo 'Папка executor или сессия t3rnnode уже существуют. Установка невозможна. Выберите удалить ноду или выйти из скрипта.' 13 | return 14 | fi 15 | 16 | echo 'Начинаю установку ноды...' 17 | 18 | read -p "Введите ваш приватный ключ: " PRIVATE_KEY_LOCAL 19 | 20 | sudo apt update -y && sudo apt upgrade -y 21 | sudo apt-get install make screen build-essential software-properties-common curl git nano jq -y 22 | 23 | cd $HOME 24 | 25 | sudo wget https://github.com/t3rn/executor-release/releases/download/v0.29.0/executor-linux-v0.29.0.tar.gz -O executor-linux.tar.gz 26 | sudo tar -xzvf executor-linux.tar.gz 27 | sudo rm -rf executor-linux.tar.gz 28 | cd executor 29 | 30 | export NODE_ENV="testnet" 31 | export LOG_LEVEL="debug" 32 | export LOG_PRETTY="false" 33 | export EXECUTOR_PROCESS_ORDERS="true" 34 | export EXECUTOR_PROCESS_CLAIMS="true" 35 | export PRIVATE_KEY_LOCAL="$PRIVATE_KEY_LOCAL" 36 | export ENABLED_NETWORKS="arbitrum-sepolia,base-sepolia,blast-sepolia,optimism-sepolia,l1rn" 37 | export RPC_ENDPOINTS_BSSP="https://base-sepolia.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq" 38 | export RPC_ENDPOINTS_BLSS="https://blast-sepolia.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq" 39 | export RPC_ENDPOINTS_OPSP="https://opt-sepolia.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq" 40 | export RPC_ENDPOINTS_ARBT="https://arb-sepolia.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq" 41 | export RPC_ENDPOINTS_L1RN='https://brn.rpc.caldera.xyz/' 42 | export EXECUTOR_MAX_L3_GAS_PRICE=150 43 | export EXECUTOR_PROCESS_PENDING_ORDERS_FROM_API="false" 44 | 45 | cd $HOME/executor/executor/bin/ 46 | 47 | screen -dmS t3rnnode bash -c ' 48 | echo "Начало выполнения скрипта в screen-сессии" 49 | 50 | cd $HOME/executor/executor/bin/ 51 | ./executor 52 | 53 | exec bash 54 | ' 55 | 56 | echo "Screen сессия 't3rnnode' создана и нода запущена..." 57 | } 58 | 59 | check_logs() { 60 | if screen -list | grep -q "\.t3rnnode"; then 61 | screen -S t3rnnode -X hardcopy /tmp/screen_log.txt && sleep 0.1 && tail -n 100 /tmp/screen_log.txt && rm /tmp/screen_log.txt 62 | else 63 | echo "Сессия t3rnnode не найдена." 64 | fi 65 | } 66 | 67 | change_fee() { 68 | echo 'Начинаю изменение комиссии...' 69 | 70 | if [ ! -d "$HOME/executor" ]; then 71 | echo 'Папка executor не найдена. Установите ноду.' 72 | return 73 | fi 74 | 75 | read -p 'На какой газ GWEI вы хотите изменить? (по стандарту 30) ' GWEI_SET 76 | 77 | cd $HOME/executor 78 | export EXECUTOR_MAX_L3_GAS_PRICE=$GWEI_SET 79 | 80 | echo 'Перезагружаю ноду...' 81 | 82 | restart_node 83 | 84 | echo 'Комиссия была изменена.' 85 | } 86 | 87 | stop_node() { 88 | echo 'Начинаю остановку...' 89 | 90 | if screen -list | grep -q "\.t3rnnode"; then 91 | screen -S t3rnnode -p 0 -X stuff "^C" 92 | echo "Нода была остановлена." 93 | else 94 | echo "Сессия t3rnnode не найдена." 95 | fi 96 | } 97 | 98 | restart_node() { 99 | echo 'Начинаю перезагрузку...' 100 | 101 | session="t3rnnode" 102 | 103 | if screen -list | grep -q "\.${session}"; then 104 | screen -S "${session}" -p 0 -X stuff "^C" 105 | sleep 1 106 | screen -S "${session}" -p 0 -X stuff "./executor\n" 107 | echo "Нода была перезагружена." 108 | else 109 | echo "Сессия ${session} не найдена." 110 | fi 111 | } 112 | 113 | delete_node() { 114 | echo 'Начинаю удаление ноды...' 115 | 116 | if [ -d "$HOME/executor" ]; then 117 | sudo rm -rf $HOME/executor 118 | echo "Папка executor была удалена." 119 | else 120 | echo "Папка executor не найдена." 121 | fi 122 | 123 | if screen -list | grep -q "\.t3rnnode"; then 124 | sudo screen -X -S t3rnnode quit 125 | echo "Сессия t3rnnode была закрыта." 126 | else 127 | echo "Сессия t3rnnode не найдена." 128 | fi 129 | 130 | echo "Нода была удалена." 131 | } 132 | 133 | exit_from_script() { 134 | exit 0 135 | } 136 | 137 | while true; do 138 | channel_logo 139 | sleep 2 140 | echo -e "\n\nМеню:" 141 | echo "1. 🚀 Установить ноду" 142 | echo "2. 📋 Проверить логи ноды" 143 | echo "3. 🐾 Изменить комиссию" 144 | echo "4. 🛑 Остановить ноду" 145 | echo "5. 🔄 Перезапустить ноду" 146 | echo "6. 🗑️ Удалить ноду" 147 | echo -e "7. 🚪 Выйти из скрипта\n" 148 | read -p "Выберите пункт меню: " choice 149 | 150 | case $choice in 151 | 1) 152 | download_node 153 | ;; 154 | 2) 155 | check_logs 156 | ;; 157 | 3) 158 | change_fee 159 | ;; 160 | 4) 161 | stop_node 162 | ;; 163 | 5) 164 | restart_node 165 | ;; 166 | 6) 167 | delete_node 168 | ;; 169 | 7) 170 | exit_from_script 171 | ;; 172 | *) 173 | echo "Неверный пункт. Пожалуйста, выберите правильную цифру в меню." 174 | ;; 175 | esac 176 | done -------------------------------------------------------------------------------- /t3rn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Цвета текста 4 | RED='\033[0;31m' 5 | GREEN='\033[0;32m' 6 | YELLOW='\033[0;33m' 7 | BLUE='\033[0;34m' 8 | PURPLE='\033[0;35m' 9 | CYAN='\033[0;36m' 10 | NC='\033[0m' # Нет цвета (сброс цвета) 11 | 12 | # Проверка наличия curl и установка, если не установлен 13 | if ! command -v curl &> /dev/null; then 14 | sudo apt update 15 | sudo apt install curl -y 16 | fi 17 | sleep 1 18 | 19 | # Отображаем логотип 20 | curl -s https://raw.githubusercontent.com/noxuspace/cryptofortochka/main/logo_club.sh | bash 21 | 22 | # Проверка наличия bc и установка, если не установлен 23 | if ! command -v bc &> /dev/null; then 24 | sudo apt update 25 | sudo apt install bc -y 26 | fi 27 | sleep 1 28 | 29 | # Проверка версии Ubuntu 30 | UBUNTU_VERSION=$(lsb_release -rs) 31 | REQUIRED_VERSION=22.04 32 | 33 | if (( $(echo "$UBUNTU_VERSION < $REQUIRED_VERSION" | bc -l) )); then 34 | echo -e "${RED}Для этой ноды нужна минимальная версия Ubuntu 22.04${NC}" 35 | exit 1 36 | fi 37 | 38 | # Меню 39 | echo -e "${YELLOW}Выберите действие:${NC}" 40 | echo -e "${CYAN}1) Установка ноды${NC}" 41 | echo -e "${CYAN}2) Обновление ноды${NC}" 42 | echo -e "${CYAN}3) Проверка логов${NC}" 43 | echo -e "${CYAN}4) Рестарт ноды${NC}" 44 | echo -e "${CYAN}5) Удаление ноды${NC}" 45 | 46 | echo -e "${YELLOW}Введите номер:${NC} " 47 | read choice 48 | 49 | case $choice in 50 | 1) 51 | echo -e "${BLUE}Установливаем ноду t3rn...${NC}" 52 | 53 | # Обновление и установка зависимостей 54 | sudo apt update 55 | sudo apt upgrade -y 56 | 57 | # Скачиваем бинарник 58 | #LATEST_VERSION=$(curl -s https://api.github.com/repos/t3rn/executor-release/releases/latest | grep 'tag_name' | cut -d\" -f4) 59 | EXECUTOR_URL="https://github.com/t3rn/executor-release/releases/download/v0.59.0/executor-linux-v0.59.0.tar.gz" 60 | curl -L -o executor-linux-v0.59.0.tar.gz $EXECUTOR_URL 61 | 62 | # Извлекаем 63 | tar -xzvf executor-linux-v0.59.0.tar.gz 64 | rm -rf executor-linux-v0.59.0.tar.gz 65 | 66 | # Определяем пользователя и домашнюю директорию 67 | USERNAME=$(whoami) 68 | HOME_DIR=$(eval echo ~$USERNAME) 69 | 70 | # Создаем .t3rn и записываем приватный ключ 71 | CONFIG_FILE="$HOME_DIR/executor/executor/bin/.t3rn" 72 | echo "ENVIRONMENT=testnet" > $CONFIG_FILE 73 | echo "EXECUTOR_PROCESS_PENDING_ORDERS_FROM_API=false" > $CONFIG_FILE 74 | echo "EXECUTOR_PROCESS_ORDERS_API_ENABLED=false" > $CONFIG_FILE 75 | echo "EXECUTOR_PROCESS_BIDS_BATCH=true" > $CONFIG_FILE 76 | echo "EXECUTOR_ENABLE_BATCH_BIDDING=true" > $CONFIG_FILE 77 | echo "LOG_LEVEL=debug" >> $CONFIG_FILE 78 | echo "LOG_PRETTY=false" >> $CONFIG_FILE 79 | echo "EXECUTOR_PROCESS_BIDS_ENABLED=true" >> $CONFIG_FILE 80 | echo "EXECUTOR_PROCESS_ORDERS=true" >> $CONFIG_FILE 81 | echo "EXECUTOR_PROCESS_CLAIMS=true" >> $CONFIG_FILE 82 | echo "PRIVATE_KEY_LOCAL=" >> $CONFIG_FILE 83 | echo "EXECUTOR_MAX_L3_GAS_PRICE=1500" >> $CONFIG_FILE 84 | echo "ENABLED_NETWORKS='arbitrum-sepolia,base-sepolia,optimism-sepolia,blast-sepolia,monad-testnet,unichain-sepolia,l2rn'" >> $CONFIG_FILE 85 | cat <<'EOF' >> $CONFIG_FILE 86 | RPC_ENDPOINTS='{ 87 | "l2rn": ["https://t3rn-b2n.blockpi.network/v1/rpc/public", "https://b2n.rpc.caldera.xyz/http"], 88 | "arbt": ["https://arbitrum-sepolia-rpc.publicnode.com/519c5dad643d9d21986e6674ff1a70235bcfa1ced74812a831a726f0455d1d35"], 89 | "bast": ["https://base-sepolia-rpc.publicnode.com/e8194b83db6651a678b64737e8caded855f6a9bd2c58d59ef5b5bc10266288ea"], 90 | "opst": ["https://optimism-sepolia-rpc.publicnode.com/cec381af6037b798c9dd546445aac0c6b88d0484408973b687056064d9446494"], 91 | "blst": ["https://blast-sepolia.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq"], 92 | "mont": ["https://monad-testnet.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq"], 93 | "unit": ["https://unichain-sepolia-rpc.publicnode.com/94dc1bb15b511ec6b54ca5863f6943a96ae4715c268a2e75dd2242f5c774b82c"] 94 | }' 95 | EOF 96 | if ! grep -q "ENVIRONMENT=testnet" "$HOME/executor/executor/bin/.t3rn"; then 97 | echo "ENVIRONMENT=testnet" >> "$HOME/executor/executor/bin/.t3rn" 98 | fi 99 | 100 | echo -e "${YELLOW}Введите ваш приватный ключ:${NC}" 101 | read PRIVATE_KEY 102 | sed -i "s|PRIVATE_KEY_LOCAL=|PRIVATE_KEY_LOCAL=$PRIVATE_KEY|" $CONFIG_FILE 103 | 104 | # Создаем сервисник 105 | sudo bash -c "cat < /etc/systemd/system/t3rn.service 106 | [Unit] 107 | Description=t3rn Service 108 | After=network.target 109 | 110 | [Service] 111 | EnvironmentFile=$HOME_DIR/executor/executor/bin/.t3rn 112 | ExecStart=$HOME_DIR/executor/executor/bin/executor 113 | WorkingDirectory=$HOME_DIR/executor/executor/bin/ 114 | Restart=on-failure 115 | User=$USERNAME 116 | 117 | [Install] 118 | WantedBy=multi-user.target 119 | EOT" 120 | 121 | # Запуск сервиса 122 | sudo systemctl daemon-reload 123 | sudo systemctl restart systemd-journald 124 | sleep 1 125 | sudo systemctl enable t3rn 126 | sudo systemctl start t3rn 127 | sleep 2 128 | 129 | # Заключительный вывод 130 | echo -e "${PURPLE}-----------------------------------------------------------------------${NC}" 131 | echo -e "${YELLOW}Команда для проверки логов:${NC}" 132 | echo "sudo journalctl -u t3rn -f" 133 | echo -e "${PURPLE}-----------------------------------------------------------------------${NC}" 134 | echo -e "${GREEN}CRYPTO FORTOCHKA — вся крипта в одном месте!${NC}" 135 | echo -e "${CYAN}Наш Telegram https://t.me/cryptoforto${NC}" 136 | sleep 2 137 | 138 | # Проверка логов 139 | sudo journalctl -u t3rn -f 140 | ;; 141 | 2) 142 | echo -e "${BLUE}Обновление ноды t3rn...${NC}" 143 | 144 | # Остановка сервиса 145 | sudo systemctl stop t3rn 146 | 147 | # Удаляем папку executor 148 | cd 149 | rm -rf executor/ 150 | 151 | # Скачиваем новый бинарник 152 | LATEST_VERSION=$(curl -s https://api.github.com/repos/t3rn/executor-release/releases/latest | grep 'tag_name' | cut -d\" -f4) 153 | EXECUTOR_URL="https://github.com/t3rn/executor-release/releases/download/${LATEST_VERSION}/executor-linux-${LATEST_VERSION}.tar.gz" 154 | curl -L -o executor-linux-${LATEST_VERSION}.tar.gz $EXECUTOR_URL 155 | tar -xzvf executor-linux-${LATEST_VERSION}.tar.gz 156 | rm -rf executor-linux-${LATEST_VERSION}.tar.gz 157 | 158 | # Определяем пользователя и домашнюю директорию 159 | USERNAME=$(whoami) 160 | HOME_DIR=$(eval echo ~$USERNAME) 161 | 162 | # Создаем .t3rn и записываем приватный ключ 163 | CONFIG_FILE="$HOME_DIR/executor/executor/bin/.t3rn" 164 | echo "ENVIRONMENT=testnet" > $CONFIG_FILE 165 | echo "EXECUTOR_PROCESS_PENDING_ORDERS_FROM_API=false" > $CONFIG_FILE 166 | echo "EXECUTOR_PROCESS_ORDERS_API_ENABLED=false" > $CONFIG_FILE 167 | echo "EXECUTOR_PROCESS_BIDS_BATCH=true" > $CONFIG_FILE 168 | echo "EXECUTOR_ENABLE_BATCH_BIDDING=true" > $CONFIG_FILE 169 | echo "LOG_LEVEL=debug" >> $CONFIG_FILE 170 | echo "LOG_PRETTY=false" >> $CONFIG_FILE 171 | echo "EXECUTOR_PROCESS_BIDS_ENABLED=true" >> $CONFIG_FILE 172 | echo "EXECUTOR_PROCESS_ORDERS=true" >> $CONFIG_FILE 173 | echo "EXECUTOR_PROCESS_CLAIMS=true" >> $CONFIG_FILE 174 | echo "PRIVATE_KEY_LOCAL=" >> $CONFIG_FILE 175 | echo "EXECUTOR_MAX_L3_GAS_PRICE=1500" >> $CONFIG_FILE 176 | echo "ENABLED_NETWORKS='arbitrum-sepolia,base-sepolia,optimism-sepolia,blast-sepolia,monad-testnet,unichain-sepolia,l2rn'" >> $CONFIG_FILE 177 | cat <<'EOF' >> $CONFIG_FILE 178 | RPC_ENDPOINTS='{ 179 | "l2rn": ["https://t3rn-b2n.blockpi.network/v1/rpc/public", "https://b2n.rpc.caldera.xyz/http"], 180 | "arbt": ["https://arbitrum-sepolia-rpc.publicnode.com/519c5dad643d9d21986e6674ff1a70235bcfa1ced74812a831a726f0455d1d35"], 181 | "bast": ["https://base-sepolia-rpc.publicnode.com/e8194b83db6651a678b64737e8caded855f6a9bd2c58d59ef5b5bc10266288ea"], 182 | "opst": ["https://optimism-sepolia-rpc.publicnode.com/cec381af6037b798c9dd546445aac0c6b88d0484408973b687056064d9446494"], 183 | "blst": ["https://blast-sepolia.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq"], 184 | "mont": ["https://monad-testnet.g.alchemy.com/v2/KwGIIZbGFDZ-iLcEG_uQzAVD5qkTyPuq"], 185 | "unit": ["https://unichain-sepolia-rpc.publicnode.com/94dc1bb15b511ec6b54ca5863f6943a96ae4715c268a2e75dd2242f5c774b82c"] 186 | }' 187 | EOF 188 | 189 | if ! grep -q "ENVIRONMENT=testnet" "$HOME/executor/executor/bin/.t3rn"; then 190 | echo "ENVIRONMENT=testnet" >> "$HOME/executor/executor/bin/.t3rn" 191 | fi 192 | 193 | echo -e "${YELLOW}Введите ваш приватный ключ:${NC}" 194 | read PRIVATE_KEY 195 | sed -i "s|PRIVATE_KEY_LOCAL=|PRIVATE_KEY_LOCAL=$PRIVATE_KEY|" $CONFIG_FILE 196 | 197 | # Релоад деймонов 198 | sudo systemctl daemon-reload 199 | sudo systemctl restart systemd-journald 200 | sudo systemctl start t3rn 201 | sleep 2 202 | 203 | # Заключительный вывод 204 | echo -e "${PURPLE}-----------------------------------------------------------------------${NC}" 205 | echo -e "${YELLOW}Команда для проверки логов:${NC}" 206 | echo "sudo journalctl -u t3rn -f" 207 | echo -e "${PURPLE}-----------------------------------------------------------------------${NC}" 208 | echo -e "${GREEN}CRYPTO FORTOCHKA — вся крипта в одном месте!${NC}" 209 | echo -e "${CYAN}Наш Telegram https://t.me/cryptoforto${NC}" 210 | sleep 2 211 | 212 | # Проверка логов 213 | sudo journalctl -u t3rn -f 214 | ;; 215 | 3) 216 | # Проверка логов 217 | sudo journalctl -u t3rn -f 218 | ;; 219 | 4) 220 | # Рестарт ноды 221 | sudo systemctl restart t3rn 222 | sudo journalctl -u t3rn -f 223 | ;; 224 | 5) 225 | echo -e "${BLUE}Удаление ноды t3rn...${NC}" 226 | 227 | # Остановка и удаление сервиса 228 | sudo systemctl stop t3rn 229 | sudo systemctl disable t3rn 230 | sudo rm /etc/systemd/system/t3rn.service 231 | sudo systemctl daemon-reload 232 | sleep 2 233 | 234 | # Удаление папки executor 235 | rm -rf $HOME/executor 236 | 237 | echo -e "${GREEN}Нода t3rn успешно удалена!${NC}" 238 | 239 | # Заключительный вывод 240 | echo -e "${PURPLE}-----------------------------------------------------------------------${NC}" 241 | echo -e "${GREEN}CRYPTO FORTOCHKA — вся крипта в одном месте!${NC}" 242 | echo -e "${CYAN}Наш Telegram https://t.me/cryptoforto${NC}" 243 | sleep 1 244 | ;; 245 | *) 246 | echo -e "${RED}Неверный выбор. Пожалуйста, введите номер от 1 до 4.${NC}" 247 | ;; 248 | esac 249 | --------------------------------------------------------------------------------