Comprobación de una cadena de datos
Este método permitirá verificar la trazabilidad de la cadena de bloques de información a partir de un código de transacción de cualquiera de estos bloques.
Método de la API
El endpoint de la API sobre el que se realiza la llamada es /api/proof/verify
sobre la que se realiza una operación de tipo POST
.
Input
Código de transacción del bloque de información: Se enviará el código de transacción de cualquiera de los bloques de información enviado.
- tx: Código de la transacción a partir de la cual queremos conocer toda la cadena de datos.
- data: Datos enviados en la creación de la transacción para comprobar la integridad de los datos guardados en la red de Blockchain.
Este realiza los siguientes pasos:
- Obtener la información de la transacción de la red de Blockchain.
- Certificar que dicha transacción pertenece al usuario que solicita la verificación.
- De la información guardada en la transacción de Blockchain se obtiene la firma hash (sha-1) de los datos enviados
- Se compara la firma de los datos enviados en la transacción con los datos enviados en esta llamada
- Si coinciden las firmas se verifica la transacción.
Ejemplos de envío
- CURL
- Javascript
- Python
curl https://TRACEMATE-URL/api/proof/verify
-X POST
-H "Content-Type: application/json"
-H "X-Tracemate-APIKey: TRACEMATE-API-KEY"
-H "X-Tracemate-Locale: TRACEMATE_ISO_CODE"
--data '{
"tx": "fc238483ecef71926983ec3ffabd6cdf7bf82be106454e694531c38139f9f7c5",
"data": {"data": "Una prueba de envio de datos", "data2": "Otros datos enviados"}
}'
import axios from 'axios';
const response = await axios.post('https://TRACEMATE-URL/api/proof/verify',
{
"tx": "fc238483ecef71926983ec3ffabd6cdf7bf82be106454e694531c38139f9f7c5",
"data": {"data": "Una prueba de envio de datos", "data2": "Otros datos enviados"}
} , {
headers: {
'Content-Type': 'application/json',
'X-Tracemate-APIKey': 'TRACEMATE-API-KEY'
'X-Tracemate-Locale': 'TRACEMATE_ISO_CODE'
}
})
import requests
url = "https://TRACEMATE-URL/api/proof/verify"
data = {
"tx": "fc238483ecef71926983ec3ffabd6cdf7bf82be106454e694531c38139f9f7c5",
"data": {"data": "Una prueba de envio de datos", "data2": "Otros datos enviados"}
}
response = requests.post(url, json=data)
Se deberían sustituir las siguientes variables:
- TRACEMATE_URL: Con la URL de Tracemate según el modo de funcionamiento (Por ej:
api-test.tracemate.cloud
para el entorno de pruebas) - TRACEMATE-API-KEY: Con la API Key de la licencia de uso.
- TRACEMATE_ISO_CODE: Con el código ISO del idioma con el que se desea operar con Tracemate.
El sistema verificará que el código de transacción es válido y pertenece a una cadena del cliente que solicita la llamada a este servicio.
Output
Listado de bloques de información: se enviará un listado con los bloques de información registrados hasta el bloque enviado como input en este servicio.
Ejemplo de respuesta
El sistema enviará la siguiente información de respuesta:
{
"code": 200,
"data": {
"dataHash": "322948144e20c69370a3f0707505346fe275f1b5",
"verified": true,
"confirmations": 3194
},
"payload": {},
"timestamp": "2023-10-24T14:24:46.565Z"
}
donde:
- dataHash: Es la firma hash (sha-1) localizada en la transacción de Blockchain y que ha sido comparada con la firma hash del payload enviado en esta llamada.
- verified: Indicará
true
ofalse
en caso de que se verifique la transacción o no. - confirmations: Número de confirmaciones de la transacción en la red de Blockchain.
Se entenderá que una transacción ha sido confirmada y por tanto fiable a partir de 3 confirmaciones en la red de Blockchain.