Saltar al contenido principal

Primeros Pasos

Esta guía te lleva paso a paso a configurar el entorno de desarrollo de Almena Network.

Prerrequisitos

Herramientas Requeridas

HerramientaVersiónInstalación
Rustedición 2021rustup.rs
Node.js>= 24nodejs.org
pnpm>= 10npm install -g pnpm
protocÚltimaVer abajo
Task>= 3taskfile.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.