Rodando um nó
Requisitos
- Node.js 24 LTS
- pnpm 9+
Instalação
git clone https://github.com/arateki/raiznet
cd raiznet
pnpm install
pnpm buildConfiguração
Copie o arquivo de ambiente de exemplo e ajuste conforme necessário:
cp apps/server/.env.example apps/server/.env| Variável | Padrão | Descrição |
|---|---|---|
PUBLIC_PORT | 3000 | Porta do endpoint público (bind 0.0.0.0) |
LOCAL_PORT | 3001 | Porta do endpoint local autenticado (bind 127.0.0.1) |
DATA_DIR | ./data | Diretório dos bancos SQLite e da identidade do servidor |
LOG_LEVEL | info | Nível de log do Pino (trace, debug, info, warn, error) |
NODE_ENV | development | Ambiente |
Primeira execução
cd apps/server
node dist/index.jsNa primeira execução, o servidor:
- Gera um par de chaves Ed25519 a partir de uma nova seed phrase BIP-39
- Grava a seed em
DATA_DIR/identity.mnemonic(permissões0600) - Cria
raiznet_public.dberaiznet_private.dbemDATA_DIR - Começa a escutar nas duas portas
- Registra no log a chave pública do servidor
{"pubkey":"641ffb278dc6...","msg":"raiznet server started"}Faça backup da sua seed phrase
O arquivo DATA_DIR/identity.mnemonic contém a seed phrase de 12 palavras que controla a identidade do seu servidor. Faça backup. Se perdida, a identidade do seu nó (sua pubkey) se vai — e com ela, quando as redes entrarem, a capacidade de assinar NetworkManifests, filtros e catálogos.
Health check
curl http://localhost:3000/health
# {"status":"ok","ts":1776819068644}Expondo o nó
O endpoint público (:3000) é seguro de expor — ele serve apenas dados públicos. O endpoint local (:3001) ainda não tem autenticação: ele faz bind em 127.0.0.1 e deve permanecer inalcançável de fora. Use Tailscale ou uma VPN para acesso remoto. Veja API local.
Modo de desenvolvimento (watch)
pnpm --filter @raiznet/server devUsa node --watch para reiniciar a cada mudança de arquivo. Requer um dist/ já compilado.