Ejecutar un nodo
Requisitos
- Node.js 24 LTS
- pnpm 9+
Instalación
git clone https://github.com/arateki/raiznet
cd raiznet
pnpm install
pnpm buildConfiguración
Copia el archivo de entorno de ejemplo y ajústalo según necesites:
cp apps/server/.env.example apps/server/.env| Variable | Por defecto | Descripción |
|---|---|---|
PUBLIC_PORT | 3000 | Puerto del endpoint público (bind 0.0.0.0) |
LOCAL_PORT | 3001 | Puerto del endpoint local autenticado (bind 127.0.0.1) |
DATA_DIR | ./data | Directorio de las bases SQLite y de la identidad del servidor |
LOG_LEVEL | info | Nivel de log de Pino (trace, debug, info, warn, error) |
NODE_ENV | development | Entorno |
Primera ejecución
cd apps/server
node dist/index.jsEn la primera ejecución, el servidor:
- Genera un par de claves Ed25519 a partir de una nueva seed phrase BIP-39
- Graba la seed en
DATA_DIR/identity.mnemonic(permisos0600) - Crea
raiznet_public.dbyraiznet_private.dbenDATA_DIR - Empieza a escuchar en los dos puertos
- Registra en el log la clave pública del servidor
{"pubkey":"641ffb278dc6...","msg":"raiznet server started"}Haz copia de seguridad de tu seed phrase
El archivo DATA_DIR/identity.mnemonic contiene la seed phrase de 12 palabras que controla la identidad de tu servidor. Haz una copia. Si se pierde, la identidad de tu nodo (su pubkey) desaparece — y con ella, cuando entren las redes, la capacidad de firmar NetworkManifests, filtros y catálogos.
Health check
curl http://localhost:3000/health
# {"status":"ok","ts":1776819068644}Exponer el nodo
El endpoint público (:3000) es seguro de exponer — solo sirve datos públicos. El endpoint local (:3001) aún no tiene autenticación: hace bind en 127.0.0.1 y debe permanecer inalcanzable desde fuera. Usa Tailscale o una VPN para el acceso remoto. Consulta API local.
Modo de desarrollo (watch)
pnpm --filter @raiznet/server devUsa node --watch para reiniciar en cada cambio de archivo. Requiere un dist/ ya compilado.