Установка нескольких нод 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