feat: cero dependencias externas y caché de peticiones al nodo
Las librerías (React, Babel) venían de unpkg.com y las fuentes de Google. Ninguno veía qué transacciones analizabas, pero ambos recibían tu IP y la hora en cada apertura: sabían que usabas Txoko, cuándo y desde dónde — el metadato que la propia herramienta enseña a proteger. Ahora se sirven desde el nodo, con verificación por hash y versiones fijadas. El dashboard funciona sin internet. Además, caché con TTL y coalescencia en useApi: las transacciones confirmadas son inmutables y se cachean toda la sesión, así que repetir un análisis ya explorado no cuesta ninguna petición al nodo (medido).
This commit is contained in:
@@ -10,6 +10,38 @@ y el versionado sigue [Versionado Semántico](https://semver.org/lang/es/):
|
||||
- **MENOR** — características nuevas que no rompen lo anterior
|
||||
- **PARCHE** — arreglos de errores
|
||||
|
||||
---
|
||||
## [1.11.0] — 2026-07-27
|
||||
### Añadido
|
||||
- **Las librerías del frontend se sirven desde tu propio nodo.** React, ReactDOM
|
||||
y Babel se cargaban desde unpkg.com, y las fuentes IBM Plex desde
|
||||
fonts.googleapis.com. Ninguno de los dos veía qué transacciones analizabas —
|
||||
pero ambos recibían tu IP pública, la hora y el referer en cada apertura del
|
||||
dashboard: sabían que usabas Txoko, cuándo y desde dónde. Ese metadato es
|
||||
justo lo que esta herramienta enseña a proteger. Ahora no sale ni una
|
||||
petición fuera de tu red, verificable con
|
||||
`grep -E '(src|href)="https?://' dashboard.html` (no devuelve nada).
|
||||
- Consecuencia práctica: **el dashboard funciona sin conexión a internet**.
|
||||
- Las librerías se descargan una vez durante la instalación y se **verifican
|
||||
por hash** (SHA-256 publicados en SETUP.md).
|
||||
- Versiones fijadas (`react@18.3.1`, `@babel/standalone@7.23.10`) en vez de
|
||||
rangos: antes el CDN decidía qué versión te entregaba y podía cambiar sin
|
||||
aviso.
|
||||
- `instalar-fuentes.sh` automatiza la descarga de IBM Plex (licencia OFL) y
|
||||
genera el CSS. Comprueba cada archivo y aborta si algo falla.
|
||||
- **Caché de respuestas del nodo con TTL y coalescencia** en `useApi`. Las
|
||||
pestañas se montan y desmontan al navegar, así que ir a otra pestaña y volver
|
||||
repetía todas las peticiones. Ahora:
|
||||
- Las **transacciones confirmadas se cachean toda la sesión** — son
|
||||
inmutables, no hay motivo para volver a pedirlas. Analizador, rastro de
|
||||
procedencia y peritaje dejan de pedir las mismas por separado.
|
||||
- Historial de direcciones 60 s, bloques 60 s, mempool y comisiones 20 s,
|
||||
estado del sistema 2 s (para que el monitor siga mostrando datos vivos).
|
||||
- **Coalescencia:** dos componentes que piden lo mismo a la vez generan una
|
||||
sola petición al nodo, no dos. Mismo patrón que ya usaba
|
||||
`system-metrics.js` en el servidor.
|
||||
- Medido: repetir un rastreo forense ya explorado cuesta **cero peticiones**.
|
||||
|
||||
---
|
||||
## [1.10.1] — 2026-07-27
|
||||
### Añadido
|
||||
|
||||
Reference in New Issue
Block a user