October 22

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

После этого переходим к п.11.

Задать вопросы и обсудить можно в нашем телеграм канале https://t.me/cryptuworker