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.
Processo de Instalação no Linux
Seção intitulada “Processo de Instalação no Linux”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:
- Obter o binário do xahaud:
- Baixar uma imagem binária compilada de https://build.xahau.tech
- Compilar a partir do código-fonte
- Obter os arquivos de configuração:
- Se desejado, criar um usuário e grupo xahaud, que pode ser proprietário do binário e outros arquivos relevantes:
sudo groupadd --system xahaudsudo useradd --system --gid xahaud --no-create-home xahaud
- 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.cfgevalidators-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
- O binário do xahaud. O padrão é tipicamente:
- Mover o binário e os arquivos de configuração do xahaud para seus lugares na estrutura de diretórios.
- Editar o
xahaud.cfgpara que os caminhos na configuração correspondam aos caminhos na estrutura de diretórios. - 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/xahaudchmod -R 750 /opt/xahaud /var/log/xahaud
- 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
- O arquivo está localizado em:
- 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 "$@"
- Tipicamente armazenado em
Exemplo de Arquivo de Serviço systemd
Seção intitulada “Exemplo de Arquivo de Serviço systemd”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 DaemonAfter=network-online.targetWants=network-online.target
[Service]Type=simpleExecStart=/path/to/xahaud --silent --conf=/path/to/xahaud.cfgRestart=on-failureUser=xahaudGroup=xahaudLimitNOFILE=65536
[Install]WantedBy=multi-user.targetExemplo de Script de Instalação Linux
Seção intitulada “Exemplo de Script de Instalação Linux”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 storedCONF_DIR="/opt/xahaud/etc/" # Path where the xahaud.cfg and validators-xahau.txt will be storedDB_DIR="/opt/xahaud/db/" # Path where xahaud will store databasesLOG_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.cfgfiif [[ ! -f "${CONF_DIR}validators-xahau.txt" ]]; then curl -fsSL ${VAL_URL} -o ${CONF_DIR}validators-xahau.txtfi
### DOWNLOAD xahaud ###if [[ ! -f "${XAHAUD_DIR}xahaud" ]]; then curl -fsSL ${BINARY_URL} -o ${XAHAUD_DIR}xahaudelif [[ -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}xahaudfi
### 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" ]]; thenecho "Installing system service file."sudo cat > /etc/systemd/system/xahaud.service <<EOF[Unit]Description=Xahaud DaemonAfter=network-online.targetWants=network-online.target
[Service]Type=simpleExecStart=${XAHAUD_DIR}xahaud --silent --conf=${CONF_DIR}xahaud.cfgRestart=on-failureUser=${XAHAUD_USER}Group=${XAHAUD_USER}LimitNOFILE=65536
[Install]WantedBy=multi-user.targetEOFfi
### RUN COMMANDS AS 'xahaud' WITHOUT SPECIFYING FULL PATHS ###if [[ ! -f "/usr/local/bin/xahaud" ]]; thenecho "Creating xahaud wrapper."sudo cat > /usr/local/bin/xahaud <<EOF#!/usr/bin/env bashset -euo pipefail
exec ${XAHAUD_DIR}xahaud --conf=${CONF_DIR}xahaud.cfg "\$@"EOFfi
sudo chmod 0755 /usr/local/bin/xahaud
### ENABLE AND START xahaud ###sudo systemctl daemon-reloadsudo systemctl stop xahaudsudo systemctl enable --now xahaudsudo systemctl status xahaudecho "The install script completed successfully."Script de Instalação em Contêiner Docker
Seção intitulada “Script de Instalação em Contêiner Docker”Para executar o xahaud em um Contêiner Docker:
- Clone o repositório GitHub Docker do Xahau apropriado (Mainnet ou Testnet) usando a URL na tabela abaixo:
git clone [url-do-repositorio] - Navegue até o diretório do repositório:
cd [nome-do-repositorio] - Execute:
./build - Execute:
./up - 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
storedentro do diretório Docker.
Script de Instalação Local
Seção intitulada “Script de Instalação Local”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:
- Baixe e execute o script de instalação:
curl -sL [https://link-para-script] | bash - Edite o arquivo de configuração:
/opt/xahahud/etc/xahaud.cfg - Verifique e, se necessário, edite o conteúdo do arquivo de validadores confiáveis:
/opt/xahaud/etc/validators-xahau.txt - Inicie e habilite o xahaud para ser executado automaticamente:
systemctl enable —now xahaud - Verifique se o xahaud está em execução:
/opt/xahaud/bin/xahaud server_info
Recursos, Peering e Configurações
Seção intitulada “Recursos, Peering e Configurações”Este peering é relevante tanto para contêineres Docker quanto para instalações locais.