Verificar
Es lo único que prueba una verificación. Escriba un día, una raíz o una transacción, y su navegador la resuelve contra el nodo público sin nada nuestro en medio.
En resumen
Resultado
consultando el nodo…
Esto busca anclas, no contratos. Un número de contrato no devuelve nada, porque las pruebas por registro que permitirían comprobar un contrato suelto no se sirven en ninguna dirección pública. Podríamos poner una casilla que devolviera algo en verde, y no estaría comprobando nada.
El alcance
La raíz se calcula sobre el archivo tal como estaba el día que se ancló. Compararla responde una sola pregunta: si la copia que usted tiene enfrente es la de ese día.
Sirve para una sola cosa: que el pasado publicado no se pueda editar en silencio.
Que un registro no haya cambiado no dice nada de quién lo firmó. Qué organizaciones son reales y quién respondió por ellas es otro registro, y vive en Organizaciones.
La regla
El programa que guarda estos valores se niega a escribir sobre una clave que ya existe. Se puede agregar un día. No se puede corregir uno.
Un sistema capaz de reescribir su propia historia es justamente lo que esto existe para detectar.
La regla nos aplica a nosotros primero. Un error nuestro no se puede acomodar después: queda publicado bajo el día en que se escribió, y cualquiera que compare lo encuentra. Un verificador capaz de editar su propio registro no valdría más que la palabra de quien lo opera.
El procedimiento
La consulta de arriba le da la raíz. Lo que no puede hacer es comparar un registro contra ella por usted, así que esta es la parte que se hace a mano, y exige el archivo completo del día anclado.
Hace falta el archivo entero porque comprobar un registro solo exige las hojas hermanas de su rama, y esas no se sirven en ningún lugar público. Esa única pieza que falta es la diferencia entre la consulta de arriba y una herramienta capaz de responder por un contrato.
Pendiente
Cada una de estas aparecerá acá cuando funcione, de una forma que usted pueda comprobar y no que tenga que aceptarnos.
Los valores viven como entradas de datos en la cuenta pública 3DTwG5ZydbJDuLdEmwfgDEH3NuwDrgwQFtF, legibles sin cuenta ni clave en mainnet-node.decentralchain.io/addresses/data/3DTwG5ZydbJDuLdEmwfgDEH3NuwDrgwQFtF.
Cada día anclado escribe dos claves. root_<día>_<AAAAMM> guarda la raíz Merkle como 64 caracteres hexadecimales. meta_<día>_<AAAAMM> guarda un solo texto con tres campos separados por una barra vertical: canonVersion | recordCount | archiveSha256. La clave latest guarda el día anclado más reciente. El sufijo de mes no se deduce del día, así que una clave se encuentra por prefijo y no se arma.
Una consulta por día y una por raíz se responden con esa sola petición. Un id de transacción se le pregunta a /transactions/info/<id>, y la transacción que escribió cada clave viene de mainnet-node.decentralchain.io/transactions/address/3DTwG5ZydbJDuLdEmwfgDEH3NuwDrgwQFtF/limit/100. El nodo refleja el origen que consulta, así que todo se interroga directamente desde su navegador sin nada nuestro en medio. Leer cualquiera de esas direcciones desde una terminal devuelve el mismo JSON, y que discrepe de lo impreso arriba es justamente el motivo de publicarlas.
Preguntas