Установка нескольких нод Rivalz на сервер
Больше скриптов и обсуждение в телеграм https://t.me/cryptuworker
Рекомендуемые характеристики сервера:
- Оперативная память: минимум 4 ГБ
- Дисковое пространство: минимум 100 GB SSD
- Процессор: от 2 ядер
1. Обновляем и устанавливаем необходимые пакеты
sudo apt update && sudo apt upgrade -y
2. Устанавливаем необходимые пакеты
apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
3. Устанавливаем Docker
sudo apt install docker.io
4. Проверяем версию Docker
docker --version
5. Устанавливаем Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
6. Проверяем версию
Должна быть `docker-compose version 1.29.2`.
docker-compose --version
7. Создаем папку и переходим в нее
mkdir rivalzAbuse && cd rivalzAbuse
8. Создаем файл `setup.sh` и записываем в него нужный код
nano setup.sh
Вставляем данный код в открывшемся окне:
#!/bin/bash function validate_proxy_format() { local proxy=$1 if [[ $proxy =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+:[^:]+:[^:]+$ ]]; then return 0 else return 1 fi } proxy_input="" while true; do read -p "Enter SOCKS5 proxy (format: ip:port:login:password): " proxy_input if validate_proxy_format "$proxy_input"; then break else echo "Invalid proxy format. Please try again." fi done proxy_ip=$(echo $proxy_input | cut -d':' -f1) proxy_port=$(echo $proxy_input | cut -d':' -f2) proxy_username=$(echo $proxy_input | cut -d':' -f3) proxy_password=$(echo $proxy_input | cut -d':' -f4) version=$(curl -s "https://be.rivalz.ai/api-v1/system/rnode-cli-version" | jq -r '.data') if [ -z "$version" ]; then version="latest" echo "Could not fetch the version. Defaulting to latest." fi cat <<EOL > Dockerfile FROM ubuntu:latest ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y curl redsocks iptables iproute2 jq nano RUN curl -fsSL "https://deb.nodesource.com/setup_20.x" | bash - && \\ apt-get install -y nodejs RUN npm install -g npm RUN npm install -g rivalz-node-cli@$version EOL cat <<EOL >> Dockerfile COPY redsocks.conf /etc/redsocks.conf COPY entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] EOL cat <<EOL >> Dockerfile CMD ["bash", "-c", "cd /usr/lib/node_modules/rivalz-node-cli && npm install && rivalz run; exec /bin/bash"] EOL cat <<EOL > redsocks.conf base { log_debug = off; log_info = on; log = "file:/var/log/redsocks.log"; daemon = on; redirector = iptables; } redsocks { local_ip = 127.0.0.1; local_port = 12345; ip = $proxy_ip; port = $proxy_port; type = socks5; login = "$proxy_username"; password = "$proxy_password"; } EOL cat <<EOL > entrypoint.sh #!/bin/sh echo "Starting redsocks..." redsocks -c /etc/redsocks.conf & echo "Redsocks started." sleep 5 echo "Configuring iptables..." iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 12345 iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDIRECT --to-ports 12345 echo "Iptables configured." echo "Executing user command..." exec "\$@" EOL existing_instances=$(docker ps -a --filter "name=rivalz-abuse-" --format "{{.Names}}" | grep -Eo 'rivalz-abuse-[0-9]+' | grep -Eo '[0-9]+' | sort -n | tail -1) if [ -z "$existing_instances" ]; then instance_number=1 else instance_number=$((existing_instances + 1)) fi container_name="rivalz-abuse-$instance_number" docker build -t $container_name . echo -e "\e[32mDocker image built successfully. Running the container...\e[0m" docker run -it --cap-add=NET_ADMIN --restart always --name $container_name $container_name
9. Сохраняем файл и можем его запускать
Для этого по очереди нажимаем `Ctrl + O`, `Enter`, `Ctrl + X`.
10. Делаем наш код исполняемым
chmod +x setup.sh ./setup.sh
11. Настройка ноды
После этого скрипт запросит прокси, затем адрес EVM кошелька, подключенного к сайту. После указания кошелька потребуется выбрать диск для установки ноды, просто жмем `Enter`. Далее скрипт запросит, сколько памяти мы хотим выделить под данную ноду. Рекомендуется указать максимально возможную (так как данная нода не будет использовать больше 10 ГБ в целом).
12. Запуск следующей ноды
Чтобы запустить установку следующей ноды, нужно закрыть окно терминала, не нажимая ничего. Просто закройте и заново откройте. Далее начинаем с команды:
rivalzAbuse/setup.sh