API Rest para registrar en la Blockchain usando Stamping.io — Paso a paso

Diagrama de Arquitectura de uso de la AP Rest de Stamping.io

Resumen

En presente documento explica en forma sencilla el uso de la API Rest de Stamping.io tanto para estampar “hashes” o leerlos de la Blockchain.

Paso 1: Creación del token de acceso

La manera mas sencilla es ingresando a: https://stamping.io, e ingresar a la opción que dice Data Wallet, tal como se muestra en la siguiente imagen:

Página principal de Stamping.io
Pantalla de inicio de sesión a la consola de Stamping.io
Formulario para la creación de un token de acceso a Stamping.io
Mensaje satisfactoria cuando se ha creado un token de acceso a Stamping.io
Pantalla del panel de la consola de Stamping.io
Imagen de la ubicación del Data wallet de un usuario de Stamping.io
Pantalla de Billetera de Datos
  • Token de Acceso — Es la opción que necesitamos, es para generar las credenciales de acceso al uso de la API Rest.
  • Webhook — Conocidos también como callback o eventos, es decir, cuando se realizan estampados en la Blockchain un servicio automático de Stamping.io va a “repostear” (reenviar) los datos y la respuesta obtenida al servicio que usted haya dado de alta, permitiendo crear eventos o estados de listen.
  • PKI — Par de llaves que se usan para firmar / cifrar en la Blockchain de Stamping.io.
Token de Acceso al uso de la API Rest de Stamping.io
Mensaje mostrado cuando se generan las credenciales de acceso a las API Rest de Stamping.io

Paso 2: Estampando en la Blockchain

Si desea conectarse usando el requestHeader de Authorization Basic, deberá usar el token:

var TokenAcceso = "MTU5MTIwODQ4MzA2MDpmMmM3ZjlkOWYyODU0NGVkNzJmY2E2ZjJhZDExNQ=="
var datosPOST="evidence=”+xhash
var request = new XMLHttpRequest();
request.open("POST", "https://api.stamping.io/stamp/?"+datosPOST);
request.setRequestHeader("Authorization", "Basic " + TokenAcceso);
request.onreadystatechange = function () {
if (this.readyState === 4) {
resp = JSON.parse(this.responseText)
console.log(resp)
}
}
request.send()

Enviar datos

Datos que pueden “postearse”:

  • subject (opcional): Asunto o titulo asociado al estampado.
  • reference (opcional): TRXID asociado o referenciado a este registro, por lo general es la forma de registrar una traza y asociarlo a un activo que se ha tokenizado en la Blockchain para generar su trazabilidad. En este caso, el registro que esta referenciando seria una “traza” y el token que esta siendo referenciado seria el activo de valor que se esta gestionando su trazabilidad.
  • hash2 y hash3 (opcional): Hash del tipo SHA256 alternativo que se utiliza cuando el stamper que esta registrando en la Blockchain desea crear una evidencia y además tokenizar el registro para que en función a este token se pueda generar trazabilidad o demostrar su existencia asociado a la evidencia principal.
  • data (opcional): Datos asociados el registro, puede almacenarse valores cifrados, firmados o no. Se recomienda que estos datos se encuentren registrados en base64 o Hexadecimal para evitar tener conflicto con los acentos o caracteres especiales producto de un valor firmado o cifrado. Tenga en cuenta que si usa el visor estándar de Stamping.io (https://stamping.io/visor/?<TrxID>) se debe registrar en base64 caso contrario se mostrará como error.
  • transactionType: Tipo de transacción. Se recomienda usar una nomenclatura similar a usado en un namespace.
  • lat y long (opcional): Latitud y/o longitud donde se realizo el estampado.
  • url (opcional): URL asociado al registro que se esta estampado, suele usarse para colocar la dirección URI del documento, audio, video, json o cualquier archivo digital que esté asociado al registro y que al calcularle el hash del tipo SHA256 es equivalente al que se encuentra en evidence, hash2 o hash3.

Respuesta

La respuesta de estos valores se reciben de la siguiente manera:

{
"code":"200",
"message":"ok",
"trxid":"403c98bd076a89d9f07f7db08eca667322c492c3",
"timestamp":1591210562000,
"blockNumber":"",
"lacchainId":"0xdad53bae1211a76865db80b198b9f4ebc90e665962cc8b4c3bc007fa0fe96697"
}
  • message: Mensaje de Error, si se muestra “ok” indica que el registro es satisfactorio.
  • trxid: Identificador del token o evidencia creado en Stamping.io
  • timestamp: Fecha y Hora en format UNIX que indica el momento en que se creó la transacción.
  • blockNumber y lacchainId: Desactualizados, se mantiene por compatibilidad, favor no usar.

Paso 3: Leer valores de la Blockchain de Stamping.io

Para leer los valores de la Blockchain de Stamping.io no se requiere tener token de acceso pero si es necesario contar con el hash o el trxid de la transacción.

Stamping.io es una red de nodos Blockchain que permiten estampar evidencias digitales para demostrar su existencia en un momento del tiempo.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store