Código y permanencia

Un registro que sobrevive a quien lo opera.

La especificación, el código y los datos públicos son abiertos, y cada día queda anclado en Bitcoin. Si el operador desapareciera mañana, cualquiera podría comprobar lo que hay y seguir sirviéndolo.

Repositorio público en preparación

El código se publicará en un repositorio público con las licencias de abajo. Hasta entonces, el verificador y el código de referencia ya se pueden descargar aquí.

Qué es abierto

Cada pieza, con su licencia.

PiezaLicenciaQué permite
EspecificaciónCC BY 4.0Copiar, adaptar e implementar, citando la fuente.
Implementación de referencia del PID (parcid.py, parcid.js)CC0 1.0Dominio público: úsala sin condiciones.
Verificador independiente (parcid-verify.js, cli.mjs)CC0 1.0Comprobar actas, pruebas y exportaciones sin preguntar al registro.
Resolutor, API y herramienta de operaciónApache-2.0Levantar un espejo o un registro compatible, con licencia de patentes.
Datos públicos y exportación diariaCC0 1.0Reutilizar la parte pública del registro sin condiciones.
Modelos de comparación del operadorNo abiertosEl formato de la firma física es público; el motor que compara es de cada operador.

Transparencia

Un libro que solo se puede alargar.

  1. Libro solo de añadir

    Toda acta sellada entra en un libro con número de orden. Nada se borra ni se corrige: una enmienda es otra acta.

  2. Árbol Merkle diario

    Cada día UTC se cierra en un árbol Merkle RFC 6962. Cada acta tiene su prueba de inclusión en /api/v1/parcels/{PID}/proof.

  3. Declaración encadenada

    La raíz del día va en una declaración firmada con Ed25519 que incluye la huella de la del día anterior.

  4. Ancla en Bitcoin

    La declaración se ancla con OpenTimestamps. Sin tokens, sin NFT y sin carteras: solo una huella dentro de un bloque.

Estado del registro

Espejos

Cómo levantar un espejo.

Un espejo no necesita permiso ni la lista de PID: la exportación identifica cada unidad por una huella con sal propia, así que un espejo resuelve un PID que le preguntan recalculando esa huella con la sal de cada unidad, sin poder sacar nunca la lista.

  1. Descarga la exportación diaria

    GET /api/v1/export da el índice; cada fichero .jsonl.gz trae las unidades, las actas del libro, las anclas y un manifiesto firmado. CC0.

  2. Verifícala antes de servirla

    node cli.mjs export parcid-export-AAAAMMDD.jsonl.gz recalcula raíces, firmas y la cadena de días. Si algo no cuadra, no la sirvas.

  3. Despliega el resolutor

    Cuando el repositorio sea público: PHP 8.4 y MySQL 8, con la misma API de lectura. Publica tu propio /.well-known/parcid diciendo de qué registro eres espejo.

  4. Síguelo cada día

    Importa la exportación nueva, comprueba que su primera declaración se encadena con la última que tenías y vigila que el ancla diaria siga llegando.

Verificar sin nosotros

Ni esta web hace falta.

El verificador es un único fichero JavaScript sin dependencias que funciona igual en el navegador y en Node 20 o superior. Descárgalo junto a cli.mjs y ejecútalo donde quieras.

Sale con 0 si todo verifica y con 1 si algo no cuadra: sirve para tareas programadas.

O en el navegador

node cli.mjs proof PID-1-7QC3-Z79D-G6RZ-8E

Prueba de inclusión de cada acta de una unidad, firma y ancla del día.

node cli.mjs record acta.json

Un acta guardada por su titular: huella y firma del registro.

node cli.mjs export parcid-export-AAAAMMDD.jsonl.gz

Una exportación completa: contenido, manifiesto, raíces, cadena y firmas.

node cli.mjs ots fichero.ots --bitcoin

Una prueba OpenTimestamps suelta, contrastada con un explorador de Bitcoin.

Permanencia

Compromisos para que dure. Compromisos · aún no publicados

Esto es lo que el operador se compromete a hacer. Cuando cada pieza esté publicada, aquí aparecerá su enlace o su identificador.

Exportación en Arweave

Cada exportación diaria se copiará en Arweave, un almacenamiento pagado una vez y pensado para no borrarse.

Código en Software Heritage

El repositorio público se archivará en Software Heritage, el archivo universal del código fuente.

Especificación en Zenodo

Cada versión de la especificación se depositará en Zenodo con un DOI, para citarla y encontrarla siempre.

Resguardo a precio de coste

Las evidencias que un titular quiera conservar tendrán un resguardo perpetuo a precio de coste.

Interruptor de continuidad de 90 días

Si el operador deja de publicar el ancla diaria durante 90 días seguidos, el compromiso de cesión se activa solo: cualquier espejo que tenga la cadena verificada puede continuar el registro, con la misma especificación y los mismos PID.