Pular para o conteúdo

Instalar o xahaud

Ao executar um nó, os usuários precisarão configurar as definições com base em se o nó será executado na rede de teste ou na rede principal. Ao fazer a transição de um único nó de uma rede para outra, os arquivos de banco de dados devem ser apagados, exceto wallet.db, que contém as credenciais de identidade do servidor.

As técnicas mais comuns para instalar o xahaud são localmente usando systemd ou dentro de um contêiner, como Docker.

Independentemente de como o xahaud é instalado (Docker ou em todo o sistema), o processo geral é semelhante em sistemas Linux. As seções a seguir, Contêiner Docker e Instalação Local, aproveitam scripts bash, que automatizam as seguintes etapas:

  1. Obter o binário do xahaud:
  2. Obter os arquivos de configuração:
  3. Se desejado, criar um usuário e grupo xahaud, que pode ser proprietário do binário e outros arquivos relevantes:
    • sudo groupadd --system xahaud
    • sudo useradd --system --gid xahaud --no-create-home xahaud
  4. Decidir (e criar) uma estrutura de diretórios para armazenar:
    • O binário do xahaud. O padrão é tipicamente: /opt/xahaud/bin/xahaud
    • Dois arquivos de configuração do xahaud, xahaud.cfg e validators-xahau.txt. O padrão é: /etc/xahaud/, embora /opt/xahaud/etc/ seja frequentemente usado. Esses dois locais podem ser vinculados simbolicamente.
    • Os bancos de dados do xahaud. O padrão é frequentemente: /opt/xahaud/db/
    • Um local para arquivo de log, como: /var/log/xahaud/default.log
  5. Mover o binário e os arquivos de configuração do xahaud para seus lugares na estrutura de diretórios.
  6. Editar o xahaud.cfg para que os caminhos na configuração correspondam aos caminhos na estrutura de diretórios.
  7. Se necessário, alterar as permissões de propriedade. Se executar o xahaud como validador, é importante restringir o arquivo xahaud.cfg, pois ele contém o token de validação.
    • chown -R xahaud:xahaud /opt/xahaud /var/log/xahaud
    • chmod -R 750 /opt/xahaud /var/log/xahaud
  8. Criar um arquivo de serviço systemd (como o exemplo abaixo) para executar o xahaud como um daemon.
    • O arquivo está localizado em: /etc/systemd/system/xahaud.service
    • Após criar ou editar o arquivo, execute: systemctl daemon-reload
    • Para executar o xahaud automaticamente na inicialização do sistema: systemctl enable --now xahaud
    • Se preferido, o xahaud pode ser executado sem o systemd: /caminho/para/xahaud --conf=/caminho/para/xahaud.cfg
  9. Criar um wrapper para executar comandos do xahaud sem precisar especificar o caminho completo.
    • Tipicamente armazenado em /usr/local/bin/xahaud
    • O conteúdo pode ser: exec ${XAHAUD_DIR}xahaud --conf=${CONF_DIR}xahaud.cfg "$@"

O seguinte arquivo de serviço deve ser modificado com base na estrutura de diretórios e permissões de propriedade selecionadas pelo usuário.

[Unit]
Description=Xahaud Daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/path/to/xahaud --silent --conf=/path/to/xahaud.cfg
Restart=on-failure
User=xahaud
Group=xahaud
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

Um script bash básico usado para instalar o xahaud. Este script segue as instruções fornecidas anteriormente nesta seção.

