Autoinstall Script
AUTOINSTALL SCRIPT:
Es necesario tener docker instalado previamente, puedes instalarlo copiando directamente este código en tu terminal: sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Modo de empleo:
1. generar un archivo para el script ‘sudo nano sxt-docker-autoinstall.sh’
2. pegar el script en el archivo creado
3. dar permisos de ejecución: sudo chmod +x sxt-docker-autoinstall.sh
4 ejecutar: ./sxt-docker-autoinstall.sh
#!/bin/bash
# === CONFIGURACIÓN ===
NODE_NAME="YOUR_VALIDATOR_NAME"
DOCKER_IMAGE="ghcr.io/spaceandtimefdn/sxt-node:mainnet-v0.114.5"
# === 1. Limpieza previa completa ===
echo "🧹 Limpiando contenedor y volúmenes anteriores..."
docker rm -f sxt-validator 2>/dev/null
docker volume rm -f sxt-mainnet-data sxt-validator-key sxt-node-key 2>/dev/null
docker system prune -a -f
# === 2. Crear volúmenes ===
echo "📦 Creando volúmenes nuevos..."
docker volume create sxt-mainnet-data >/dev/null
docker volume create sxt-validator-key >/dev/null
docker volume create sxt-node-key >/dev/null
# === 3. Descargar la imagen ===
echo "⬇️ Descargando imagen Docker mainnet..."
docker pull "$DOCKER_IMAGE"
# === 4. Generar clave nueva de nodo ===
echo "🔑 Generando clave de nodo nueva..."
docker run -it --rm \
--platform linux/amd64 \
-v sxt-node-key:/data \
--entrypoint=/usr/local/bin/sxt-node \
"$DOCKER_IMAGE" \
key generate-node-key --chain /opt/chainspecs/mainnet-spec.json --file /data/subkey.key
# === 5. Fix permisos en el volumen del keystore ===
echo "🛠️ Corrigiendo permisos en volumen de clave..."
docker run -it --rm \
--platform linux/amd64 \
-v sxt-validator-key:/key \
--user root \
--entrypoint=chown \
"$DOCKER_IMAGE" \
-R sxtuser:sxtuser /key
# === 6. Lanzar nodo validador ===
echo "🚀 Lanzando nodo validador Mainnet..."
docker run -d --restart always \
--platform linux/amd64 \
--name sxt-validator \
-v sxt-mainnet-data:/data \
-v sxt-validator-key:/key \
-v sxt-node-key:/node-key \
-p 30333:30333/tcp \
-p 9615:9615/tcp \
-p 9944:9944/tcp \
--env HYPER_KZG_PUBLIC_SETUP_DIRECTORY=/data \
"$DOCKER_IMAGE" \
--base-path /data \
--prometheus-port 9615 \
--prometheus-external \
--pool-limit 10240 \
--pool-kbytes 1024000 \
--chain /opt/chainspecs/mainnet-spec.json \
--keystore-path /key \
--node-key-file /node-key/subkey.key \
--bootnodes "/dns/validator0.mainnet.sxt.network/tcp/30333/p2p/12D3KooWK4MUYTi\
z8H6gG98JwN3bT11keivvFLYjtwEv5sqhwkAt" \
--bootnodes "/dns/validator1.mainnet.sxt.network/tcp/30333/p2p/12D3KooWF92asK\
6nd1DTo4Hng3ekGpV2UYW9mSXJaXqB9RKGtyFU" \
--bootnodes "/dns/validator2.mainnet.sxt.network/tcp/30333/p2p/12D3KooWRdhvrm\
MziPGeLxB7jtbe7h5q54Qth8KWjoCPaLn9Hv4v" \
--validator \
--port 30333 \
--log info \
--telemetry-url 'wss://telemetry.polkadot.io/submit/ 5' \
--no-private-ipv4 \
--unsafe-rpc-external \
--rpc-methods=unsafe \
--rpc-cors all \
--rpc-port 9944 \
--name "$NODE_NAME"
# === 7. Mostrar logs ===
echo "📺 Logs del nodo (Ctrl+C para salir)..."
docker logs -f sxt-validator
Last updated