Primeros Pasos
Esta guía te lleva paso a paso a configurar el entorno de desarrollo de Almena Network.
Prerrequisitos
Herramientas Requeridas
| Herramienta | Versión | Instalación |
|---|---|---|
| Rust | edición 2021 | rustup.rs |
| Node.js | >= 24 | nodejs.org |
| pnpm | >= 10 | npm install -g pnpm |
| protoc | Última | Ver abajo |
| Task | >= 3 | taskfile.dev |
Instalando protoc
El compilador de Protocol Buffers es necesario para compilar el daemon y cualquier cliente gRPC:
# macOS
brew install protobuf
# Linux (Debian/Ubuntu)
sudo apt install protobuf-compiler
# Windows
choco install protoc
Prerrequisitos de Tauri v2
Para desarrollo de desktop y wallet, necesitas las dependencias de sistema de Tauri v2:
- macOS: Xcode Command Line Tools (
xcode-select --install) - Linux: Ver prerrequisitos de Tauri
- Windows: Visual Studio Build Tools con carga de trabajo C++
Clonar el Repositorio
git clone --recurse-submodules git@github.com:almena-network/almena-network.git
cd almena-network
Si ya clonaste sin --recurse-submodules:
git submodule update --init --recursive
Todos los submódulos siguen la rama develop.
Instalar Dependencias
task install
Esto ejecuta task install en cada submódulo (daemon, desktop, wallet, cli).
Ejecutar en Desarrollo
Cada módulo tiene su propio comando de desarrollo:
# Iniciar el daemon (requerido por desktop y CLI)
task daemon:dev
# En una terminal separada, iniciar la app de escritorio
task desktop:dev
# O iniciar la wallet
task wallet:dev
# O iniciar el CLI
task cli:dev
tip
Siempre inicia el daemon primero. La app de escritorio y el CLI se conectan a él vía gRPC en [::1]:50051.
Tareas Comunes
# Type-check / compile-check de todos los módulos
task check
# Compilar todos los módulos (release)
task build
# Limpiar artefactos de compilación
task clean
Específicas del Daemon
task daemon:test # Ejecutar tests
task daemon:clippy # Lint con Clippy
task daemon:fmt # Formatear código
task daemon:fmt:check # Verificar formato
Flujo de Proto
Después de editar daemon/proto/almena/daemon/v1/service.proto:
# Actualizar cliente desktop
task desktop:proto:copy && task desktop:proto:client
# Actualizar cliente CLI
task cli:proto:copy && task cli:proto:client
Estructura del Proyecto
almena-network/
├── daemon/ # Servidor gRPC Rust + red P2P
├── desktop/ # Consola de admin Tauri v2 + React 19
├── wallet/ # Billetera de identidad Tauri v2 + React 19
├── cli/ # Cliente TUI Rust
├── docs/ # Documentación Docusaurus
├── Taskfile.yml # Orquestación raíz
├── CLAUDE.md # Instrucciones para asistente IA
└── LICENSE # Apache-2.0 OR MIT
Cada submódulo tiene su propio Taskfile.yml, README.md y configuración independiente de CI/CD.