Cómo funcionaHow it works
Del medidor a Stellar testnet, pieza por piezaFrom the meter to Stellar testnet, piece by piece
En palabras simples: dos medidores leen la misma instalación; unos filtros descartan lo imposible; las lecturas aceptadas forman lotes encadenados por su huella; un proponente publica cada lote y firma su anclaje; un verificador independiente vuelve a derivar todo desde lo publicado y solo entonces cofirma; Stellar testnet guarda la huella y el total. Cualquiera puede volver a comprobarlo.In plain words: two meters read the same installation; filters throw out the impossible; accepted readings form batches chained by their fingerprints; a proposer publishes each batch and signs its anchor; an independent verifier re-derives everything from what was published and only then co-signs; Stellar testnet keeps the fingerprint and the total. Anyone can check it again.
TESTNETTESTNETlo que ya se lee en vivo en Stellar testnetwhat is already read live on Stellar testnet PROTOTIPOPROTOTYPElo construido y probado con entrada simuladawhat is built and tested with simulated input PLANIFICADOPLANNEDlo que llega en la semana 2 o despuéswhat arrives in week 2 or later
El camino de una lectura hasta una constanciaThe path of a reading to a record
PROTOTIPOPROTOTYPEToca o selecciona cualquier pieza para ver qué comprueba, en qué archivo está y en qué estado está hoy.Tap or select any piece to see what it checks, which file it lives in and what state it is in today.
-
Medidor o simuladorMeter or simulator
PROTOTIPOPROTOTYPEDos medidores independientes miden la misma instalación. En este sprint no hay hardware: un simulador determinista produce las lecturas.Two independent meters measure the same installation. There is no hardware in this sprint: a deterministic simulator produces the readings.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
Nada todavía: es la fuente. Por eso cada número que sale de aquí dice «Entrada simulada».Nothing yet: it is the source. That is why every number that comes out of it says "Simulated input".
Dónde está el códigoWhere the code is
live/simulator.js(abre en una pestaña nueva)(opens in a new tab)ingest/maps/pzem-017.json(abre en una pestaña nueva)(opens in a new tab)ingest/maps/epever-tracer.json(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
- D1-READER TRABAJO PREVIOPRIOR WORK
- D1-OPEN-EPEVER ABIERTO · DECISIÓN PENDIENTEOPEN · DECISION PENDING
- D1-OPEN-PZEM ABIERTO · DECISIÓN PENDIENTEOPEN · DECISION PENDING
- HW-PILOT FUERA DEL SPRINTOUTSIDE THE SPRINT
-
Entradas Modbus, HTTP y CSVModbus, HTTP and CSV inputs
PROTOTIPOPROTOTYPETres caminos de entrada producen exactamente el mismo registro, byte a byte.Three input paths produce exactly the same record, byte for byte.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
El esquema y que solo haya números enteros; una sola forma de escribir cada instante en la entrada HTTP (DV-4); el desfase de reloj de cada entrada (V3-6, semana 2).The schema and integers only; one spelling per instant at the HTTP input (DV-4); the clock offset of every input (V3-6, week 2).
Dónde está el códigoWhere the code is
ingest/adapters/modbus.js(abre en una pestaña nueva)(opens in a new tab)ingest/adapters/http.js(abre en una pestaña nueva)(opens in a new tab)ingest/adapters/csv.js(abre en una pestaña nueva)(opens in a new tab)ingest/lib/normalize.js(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
-
Intervalos y filtros G0–G3Intervals and filters G0–G3
PROTOTIPOPROTOTYPELas lecturas se agrupan en intervalos de 5 minutos y cada intervalo pasa cuatro filtros que fallan cerrados; si uno falla, el intervalo se rechaza con un motivo público.Readings are grouped into 5-minute intervals and each interval passes four filters that fail closed; if one fails, the interval is refused with a public reason.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
G0 verosimilitud, G1 techo de placa, G2 sol sobre el horizonte, G3 acuerdo entre medidores. En la puerta: intervalos repetidos, superpuestos, fuera de la grilla o de otra instalación (V3-2, DV-3). Sin energía estimada en un hueco de más de tres lecturas (V3-10, semana 2).G0 plausibility, G1 nameplate ceiling, G2 sun above the horizon, G3 meter agreement. At the door: repeated, overlapping, off-grid or other-installation intervals (V3-2, DV-3). No energy estimated across a gap of more than three readings (V3-10, week 2).
Dónde está el códigoWhere the code is
assets/qwatt-gates.js(abre en una pestaña nueva)(opens in a new tab)assets/gates.browser.jsbatch/assemble.js(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
-
Lotes encadenadosChained batches
PROTOTIPOPROTOTYPECada hora, los intervalos aceptados forman un lote que lleva la huella del lote anterior: cambiar uno rompe todos los siguientes.Every hour, the accepted intervals form a batch that carries the previous batch's fingerprint: changing one breaks every later one.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
La raíz de los intervalos; la raíz de las lecturas crudas (V3-5, semana 2); la huella del lote; un lote rechazado no suma energía (V3-3).The interval root; the raw-reading root (V3-5, week 2); the batch fingerprint; a refused batch adds no energy (V3-3).
Dónde está el códigoWhere the code is
protocol/evidence.js(abre en una pestaña nueva)(opens in a new tab)protocol/batch.schema.json(abre en una pestaña nueva)(opens in a new tab)batch/assemble.js(abre en una pestaña nueva)(opens in a new tab)batch/verify.js(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
-
Feed público de evidenciaPublic evidence feed
PLANIFICADOPLANNEDTodo lote se publica, aceptado o rechazado, con cada intervalo rechazado y su motivo. Lo publicado no se reescribe.Every batch is published, accepted or refused, with each refused interval and its reason. What is published is never rewritten.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
Se escribe una sola vez; los registros solo crecen; un solo escritor por repositorio (V3-7, semana 2). Los feeds de muestra de este sitio ya usan el formato: PROTOTIPO.Written once; registers only grow; one writer per repository (V3-7, week 2). The sample feeds on this site already use the format: PROTOTYPE.
Dónde está el códigoWhere the code is
batch/feed.js(abre en una pestaña nueva)(opens in a new tab)ops/publish-feed.js(abre en una pestaña nueva)(opens in a new tab)evidence/feeds/muestra/(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
- V3-7 PLANIFICADOPLANNED
-
ProponenteProposer
PROTOTIPOPROTOTYPEArma la transacción de anclaje del lote, la firma y la publica. Nunca la envía: con una sola firma la red la rechazaría.Builds the batch's anchoring transaction, signs it and publishes it. It never submits it: with one signature the network would refuse it.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
Recorre la cadena hasta la cabeza anclada antes de proponer (DV-5); arma la transacción desde el lote publicado; la firma; nunca la envía.Walks the chain to the anchored head before proposing (DV-5); builds the transaction from the published batch; signs it; never submits it.
Dónde está el códigoWhere the code is
anchor/proposer.js(abre en una pestaña nueva)(opens in a new tab)anchor/tx.js(abre en una pestaña nueva)(opens in a new tab)anchor/chain.js(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
- DV-5 HECHO · SEMANA 1DONE · WEEK 1
- D3-REHEARSAL TRABAJO PREVIOPRIOR WORK
- V3-8 PLANIFICADOPLANNED
-
Verificador independienteIndependent verifier
PROTOTIPOPROTOTYPECon su propia clave, descarga solo lo publicado, vuelve a correr cada comprobación, reconstruye la transacción y cofirma solo si es idéntica. Hoy lo opera nuestro propio equipo: es independiente en código y en datos, no en organización.With its own key, it downloads only what is published, runs every check again, rebuilds the transaction and co-signs only if it is identical. Today our own team operates it: independent in code and data, not in organization.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
Recorre hasta la huella anclada (V3-1); verifyBatch; transacción idéntica; rechaza lotes no publicados (verifier.not_published) y alterados (verifier.hash_mismatch); un rechazo será definitivo (V3-11, semana 3).Walks back to the anchored fingerprint (V3-1); verifyBatch; identical transaction; refuses unpublished (verifier.not_published) and altered (verifier.hash_mismatch) batches; a refusal will be final (V3-11, week 3).
Dónde está el códigoWhere the code is
anchor/verifier.js(abre en una pestaña nueva)(opens in a new tab)batch/verify.js(abre en una pestaña nueva)(opens in a new tab)anchor/chain.js(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
-
Cuenta 2 de 3 en Stellar testnet2-of-3 account on Stellar testnet
PLANIFICADOPLANNEDTendrá tres firmantes: el proponente, el verificador y un firmante externo al equipo. Con umbrales 2/2/3, ninguna clave sola podrá enviar una transacción; dos claves anclarán; cambiar firmantes exigirá las tres. En preparación (semana 2).It will have three signers: the proposer, the verifier and a signer from outside the team. With thresholds 2/2/3, no single key will be able to send a transaction; two keys will anchor; changing signers will take all three. In preparation (week 2).
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
Umbrales 2/2/3, tres firmantes de peso 1 y la clave con que se crea la cuenta en peso 0: decidido y construido en la herramienta de la cuenta, probado contra una red simulada (OD-1). La cuenta definitiva (V3-4) y las claves sin navegador (V3-8), en la semana 2.Thresholds 2/2/3, three signers of weight 1 and the key that creates the account at weight 0: decided and built into the account tool, tested against a simulated network (OD-1). The real account (V3-4) and keys without a browser (V3-8), in week 2.
Dónde está el códigoWhere the code is
anchor/setup-account.js(abre en una pestaña nueva)(opens in a new tab)anchor/thresholds.js(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
-
Cualquiera vuelve a comprobarAnyone checks again
TESTNETTESTNETCon datos públicos y sin claves: este sitio vuelve a derivar lotes en tu navegador, y la conciliación comparará cada ancla con su lote.With public data and no keys: this site re-derives batches in your browser, and reconciliation will compare every anchor with its batch.
Qué comprueba, dónde está el código y puntos del planWhat it checks, where the code is and plan items
Qué compruebaWhat it checks
Vuelve a derivar lotes en el navegador con el código del repositorio (este sitio, en vivo sobre el ensayo del 8 oct); la conciliación leerá firmantes y umbrales desde Stellar (V3-9, semana 2).Re-derives batches in the browser with the repository's code (this site, live on the 8 Oct rehearsal); reconciliation will read signers and thresholds from Stellar (V3-9, week 2).
Dónde está el códigoWhere the code is
protocol/build-browser.js(abre en una pestaña nueva)(opens in a new tab)batch/verify-cli.js(abre en una pestaña nueva)(opens in a new tab)assets/qwatt-reconcile.js(abre en una pestaña nueva)(opens in a new tab)anchor/reconcile-cli.js(abre en una pestaña nueva)(opens in a new tab)
Puntos del planPlan items
- D4-REHEARSAL TRABAJO PREVIOPRIOR WORK
- V3-9 PLANIFICADOPLANNED
- V3-14 PLANIFICADOPLANNED
Cuenta de anclaje 2 de 3 · umbrales 2/2/3: en preparación (semana 2).2-of-3 anchoring account · thresholds 2/2/3: in preparation (week 2).
Figura 2 · Qué puede hacer cada claveFigure 2 · What each key can do
DECIDIDO · SEMANA 1DECIDED · WEEK 1PLANIFICADOPLANNEDCon umbrales 2/2/3 (cuenta en preparación, semana 2) y tres firmantes de peso 1, será la propia red de Stellar la que decida, no nuestro código. P = proponente, V = verificador, E = firmante externo al equipo.With thresholds 2/2/3 (account in preparation, week 2) and three signers of weight 1, Stellar's own network will decide, not our code. P = proposer, V = verifier, E = signer from outside the team.
| Quién firmaWho signs | ClavesKeys | Qué hace la redWhat the network does | Por quéWhy |
|---|---|---|---|
| Una clave sola, cualquiera de las tresOne key alone, any of the three | la rechazará (tx_bad_auth)will refuse it (tx_bad_auth) | No podrá anclar y ni siquiera podrá subir el número de secuencia.It will not be able to anchor, or even bump the sequence number. | |
| Proponente + verificadorProposer + verifier | la aceptará: anclaránwill accept it: they will anchor | Será lo normal.This will be the normal case. | |
| Proponente + firmante externoProposer + outside signer | la aceptará: anclaránwill accept it: they will anchor | Será el suplente cuando el verificador esté caído; la conciliación lo mostrará como SUPLENTE.This will be the stand-in when the verifier is down; reconciliation will show it as STAND-IN. | |
| Verificador + firmante externoVerifier + outside signer | la aceptaráwill accept it | Pero la conciliación lo marcará ROTO, porque no es una pareja acordada.But reconciliation will mark it BROKEN, because it is not an agreed pair. | |
| Las tres juntasAll three together | aceptará cambiar firmantes y umbraleswill accept changing signers and thresholds | Nadie más podrá hacerlo.Nobody else will be able to. |
- Lo que la red no garantiza: que el firmante externo participe en cada anclaje (dos claves bastan), qué pareja firmó (lo revisa la conciliación) ni que la entrada sea verdadera.What the network does not guarantee: that the outside signer takes part in every anchor (two keys suffice), which pair signed (reconciliation checks that) or that the input is true.
- Si se pierde una clave, el anclaje sigue pero los firmantes ya no se pueden cambiar. Si se pierden dos, el anclaje se detiene y la recuperación es una cuenta nueva.If one key is lost, anchoring continues but signers can no longer be changed. If two are lost, anchoring stops and recovery means a new account.
Regla decidida y construida en la herramienta de la cuentaRule decided and built into the account tool HECHO · SEMANA 1DONE · WEEK 1 · la cuenta definitivathe real account PLANIFICADOPLANNED
Míralo ocurrir:Watch it happen: La red dice que no →The network says no → · Compruébalo tú →Check it yourself →