Conceptos clave
EnergyAS organiza los datos de energía en torno a cuatro bloques: organizaciones (watchers), proyectos, remitentes autorizados (atestadores) y registros de energía (atestaciones).
Organizaciones (watchers)
Una organización, llamada watcher en el protocolo, es la entidad de nivel superior que posee y administra proyectos energéticos. Cualquier wallet puede registrar una organización llamando a registerWatcher(name), sin necesidad de aprobación y sin más costo que el de la transacción.
- El autorregistro es totalmente abierto: cualquiera puede crear una organización
- La wallet que registra se convierte en el propietario
- Los propietarios pueden transferir la propiedad para rotar claves o por cambios de equipo
- Cada organización recibe un ID secuencial único (
uint64) - Las organizaciones nunca se eliminan: persisten de forma permanente
Proyectos
Un proyecto representa un único sitio de energía: una granja solar, una turbina eólica, un centro de datos o cualquier instalación que genere o consuma energía. Los proyectos se registran bajo una organización.
| Propiedad | Descripción |
|---|---|
watcherId | La organización propietaria de este proyecto |
name | Etiqueta legible (p. ej., "Solar Farm Alpha") |
energyType | Fuente de energía: 0 = consumidor, 1–13 = tipo de generación |
registered | Se puede dar de baja para bloquear nuevos envíos; los datos históricos se conservan |
Advertencia: El tipo de energía es permanente. Un generador no puede convertirse en consumidor, ni viceversa. Esto evita la clasificación errónea de registros históricos.
Remitentes autorizados (atestadores)
Los atestadores son wallets autorizadas para enviar lecturas de energía. Hay dos niveles de autorización, y a una wallet le basta con uno para poder enviar:
Autorización por proyecto
Se agrega con addAttester(projectId, wallet). La wallet solo puede enviar lecturas de ese proyecto específico. Es la configuración recomendada para dispositivos IoT: si un dispositivo se compromete, solo se ve afectado su proyecto.
Autorización a nivel de organización
Se agrega con addWatcherAttester(watcherId, wallet). La wallet puede enviar lecturas de cualquier proyecto de la organización. Es útil para operadores de respaldo manual o auditores humanos.
Registros de energía (atestaciones)
Un registro de energía, llamado atestación en el protocolo, es un envío firmado y on-chain de datos de energía, realizado a través de EAS. Cada registro contiene lecturas por intervalo en vatios-hora (Wh), una etiqueta del método de recolección, un tipo de energía y un URI de metadatos opcional para documentos de respaldo.
- Las lecturas se almacenan en vatios-hora (Wh) para evitar problemas de precisión de punto flotante
- Cada registro cubre un período definido por
fromTimestamp,readingIntervalMinutesy el número de lecturas - El mismo período no puede enviarse dos veces para el mismo proyecto
- Las correcciones usan registros de reemplazo (mediante
refUID): las revocaciones directas están bloqueadas para preservar el rastro de auditoría - Cada envío actualiza automáticamente los totales acumulados (acumuladores) por proyecto y por organización
- Las correcciones ajustan los acumuladores según la diferencia entre el valor anterior y el nuevo
Acumuladores de energía
El registro mantiene cuatro totales acumulados que se actualizan automáticamente con cada envío y corrección:
| Acumulador | Alcance | Se actualiza con |
|---|---|---|
totalGeneratedWh | Por proyecto | Envíos de generadores |
totalConsumedWh | Por proyecto | Envíos de consumidores |
totalGeneratedWhByWatcher | Por organización | Envíos de generadores en todos sus proyectos |
totalConsumedWhByWatcher | Por organización | Envíos de consumidores en todos sus proyectos |