Envío de un bloque de datos
Este es el método principal de la API y permitirá enviar un bloque de datos en formato JSON y enlazarlo a otros bloques de datos permitiendo la trazabilidad de toda la cadena. Cada bloque de datos será persistido en Blockchain para garantizar su inmutabilidad y existencia.
Método de la API
El endpoint de la API sobre el que se realiza la llamada es /api/proof
sobre la que se realiza una operación de tipo POST
.
Input
El método recogerá los siguientes parámetros:
tx (opcional): Código de transacción existente sobre la que enlazar el bloque de datos enviado.
payload: Bloque de datos en formato JSON a enviar.
Si no se envía el parámetro tx, Tracemate entenderá que no se desea enlazar el bloque enviado con ningún otro por lo que se empezará una cadena nueva.
Ejemplos de envío
- CURL
- Javascript
- Python
curl https://TRACEMATE-URL/api/proof
-X POST
-H "Content-Type: application/json"
-H "X-Tracemate-APIKey: TRACEMATE-API-KEY"
-H "X-Tracemate-Locale: TRACEMATE_ISO_CODE"
--data '{"payload": {"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',
{"payload": {"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"
data = {"payload": {"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.
Ejemplos de envío con bloque enlazado
En los siguientes ejemplos la diferencia radica en el uso de la variable parentTX
la cual apunta a una transacción Blockchain que queremos enlazar para generar trazabilidad:
- CURL
- Javascript
- Python
curl https://TRACEMATE-URL/api/proof
-X POST
-H "Content-Type: application/json"
-H "X-Tracemate-APIKey: TRACEMATE-API-KEY"
-H "X-Tracemate-Locale: TRACEMATE_ISO_CODE"
--data '{"parentTX": "7aac2f5cc6efc88a65c788ce6ffc4fa128e056492b7dbe959523d7483e4651ae",
"payload": {"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',
{"parentTX": "7aac2f5cc6efc88a65c788ce6ffc4fa128e056492b7dbe959523d7483e4651ae",
"payload": {"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"
data = {"parentTX": "7aac2f5cc6efc88a65c788ce6ffc4fa128e056492b7dbe959523d7483e4651ae",
"payload": {"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.
Output
La salida del método será compuesta por los siguientes parámetros:
- tx: Código de transacción generada con el envío realizado.
- hash: Hash generado de la información (payload) enviado en la llamada.
- fee: Gasto en Euros empleado en la confirmación de la transacción de Blockchain.
- payload: Información enviada en el cuerpo del mensaje.
- confirmations: Número de confirmaciones de la comunidad de mineros sobre esta transacción.
- createdAt: Fecha y hora de envío de esta transacción.
Ejemplos de respuesta
Se muestra a continuación un ejemplo de devolución en la llamada:
"tx": "fc238483ecef71926983ec3ffabd6cdf7bf82be106454e694531c38139f9f7c5",
"hash": "c9643118290dec1f6b887a8e1f0dacaf22d40428",
"payload": "{\"data\": \"Esto es una prueba de texto más largo.....Texto de prueba\"}",
"confirmations": 0,
"createdAt": "2023-10-20T10:35:14.530Z"
Puedes comprobar siempre que la transacción es una transacción válida de la red de Bitcoin usando los exploradores de transacciones:
- Red de testnet: https://blockstream.info/testnet/
- Red real: https://blockstream.info/
El significado de los parámetros es el siguiente:
- tx: Código de la transacción Blockchain.
- hash: Resumen hash del payload enviado.
- payload: Datos enviados en la transacción generada.
- confirmations: Número de confirmaciones de la transacción en la red de Blockchain.
- createdAt: Fecha y hora de la transacción generada.
Es muy importante guardar el argumento tx
para poder enlazar futuras transacciones tal como se especifica en el input de este documento.