Este proyecto es una Aplicación Descentralizada (dApp) basada en tecnología Blockchain (EVM) y diseñada para ser desplegada en redes de la familia Ethereum (como Mainnet, Sepolia o Polygon). Su propósito es gestionar la logística, el inventario y la cadena de custodia en el combate de Incendios Forestales y la ejecución de Quemas Controladas preventivas.
Antes de comenzar, asegúrese de tener instalado:
- Node.js (v18 o superior)
- NPM (v9 o superior)
- Foundry (Forge, Anvil, Cast) - Instrucciones de instalación
- jq (Herramienta para procesar JSON en scripts) -
sudo apt install jq(en Linux/WSL)
Siga estos pasos para poner en marcha el sistema en su máquina local:
# Instalar dependencias del core y herramientas
npm install
# Instalar dependencias del frontend
cd frontend
npm install
cd ..# Crear el archivo .env a partir del ejemplo
cp .env.example .envNota: El archivo .env ya viene pre-configurado para funcionar en localhost (127.0.0.1).
Abra una primera terminal y ejecute:
npm run start-anvilEste comando inicia Anvil con 20 cuentas predeterminadas y persistencia de estado. Mantenga esta terminal abierta.
Abra una segunda terminal y ejecute el script de inicialización automática:
npm run bootstrapEste script automatiza:
- Despliegue del Smart Contract.
- Sincronización de la dirección del contrato en el
.envy el Frontend. - Sincronización de ABIs.
- Carga inicial de identidades tácticas (Alice, Bob, Sung, etc.).
Nota: Se recomienda esperar a que este proceso termine antes de interactuar con la web para asegurar que todos los roles y recursos estén disponibles en la Blockchain.
Abra una tercera terminal y ejecute:
cd frontend
npm run devAcceda a http://localhost:5173 en su navegador para interactuar con el sistema.
FireOPS cuenta con persistencia de estado. Si detiene los servicios o reinicia su equipo, puede retomar la simulación exactamente donde la dejó:
- Terminal A: Ejecute
npm run start-anvil. Anvil cargará automáticamente el archivoblockchain_state.json. - MetaMask: Es obligatorio realizar un "Reset de Cuenta" (
Configuración > Avanzado > Borrar datos de actividad) para sincronizar los bloques. - Terminal B: Ejecute el Frontend directamente (
cd frontend && npm run dev).
[!PRECAUCION] NO EJECUTE
npm run bootstrapsi desea mantener los datos actuales. El comando bootstrap despliega un contrato nuevo y sobreescribirá toda la historia registrada en el JSON. Use bootstrap solo para el primer despliegue o para limpiar el sistema por completo.
Si desea un centro de mando profesional y monitoreo del despliegue en tiempo real, puede instalar tmux y ejecutar el siguiente comando, el cual reemplaza por completo los pasos 3, 4 y 5 detallados anteriormente:
npm run monitorEste comando arranca todo el ecosistema (Anvil + Bootstrap + Frontend + Logs) en una sola terminal unificada, dividiendo su pantalla en 4 paneles operativos para una visión táctica total de la red.
Para interactuar con la dApp, importe las siguientes cuentas predeterminadas de Anvil en Metamask:
| Actor | Cuenta # | Dirección | Rol en Sistema |
|---|---|---|---|
| Administrador | 0 | 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 |
Gestión Global / Auditor |
| Base Operativa | 1 | 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 |
Alice Liang - Logística / Devoluciones |
| Jefe de Escena | 4 | 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 |
Aura Frasier (Cmdte Incidentes) |
| Brigadista | 7 | 0x14dC79964da2C08b23698B3D3cc7Ca32193d9955 |
Sung Jin-woo (Personal Campo) |
Clave Privada General (Cta #0): 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
Desarrollado por: CBT Propósito: PFM Ethereum para CodeCrypto Academy.