### VARIABLES ###
#### Directory structure ####
XAHAUD_DIR="/opt/xahaud/bin/" # Path where xahaud binary will be stored
CONF_DIR="/opt/xahaud/etc/" # Path where the xahaud.cfg and validators-xahau.txt will be stored
DB_DIR="/opt/xahaud/db/" # Path where xahaud will store databases
LOG_DIR="/var/log/xahaud/" # Path where logfile(s) will be stored.
#### Ownership ####
XAHAUD_USER="xahaud" # User that owns the xahaud process.
#### Download links ####
BINARY_URL="https://build.xahau.tech/2025.9.8-HEAD%2B2194" # URL to the xahaud binary that will be downloaded.
CFG_URL="https://raw.githubusercontent.com/Xahau/xahaud/refs/heads/dev/cfg/xahaud-example.cfg" # This will be renamed to 'xahaud.cfg'
VAL_URL="https://raw.githubusercontent.com/Xahau/xahaud/refs/heads/dev/cfg/validators-example.txt" # This will be renamed to 'validators-xahau.txt'
########## SCRIPT BEGINS HERE. DO NOT ADJUST VARIABLES BELOW THIS LINE ##########
### CREATE DIRECTORIES ####
echo "Checking directory structure."
sudo mkdir -p ${XAHAUD_DIR} ${CONF_DIR} ${DB_DIR} ${LOG_DIR}
### CREATE xahaud GROUP AND USER ###
echo "Checking for user and group."
if ! getent group ${XAHAUD_USER} > /dev/null; then
sudo groupadd --system ${XAHAUD_USER}
fi
if ! getent passwd ${XAHAUD_USER} > /dev/null; then
sudo useradd --system --gid ${XAHAUD_USER} --no-create-home ${XAHAUD_USER}
fi
### DOWNLOAD CONFIGURATION FILES ###
echo "Downloading files."
if [[ ! -f "${CONF_DIR}xahaud.cfg" ]]; then
curl -fsSL ${CFG_URL} -o ${CONF_DIR}xahaud.cfg
fi
if [[ ! -f "${CONF_DIR}validators-xahau.txt" ]]; then
curl -fsSL ${VAL_URL} -o ${CONF_DIR}validators-xahau.txt
fi
### DOWNLOAD xahaud ###
if [[ ! -f "${XAHAUD_DIR}xahaud" ]]; then
curl -fsSL ${BINARY_URL} -o ${XAHAUD_DIR}xahaud
elif [[ -f "${XAHAUD_DIR}xahaud" ]]; then
echo "Existing xahaud binary found. It will be renamed to 'xahaud.old'."
mv ${XAHAUD_DIR}xahaud ${XAHAUD_DIR}xahaud.old
curl -fsSL ${BINARY_URL} -o ${XAHAUD_DIR}xahaud
fi
### CHANGE OWNERSHIP AND PERMISSIONS ###
echo "Checking ownership and permissions."
sudo chown -R ${XAHAUD_USER}:${XAHAUD_USER} ${XAHAUD_DIR} ${CONF_DIR} ${DB_DIR} ${LOG_DIR}
sudo chmod -R 0750 ${XAHAUD_DIR} ${CONF_DIR} ${DB_DIR} ${LOG_DIR}
### Install systemd SERVICE FILE ###
if [[ ! -f "/etc/systemd/system/xahaud.service" ]]; then
echo "Installing system service file."
sudo cat > /etc/systemd/system/xahaud.service <<EOF
[Unit]
Description=Xahaud Daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=${XAHAUD_DIR}xahaud --silent --conf=${CONF_DIR}xahaud.cfg
Restart=on-failure
User=${XAHAUD_USER}
Group=${XAHAUD_USER}
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
fi
### RUN COMMANDS AS 'xahaud' WITHOUT SPECIFYING FULL PATHS ###
if [[ ! -f "/usr/local/bin/xahaud" ]]; then
echo "Creating xahaud wrapper."
sudo cat > /usr/local/bin/xahaud <<EOF
#!/usr/bin/env bash
set -euo pipefail
exec ${XAHAUD_DIR}xahaud --conf=${CONF_DIR}xahaud.cfg "\$@"
EOF
fi
sudo chmod 0755 /usr/local/bin/xahaud
### ENABLE AND START xahaud ###
sudo systemctl daemon-reload
sudo systemctl stop xahaud
sudo systemctl enable --now xahaud
sudo systemctl status xahaud
echo "The install script completed successfully."

