Ръководството е за 6000 нода разделени по 200 нода в 30 Docker-a
Инсталиране на Cockpit
sudo apt update
sudo apt install cockpit -y
След инсталацията стартирай Cockpit и го направи да се стартира автоматично при всяко включване:
sudo systemctl enable --now cockpit.service
Достъп до Cockpit
https://<IP_на_машината>:9090
https://localhost:9090
CPU performance
sudo apt install cpufrequtils
for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
echo performance | sudo tee $i;
done
Firewall
sudo apt update
sudo apt install ufw
sudo ufw allow 9090/tcp
sudo ufw allow 50000:60000/udp
sudo ufw enable
sudo ufw status
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 22
logpath = /var/log/auth.log
maxretry = 3
[cockpit]
enabled = true
port = 9090
logpath = /var/log/auth.log
maxretry = 3
failregex = ^.Failed password for (?:invalid user )?(\S) from .*$
sudo nano /etc/fail2ban/filter.d/cockpit.conf
[Definition]
failregex = ^.Failed password. for.* from .*$
ignoreregex =
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
sudo fail2ban-client status sshd
Screen
sudo apt install screen
sudo screen -S ant
sudo screen -r ant
За да инсталираш Docker на Kubuntu 24, следвай тези стъпки:
1. Добави официалното Docker хранилище
sudo apt update
sudo apt install -y ca-certificates curl gnupg
Добави GPG ключа на Docker:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
Добави хранилището:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2. Инсталирай Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. Провери дали Docker работи
sudo systemctl enable --now docker
sudo docker --version
Ако искаш да използваш Docker без sudo
, добави потребителя си към групата docker
:
sudo usermod -aG docker $USER
newgrp docker
След това рестартирай компютъра си, за да влязат промените в сила.
cat << 'EOF' > install_new_dockers.sh
#!/bin/bash
# Цикъл за създаване на Docker контейнери от 1 до 30
for i in {1..30}
do
container_name="a$i" # Използвай "a" преди числото
echo "Създавам Docker контейнер $container_name"
sudo docker run -d \
--restart unless-stopped \
--privileged \
--network host \
--name $container_name \
debian:bookworm-slim sleep infinity
done
echo "Готово! Docker контейнерите от 1 до 30 са създадени."
EOF
chmod +x install_new_dockers.sh
cat << 'EOF' > install_in_dockers.sh
#!/bin/bash
# Определяне на командите, които ще се изпълнят
commands="apt update && \
apt install -y curl openrc procps iputils-ping iproute2 && \
touch /run/openrc/softlevel && \
curl -sSL https://raw.githubusercontent.com/maidsafe/antup/main/install.sh | bash && \
echo 'export PATH=\$PATH:/root/.local/bin' >> ~/.bashrc && \
source ~/.bashrc && \
antup antctl"
# Цикъл за изпълнение на командите в Docker контейнерите от a1 до a30
for i in {1..30}
do
container_name="a$i" # Използваме a1, a2, ... a30
echo "Изпълнявам команди в Docker контейнер $container_name"
# Изпълнение на командите в конкретния контейнер
docker exec -it $container_name bash -c "$commands"
# Проверка дали не е последният контейнер, за да се добави закъснение
if [ "$i" -lt 20 ]; then
echo "Изчакване за 20 секунди преди да премина към Docker контейнер $((i + 1))"
sleep 20 # Закъснение от 20 секунди
fi
done
EOF
chmod +x install_in_dockers.sh
cat << 'EOF' > source_env_in_dockers.sh
#!/bin/bash
# Цикъл за изпълнение на командата source /root/.config/autonomi/env в Docker контейнерите от a1 до a30
for i in {1..30}
do
container_name="a$i" # Използваме a1, a2, ... a30
echo "Изпълнявам 'source /root/.config/autonomi/env' в Docker контейнер $container_name"
# Изпълнение на командата в контейнера
docker exec -it $container_name bash -c "source /root/.config/autonomi/env"
# Закъснение от 20 секунди преди да премина към следващия контейнер
if [ "$i" -lt 20 ]; then
echo "Изчакване за 20 секунди преди да премина към Docker контейнер $((i + 1))"
sleep 20
fi
done
EOF
chmod +x source_env_in_dockers.sh
cat <<EOF > run_all.sh
#!/bin/bash
set -e # Спира изпълнението при грешка
echo "Стартиране на install_new_dockers.sh..."
sudo ./install_new_dockers.sh
echo "Стартиране на install_in_dockers.sh..."
sudo ./install_in_dockers.sh
echo "Стартиране на source_env_in_dockers.sh..."
sudo ./source_env_in_dockers.sh
echo "Всички скриптове са изпълнени успешно!"
EOF
sudo chmod +x run_all.sh
sudo ./run_all.sh
На мястото на adres се попълва Етериум адрес. Една по една се въвеждат командите, защото не винаги сваля успешно antnode и трябва да се пусне повторно за съответния докер:
sudo docker exec -it a1 /root/.local/bin/antctl add --count 200 --node-port 50001-50200 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a2 /root/.local/bin/antctl add --count 200 --node-port 50201-50400 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a3 /root/.local/bin/antctl add --count 200 --node-port 50401-50600 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a4 /root/.local/bin/antctl add --count 200 --node-port 50601-50800 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a5 /root/.local/bin/antctl add --count 200 --node-port 50801-51000 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a6 /root/.local/bin/antctl add --count 200 --node-port 51001-51200 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a7 /root/.local/bin/antctl add --count 200 --node-port 51201-51400 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a8 /root/.local/bin/antctl add --count 200 --node-port 51401-51600 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a9 /root/.local/bin/antctl add --count 200 --node-port 51601-51800 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a10 /root/.local/bin/antctl add --count 200 --node-port 51801-52000 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a11 /root/.local/bin/antctl add --count 200 --node-port 52001-52200 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a12 /root/.local/bin/antctl add --count 200 --node-port 52201-52400 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a13 /root/.local/bin/antctl add --count 200 --node-port 52401-52600 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a14 /root/.local/bin/antctl add --count 200 --node-port 52601-52800 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a15 /root/.local/bin/antctl add --count 200 --node-port 52801-53000 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a16 /root/.local/bin/antctl add --count 200 --node-port 53001-53200 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a17 /root/.local/bin/antctl add --count 200 --node-port 53201-53400 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a18 /root/.local/bin/antctl add --count 200 --node-port 53401-53600 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a19 /root/.local/bin/antctl add --count 200 --node-port 53601-53800 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a20 /root/.local/bin/antctl add --count 200 --node-port 53801-54000 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a21 /root/.local/bin/antctl add --count 200 --node-port 54001-54200 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a22 /root/.local/bin/antctl add --count 200 --node-port 54201-54400 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a23 /root/.local/bin/antctl add --count 200 --node-port 54401-54600 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a24 /root/.local/bin/antctl add --count 200 --node-port 54601-54800 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a25 /root/.local/bin/antctl add --count 200 --node-port 54801-55000 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a26 /root/.local/bin/antctl add --count 200 --node-port 55001-55200 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a27 /root/.local/bin/antctl add --count 200 --node-port 55201-55400 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a28 /root/.local/bin/antctl add --count 200 --node-port 55401-55600 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a29 /root/.local/bin/antctl add --count 200 --node-port 55601-55800 --rewards-address adres evm-arbitrum-one
sudo docker exec -it a30 /root/.local/bin/antctl add --count 200 --node-port 55801-56000 --rewards-address adres evm-arbitrum-one
sudo bash -c '
docker exec -it a1 /root/.local/bin/antctl start --interval 20000
docker exec -it a2 /root/.local/bin/antctl start --interval 20000
docker exec -it a3 /root/.local/bin/antctl start --interval 20000
docker exec -it a4 /root/.local/bin/antctl start --interval 20000
docker exec -it a5 /root/.local/bin/antctl start --interval 20000
docker exec -it a6 /root/.local/bin/antctl start --interval 20000
docker exec -it a7 /root/.local/bin/antctl start --interval 20000
docker exec -it a8 /root/.local/bin/antctl start --interval 20000
docker exec -it a9 /root/.local/bin/antctl start --interval 20000
docker exec -it a10 /root/.local/bin/antctl start --interval 20000
'
sudo bash -c '
docker exec -it a11 /root/.local/bin/antctl start --interval 20000
docker exec -it a12 /root/.local/bin/antctl start --interval 20000
docker exec -it a13 /root/.local/bin/antctl start --interval 20000
docker exec -it a14 /root/.local/bin/antctl start --interval 20000
docker exec -it a15 /root/.local/bin/antctl start --interval 20000
docker exec -it a16 /root/.local/bin/antctl start --interval 20000
docker exec -it a17 /root/.local/bin/antctl start --interval 20000
docker exec -it a18 /root/.local/bin/antctl start --interval 20000
docker exec -it a19 /root/.local/bin/antctl start --interval 20000
docker exec -it a20 /root/.local/bin/antctl start --interval 20000
'
sudo bash -c '
docker exec -it a21 /root/.local/bin/antctl start --interval 20000
docker exec -it a22 /root/.local/bin/antctl start --interval 20000
docker exec -it a23 /root/.local/bin/antctl start --interval 20000
docker exec -it a24 /root/.local/bin/antctl start --interval 20000
docker exec -it a25 /root/.local/bin/antctl start --interval 20000
docker exec -it a26 /root/.local/bin/antctl start --interval 20000
docker exec -it a27 /root/.local/bin/antctl start --interval 20000
docker exec -it a28 /root/.local/bin/antctl start --interval 20000
docker exec -it a29 /root/.local/bin/antctl start --interval 20000
docker exec -it a30 /root/.local/bin/antctl start --interval 20000
'