Documentación

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.

PropiedadDescripción
watcherIdLa organización propietaria de este proyecto
nameEtiqueta legible (p. ej., "Solar Farm Alpha")
energyTypeFuente de energía: 0 = consumidor, 1–13 = tipo de generación
registeredSe puede dar de baja para bloquear nuevos envíos; los datos históricos se conservan
Nota

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, readingIntervalMinutes y 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:

AcumuladorAlcanceSe actualiza con
totalGeneratedWhPor proyectoEnvíos de generadores
totalConsumedWhPor proyectoEnvíos de consumidores
totalGeneratedWhByWatcherPor organizaciónEnvíos de generadores en todos sus proyectos
totalConsumedWhByWatcherPor organizaciónEnvíos de consumidores en todos sus proyectos