Para executar o xahaud em um Contêiner Docker:

  1. Clone o repositório GitHub Docker do Xahau apropriado (Mainnet ou Testnet) usando a URL na tabela abaixo: git clone [url-do-repositorio]
  2. Navegue até o diretório do repositório: cd [nome-do-repositorio]
  3. Execute: ./build
  4. Execute: ./up
  5. Comandos e informações adicionais estão localizados no arquivo README.md no repositório Docker. Os arquivos de configuração e bancos de dados estão localizados no diretório store dentro do diretório Docker.

Os repositórios Docker do Xahau (Mainnet e Testnet) contêm um script para automatizar o processo de instalação local, para que o xahaud possa ser executado fora do Docker. Esses scripts são semelhantes ao Resumo da Instalação Linux, pois criarão arquivos systemd, um usuário ‘xahaud’ e arquivos de configuração padrão. As URLs para esses scripts estão na tabela no final desta página. Para instalar localmente:

  1. Baixe e execute o script de instalação: curl -sL [https://link-para-script] | bash
  2. Edite o arquivo de configuração: /opt/xahahud/etc/xahaud.cfg
  3. Verifique e, se necessário, edite o conteúdo do arquivo de validadores confiáveis: /opt/xahaud/etc/validators-xahau.txt
  4. Inicie e habilite o xahaud para ser executado automaticamente: systemctl enable —now xahaud
  5. Verifique se o xahaud está em execução: /opt/xahaud/bin/xahaud server_info

Este peering é relevante tanto para contêineres Docker quanto para instalações locais.

RecursoRede PrincipalRede de Teste
Documentação e Recursoshttps://xahau.network/Mesmo que a Mainnet
Documentação de Contratos Inteligentes Hookshttps://xahau.network/docs/hooks/Mesmo que a Mainnet
Explorerhttps://explorer.xahau.network/https://explorer.xahau-test.net
URL WebSocket Públicawss://xahau.networkwss://xahau-test.net
ID de Rede e Porta de Escuta de Peer21337 porta atribuída pela IANA21338
Servidores de Peering e Bootstrapbacab.alloy.ee 21337
hubs.xahau.as16089.net 21337
79.110.60.122 21338
79.110.60.124 21338
79.110.60.125 21338
79.110.60.121 21338

2a0c:3bc0::1c74 21338
2a0c:3bc0::169d 21338
2a0c:3bc0::1aaf 21338
2a0c:3bc0::1d78 21338
Contêiner Dockerhttps://github.com/Xahau/mainnet-dockerhttps://github.com/Xahau/Xahau-Testnet-Docker
Scripts de Instalação Localhttps://raw.githubusercontent.com/Xahau/mainnet-docker/refs/heads/main/xahaud-install-update.shhttps://github.com/Xahau/Xahau-Testnet-Docker/blob/main/xahaud-install-update.sh
Versões Bináriashttps://build.xahau.techMesmo que a Mainnet
Arquivo de Configuração de Exemplohttps://github.com/Xahau/xahaud/blob/dev/cfg/xahaud-example.cfghttps://github.com/Xahau/Xahau-Testnet-Docker/blob/main/store/etc/xahaud.cfg
Arquivo de Validadores Confiáveis (UNL) de Exemplohttps://github.com/Xahau/xahaud/blob/dev/cfg/validators-example.txthttps://github.com/Xahau/Xahau-Testnet-Docker/blob/main/store/etc/validators-xahau.txt
Arquivos de Configuração Documentadoshttps://github.com/Xahau/xahaud/tree/dev/cfgMesmo que a Mainnet
Ações de Compilação do GitHub (números de versão)https://github.com/Xahau/xahaud/actions?query=branch%3Arelease+is%3Asuccess+build+using+dockerMesmo que a Mainnet