¿Qué son?
Los procesos en Stamping.io son flujos de trabajo orquestados que permiten la creación de tareas secuenciales. Estos procesos se diseñan visualmente y se ejecutan como nuevas API REST que pueden ser invocadas desde las dApps de los clientes. En esencia, los procesos son la infraestructura que permite automatizar y gestionar tareas de manera eficiente.
Modo de uso
- Diseño Visual: La creación de procesos se realiza de manera visual y sin necesidad de programación. Los usuarios pueden diseñar flujos de trabajo mediante una interfaz intuitiva y amigable.
- Secuencia de Tareas: Los procesos consisten en una secuencia de tareas que están vinculadas entre sí. Estas tareas se ejecutan de manera ordenada, permitiendo una ejecución paso a paso del flujo de trabajo.
- Parametrización: Se pueden enviar parámetros a las tareas del proceso, lo que brinda flexibilidad y personalización en la ejecución de las tareas. Asimismo, las tareas pueden devolver respuestas que son gestionadas por el propio proceso.
- Finalización como API REST: Al concluir, un proceso se convierte en una nueva API REST, permitiendo su invocación desde las aplicaciones descentralizadas (dApps) de los clientes. Esto facilita la integración de la lógica del proceso en diversas aplicaciones.
Ejemplo
A continuación se muestra una imagen donde se muestra un proceso que permite atestar una imagen:
Beneficios
En una herramienta NoCode (sin código), los procesos desempeñan un papel clave al permitir a los usuarios definir la lógica y comportamientos específicos de un procesos de negocios para conectarla con sus aplicaciones descentralizadas sin la necesidad de escribir código tradicional. Estos procesos son implementados desde interfaces gráficas por cada tarea, en lugar de escribir código manualmente presentando los siguientes beneficios:
- Diseño Intuitivo: La interfaz visual y amigable facilita la creación de flujos de trabajo sin necesidad de conocimientos extensos de programación.
- Automatización Eficiente: Los procesos permiten automatizar tareas de manera secuencial, mejorando la eficiencia en la ejecución de operaciones complejas.
- Integración con dApps: La finalización como API REST facilita la integración de la lógica del proceso en las aplicaciones descentralizadas (dApps) de los clientes.
- Personalización: La capacidad de enviar y recibir parámetros permite una personalización flexible de las tareas en el proceso.
- Interacción con Web3 y Web2: Los procesos pueden abarcar desde la invocación de APIs externas (Web2) hasta la creación de billeteras, interacción con smart contracts (Web3), servidores IPFS, afirmaciones verificables, evidencias digitales, entre otras funcionalidades avanzadas.
En resumen, los procesos en Stamping.io ofrecen una solución No-code para la automatización de flujos de trabajo, brindando a los usuarios la capacidad de diseñar, ejecutar y gestionar tareas de manera visual y eficiente, incluso integrando operaciones complejas de Web3 y Web2. A continuación se muestra la lista de tareas disponibles en el apificador de Stamping.io:
Listado de procesos (tareas)
Wallet compatible con EVM / ECDSA
Una "Wallet Compatible con EVM basada en ECDSA" se refiere a una billetera digital diseñada para interactuar con entornos de máquinas virtuales Ethereum (EVM) y utiliza el algoritmo de firma digital de curva elíptica (ECDSA, por sus siglas en inglés) para garantizar la autenticación y seguridad de las transacciones.
Características:
- ECDSA (Firma de Curva Elíptica): Utiliza el algoritmo ECDSA para generar pares de claves públicas y privadas. Este método de firma digital proporciona seguridad robusta y eficiencia en términos de tamaño de clave.
- Compatible con EVM: Está diseñada para ser compatible con la Ethereum Virtual Machine (EVM), permitiendo la gestión de tokens, ejecución de smart contracts y participación en transacciones dentro del ecosistema Ethereum.
- Gestión de criptoactivos: Permite al usuario gestionar y almacenar criptoactivos compatibles con EVM, como ether (ETH) y tokens ERC-20 y ERC-721.
- Interacción con smart contracts: Facilita la interacción con smart contracts en la cadena de bloques Ethereum. Puede enviar transacciones para ejecutar funciones específicas de contratos inteligentes.
- Firma de transacciones: La firma de transacciones mediante el algoritmo ECDSA garantiza la autenticidad y la integridad de las operaciones realizadas desde la wallet.
Beneficios:
- Transacciones seguras: Permite realizar transacciones seguras y autenticadas en la red Ethereum mediante la firma digital ECDSA.
- Manifestación de voluntad: Haciendo uso de firmas ECDSA un usuario puede firmar aprobaciones.
- Gestión de tokens: Facilita la gestión de tokens estándar ERC-20 y tokens no fungibles (NFT) ERC-721, lo que permite al usuario tener control sobre diversos activos digitales.
- Ejecución de operaciones complejas OnChain: La wallet compatible con EVM permite ejecutar operaciones complejas, como la interacción con contratos inteligentes y la participación en votaciones descentralizadas.
- Compatibilidad con DApps: Puede ser utilizada para interactuar con aplicaciones descentralizadas (DApps) que operan en la red Ethereum, brindando acceso a una variedad de servicios descentralizados.
Una wallet compatible con EVM basada en ECDSA podría ser utilizada para participar en una ICO, gestionar tokens ERC-20, realizar transacciones en DeFi, firmar mensajes y ejecutar operaciones avanzadas en la cadena de bloques Ethereum.
En resumen, usted pueda usar Stamping.io para crear una wallet que sea proporcionada a los usuarios y habilitarles la capacidad de participar en el ecosistema de redes blockchain basadas en EVM de manera segura, gestionar sus criptoactivos y aprovechar las oportunidades ofrecidas por la tecnología blockchain y los contratos inteligentes.
goWalletCreate(Secret, Nonce)
El proceso goWalletCreate() en Stamping.io permite la creación de una billetera mediante la combinación de un código secreto (Secret) y asociarlo a un identificador (nonce opcional). La llave privada asociada se genera utilizando el algoritmo
SHA256
y se basa en la concatenación de secret
y nonce
. Si el nonce es vacío, la llave privada se genera únicamente a partir del secret
.Entradas
- Secret: Código secreto utilizado como componente para la generación de la billetera.
- Nonce (Opcional): Valor opcional utilizado para vincularlo a un identificador del usuario (ej: email, dni, codigointerno, address, etc); además permite fortalecer la generación de la llave privada.
Proceso
- Si el Nonce no está vacío, la llave privada se genera mediante SHA256(secret + nonce).
- Si el Nonce está vacío, la llave privada se genera mediante SHA256(secret).
Salida del proceso
- El address asociado a la llave privada.
- La llave privada generada.
El proceso goWalletCreate() es útil cuando se necesita generar billeteras de forma segura utilizando un código secreto. La inclusión opcional de un nonce mejora la seguridad de la llave privada.
goWalletCreateBIP39(Secret, Lenguaje, #Palabras)
El proceso goWalletCreateBIP39 en Stamping.io facilita la creación de una billetera mediante el estándar BIP39 (Bitcoin Improvement Proposal 39). BIP39 es un método para generar secuencias de palabras mnemotécnicas que representan claves privadas. Este proceso utiliza un código secreto (Secret), elige un lenguaje específico para las palabras mnemotécnicas, y permite determinar la cantidad de palabras a generar.
Entradas
- Secret: Código secreto utilizado como componente para la generación de la billetera.
- Lenguaje: Idioma en el que se generarán las palabras mnemotécnicas (ej. "es" para español, "en" para inglés).
- Cantidad de Palabras: Número que indica la cantidad de palabras mnemotécnicas a generar.
Proceso
- Se utiliza el código secreto para generar una semilla inicial.
- La semilla se convierte en una secuencia de palabras mnemotécnicas según el estándar BIP39 y el idioma especificado.
- La cantidad de palabras generadas se determina por el parámetro Cantidad de Palabras.
Salida del proceso
- El address asociado a la llave privada.
- La llave privada generada.
- La secuencia de palabras mnemotécnicas que representa la billetera generada.
El proceso goWalletCreateBIP39 es útil cuando se requiere una billetera basada en el estándar BIP39, que proporciona una forma mnemotécnica y fácil de recordar para respaldar y recuperar claves privadas.
goWalletSignEthereum(SigningMethod, Message, PrivateKey)
El proceso goWalletSignEthereum en Stamping.io facilita la firma de mensajes utilizando una billetera, permitiendo elegir entre distintos métodos de firma. Los métodos disponibles son "data message" (firma de datos directos), "hash message" (firma de hash del mensaje), y "transaction message" (firma de mensajes de transacción en formato JSON).
Entradas
- SigningMethod: Método de firma a utilizar ("data message", "hash message", "transaction message").
- Message: Mensaje a firmar, que varía según el método elegido.
- PrivateKey: Clave privada asociada a la billetera que realizará la firma.
Proceso
Firma el mensaje según el método de firma seleccionado:
- "data message": Se firma directamente el dato proporcionado en el mensaje.
- "hash message": Se genera un hash del mensaje antes de realizar la firma.
- "transaction message": Se firma un mensaje de transacción en formato JSON.
Salida del proceso
- La firma generada.
El proceso goWalletSignEthereum es útil cuando se requiere la firma de mensajes utilizando una billetera. La posibilidad de elegir el método de firma brinda flexibilidad en la aplicación de la firma según los requisitos específicos. Si no desea exponer su llave privada use: getPrivateKey() o getVariableRemote().
goWalletRecover(SigningMethod, Signature, Message)
El proceso goWalletRecover en Stamping.io facilita la recuperación de la dirección pública asociada a una firma mediante el uso de la firma de curva elíptica ECDSA (Elliptic Curve Digital Signature Algorithm). Se ofrecen diferentes métodos de recuperación dependiendo el método usado para el firmado (goWalletSignEthereum), como "data message" (recuperación de datos directos), "hash message" (recuperación de hash del mensaje), y "transaction message" (recuperación de mensajes de transacción en formato JSON).
Entradas
- SigningMethod: Método de firma a utilizar ("data message", "hash message", "transaction message").
- Signature: Firma ECDSA que se desea recuperar.
- Message: Mensaje firmado, que varía según el método elegido en goWalletSignEthereum().
Proceso
Recupera el 0xaddress directamente desde la firma de datos mediante ECDSA.
Salida del proceso
- La dirección pública recuperada.
El proceso goWalletRecover es útil cuando se necesita recuperar la dirección pública asociada a una firma mediante el uso de ECDSA. La elección del método de recuperación permite adaptarse a diferentes escenarios de aplicación.
goWalletSend(Network, rowTransaction)
El proceso goWalletSend en Stamping.io permite enviar una transacción firmada a una cadena de bloques basada en el protocolo de EVM.
Entradas
- Network: Red blockchain a donde enviará la transacción.
- rowTransaction: Firma ECDSA de la transacción que será enviada.
Proceso
Envia la transacción firmada a un nodo de la red usando un RPC público.
Salida del proceso
- transactionHash: Hash de la transacción.
- log: Log que devuelve la red al ejecutar la transacción.
El proceso goWalletSend es útil cuando se necesita firmar una transacción offchain de modo no asistido y cuya llave privada se encuentra en custodia del usuario.
goWalletReceipt(Network, transactionHash)
El proceso goWalletReceipt en Stamping.io permite obtener el recibo de una transacción en una red blockchain específica, proporcionando detalles detallados sobre la ejecución de la transacción. Se requiere especificar la red blockchain (Network) y el hash de la transacción (transactionHash) que se desea consultar.
Entradas
- Network: Nombre de la red blockchain EVM en la que se realizó la transacción (ej. "ethereum", "fantom", "avalanche", "lacchain", etc...).
- transactionHash: Hash único que identifica la transacción dentro de la red blockchain.
Proceso
Se realiza una consulta a la red blockchain especificada utilizando el hash de la transacción y se recopilan detalles detallados del recibo de la transacción, como estado de ejecución, gas utilizado, confirmaciones, entre otros.
Salida del proceso
Responde el detalle del recibo de la transacción.
- blockNumber: Numero del bloque donde se encuentra la transacción en la red.
- from: Address que envió (firmó) la transacción en la cadena de bloques.
- to: Address de la wallet o smart contrat donde se envió la transacción en la cadena de bloques.
- explorer: URL del explorador oficial de la red blockchain donde se puede fácilmente verificar la transacción.
- network: Nombre de la red blockchain.
- chainid: identificador de la red blockchain.
- icon: Icono de la red blockchain.
- status: Si es verdadero es por que la transacción ha sido correcta.
- response: JSON de la transacción que ha sido almacenada en la cadena de bloques.
El proceso goWalletReceipt es útil cuando se requiere obtener información detallada sobre una transacción específica en una red blockchain. Proporciona una visión completa de la ejecución de la transacción y sus resultados.
goWalletBalance(Network, address)
El proceso goWalletBalance en Stamping.io posibilita la verificación del saldo de criptomonedas asociado a una dirección en redes blockchain compatibles con EVM (Ethereum Virtual Machine). Se deben proporcionar la red blockchain (Network) y la dirección (address) cuyo saldo se desea conocer.
Entradas
- Network: Nombre de la red blockchain EVM en la que se realizó la transacción (ej. "ethereum", "fantom", "avalanche", "lacchain", etc...).
- address: Direección de la billetera que se desea consultar el saldo de criptomonedas que tiene en una red blockchain.
Proceso
Se realiza una consulta a la red blockchain especificada utilizando el hash de la transacción y se recopilan detalles detallados del recibo de la transacción, como estado de ejecución, gas utilizado, confirmaciones, entre otros.
Salida del proceso
Responde el detalle del recibo de la transacción.
- balance: Cantidad de saldo que tiene sin respetar el punto decimal.
- balanceANSI: Cantidad de saldo que tiene considerando los decimales.
- response: JSON de la transacción que ha sido almacenada en la cadena de bloques.
El proceso goWalletBalance es útil cuando se desea verificar el saldo de una dirección en redes blockchain compatibles con EVM. Proporciona información actualizada sobre la cantidad de criptomonedas disponibles en la dirección especificada.
goWalletStamp(Bytes, Keystorage)
El proceso goWalletStamp en Stamping.io posibilita la creación de una wallet especial basado en el cifrado de "El Gamal", que permite crear infinitas direcciones asociadas a una llave privada.
Entradas
- bytes: Tamaño en bytes que tendrá el address a crear, cuando mas bytes ocupa es mas segura pero demora más tiempo en firmar.
- keystorage: Es el contenedor de llaves de Stamping.io. Es un mecanismo de almacenaje seguro para sus llaves, se recomienda usar un hash de tipo SHA256.
Proceso
Genera una wallet basada en el algoritmo de "El Gamal".
Salida del proceso
- address: Dirección de la wallet creada.
- privateKey: Llave privada de la wallet.
goWalletSignStamp(address, signingMethod, message, walletType, privateKey)
El proceso goWalletSignStamp en Stamping.io permite cifrar un mensaje desde una wallet hacia otra.
Entradas
- address: Dirección de la wallet destinataria, para que pueda leer el mensaje es necesario que use su llave privada.
- signingMethod: Método de firma a utilizar ("data message", "hash message", "transaction message", "code number").
- message: Mensaje que será cifrado.
- walletType: Tipo de contenedor de llaves de Stamping.io que uasará para firmar el mensaje. Si usa un keyStorage, se recomienda recomienda usar un hash de tipo SHA256.
- privateKey: Si el tipo de contenedor de su wallet es KeyStorage, debe ingresar el Key, caso contrario, ingrese la llave privada con la que firmará el mensaje.
Proceso
Cifra el mensaje usando el cifrado de "El Gamal". Si desea asegurarse que el firmante ha sido autorizado, puede pedirle previamente que descifre un mensaje que luego debe enviar cifrado, tal como se aprecia en este diagrama de secuencia:
- "data message": Se firma directamente el dato proporcionado en el mensaje.
- "hash message": Se genera un hash del mensaje antes de realizar la firma.
- "transaction message": Se firma un mensaje de transacción en formato JSON.
- "code number": Se firma un numero.
Salida del proceso
- address: Dirección de la wallet creada.
- privateKey: Llave privada de la wallet.
goWalletRecoverStamp(signingMethod, signature, walletType, privateKey)
El proceso goWalletRecoverStamp en Stamping.io permite decifrar un mensaje que ha sido cifrado desde una wallet hacia otra.
Entradas
- signingMethod: Método de firma a utilizar ("data message", "hash message", "transaction message", "code number").
- signature: Mensaje cifrado.
- walletType: Tipo de contenedor de llaves de Stamping.io que uasará para firmar el mensaje. Si usa un keyStorage, se recomienda recomienda usar un hash de tipo SHA256.
- privateKey: Si el tipo de contenedor de su wallet es KeyStorage, debe ingresar el Key, caso contrario, ingrese la llave privada con la que firmará el mensaje.
Proceso
Descifra el mensaje usando el cifrado de "El Gamal". El mensaje dependerá del método usado:
- "data message": Se firma directamente el dato proporcionado en el mensaje.
- "hash message": Se genera un hash del mensaje antes de realizar la firma.
- "transaction message": Se firma un mensaje de transacción en formato JSON.
- "code number": Se firma un numero.
Salida del proceso
- message: Mensaje decifrado.
- response: JSON con los datos de decifrado.
goWalletPay(signingMethod, signature, walletType, privateKey)
El proceso goWalletPay en Stamping.io permite procesar pagos desde una billetera de captura de tarjetas. Este proceso se ejecua desde el backend pero requiere contar con un token que provee el API de checkout de mercadopago cuando se captura los datos del medio de pago del cliente.
Entradas
- signingMethod: Método de firma a utilizar ("data message", "hash message", "transaction message", "code number").
- signature: Mensaje cifrado.
- walletType: Tipo de contenedor de llaves de Stamping.io que uasará para firmar el mensaje. Si usa un keyStorage, se recomienda recomienda usar un hash de tipo SHA256.
- privateKey: Si el tipo de contenedor de su wallet es KeyStorage, debe ingresar el Key, caso contrario, ingrese la llave privada con la que firmará el mensaje.
Proceso
Permite procesar un pago que es capturado desde el cliente de mercadopago, para que funcione correctamente este proceso es necesario que realice un sitio web donde se capure los datos del medio de pago que el cliente usará para adquirir un bien o servicio, para implementarlo debe incluya el SDK de Stamping "https://stamping.io/sdk/mercadopago/pay.js", tal como se muestra en la siguiente imagen:
Ejemplo de código a implementar:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagar con MercadoPago</title>
<script src="https://stamping.io/sdk/mercadopago/pay.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<style>
body, html {
margin: 0;
height: 100%;
width: 100%;
overflow: hidden;
}
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-image: url('/img/logo.png');
background-repeat: repeat;
background-size: 120px auto; /* Ancho de 120px, alto automático */
opacity: 0.2; /* Ajusta este valor para controlar la opacidad del fondo */
z-index: -1; /* Coloca la imagen detrás del contenido */
padding: 10;
}
.content {
position: relative;
z-index: 1; /* Asegura que el contenido esté sobre el fondo */
padding: 20px;
}
</style>
<body>
<div class="container">
<script>
function stampingPayInstance() {
//document.getElementById('payButton').addEventListener('click', function() {
/*Ingrese sus credenciales correctas*/
const myCard = new StampingPAY('{PAY_CODE}',
'{PROCESS_ID}',
'{API_KEY}',
420,
'https://stamping.io/img/favicon.ico',
true,
true,
true,
true,
true,
'AjkMlr6'
);
/*Ingrese los datos del cliente*/
myCard.payment("Entrada Peru-Colombia 9029493",
20.50,
'',
'',
'',
'',
'',
'',
'')
//});
}
</script>
</div>
</body>
</html>
Salida del proceso
- response: JSON con los datos del pago.
EDV (Evidencias Digitales Verificables)
Son un estándar desarrollado por Stamping.io con el propósito de proporcionar un método robusto y verificable para demostrar la existencia y la integridad de una secuencia de datos, documentos, imágenes u otros archivos binarios. Este estándar utiliza diversas redes blockchain para asegurar la validez y la trazabilidad de las evidencias digitales a lo largo del tiempo.
Características:
- Existencia Demostrada: Las EDV permiten demostrar de manera irrefutable la existencia de una secuencia de datos o archivo en un momento específico. Esto se logra mediante el estampado de información relacionada con las evidencias digitales en una red blockchain.
- Integridad Asegurada: La integridad de las evidencias digitales se garantiza utilizando funciones hash y estructuras de datos como árboles Merkle. Cualquier alteración en la secuencia de datos generará un cambio en el hash, lo que facilita la detección de manipulaciones.
- Estándar Interoperable: Las EDV están diseñadas para ser interoperables con diversas redes blockchain. Esto significa que se puede aprovechar la seguridad y las capacidades de distintas blockchains para respaldar y verificar las evidencias digitales.
- Aplicaciones Versátiles: Las aplicaciones de las EDV son diversas y van más allá de la simple demostración de existencia e integridad. Pueden ser utilizadas en casos de uso como certificación de documentos, verificación de autenticidad de archivos multimedia, trazabilidad de activos digitales, entre otros.
Beneficios:
- Prueba Exacta y Privada: Las EDV actúan como un polígrafo digital donde la verificación se realiza mediante el hash del contenido, no exponiendo los datos originales. Esto garantiza la privacidad de la información, ya que solo se verifica la prueba exacta sin necesidad de revelar el contenido real.
- Poligrafo Digital: Al utilizar el hash como método de verificación, las EDV funcionan como un polígrafo digital, ofreciendo una prueba precisa y confiable sin la necesidad de exponer los detalles del contenido.
Las Evidencias Digitales Verificables proporcionan una solución sólida y confiable para respaldar la autenticidad, integridad y existencia de datos digitales. Su naturaleza exacta y privada las convierte en una herramienta valiosa para una variedad de aplicaciones donde la confidencialidad y la veracidad son fundamentales.
goEDVMerkle(URI, flgCreateEDV)
El proceso goEDVMerkle en Stamping.io, permite la creación de un árbol Merkle que agrupa distintas evidencias digitales. Estas evidencias pueden ser hashes de documentos, imágenes o secuencias de datos. El árbol Merkle (también conocido como árbol hash) se utiliza para estructurar y organizar las evidencias digitales, y se puede estampar en la blockchain si se especifica el flag flgCreateEDV.
Entradas
- URI: Identificador único (Uniform Resource Identifier) que referencia el conjunto de evidencias digitales. El URI debe recuperar un JSON donde en el atributo
"attributes":{"hash1", "hash2", "hash3"}
se encuentra un listado (array) de hashes. Ejemplo del contenido que debe devolver el URI:"attributes":{ "730f75dafd73e047b86acb2dbd74e75dcb93272fa084a9082848f2341aa1abb6", "fa084a9082848f2341aa1abb6730f75dafd73e047b86acb2dbd74e75dcb93272", "2dbd74e75dcb93272fa084a9082848f2341aa1abb6730f75dafd73e047b86acb" }
- flgCreateEDV: Flag que indica si se debe crear y estampar el árbol Merkle en la blockchain. Si es true, se realiza el proceso de estampado.
Proceso
Se agrupan las evidencias digitales utilizando un árbol Merkle y el árbol se construye mediante la aplicación sucesiva de funciones hash a pares de evidencias digitales, hasta llegar al hash raíz.
Si flgCreateEDV es true, se estampa el hash raíz del árbol Merkle en la blockchain, proporcionando una prueba verificable de la existencia y estructura de las evidencias digitales en un momento específico.
Salida del proceso
- root: Hash raíz del árbol Merkle creado.
- count: Cantidad de evidencias registradas.
- trxid: identificado de la transacción del estampado.
- evidence: SHA256 del contenido atestado.
- status: Estado del atestado del link del contendo:
"does not exist", "new" o "exist"
. - uriView: URL del visor para verificar el estampado.
- lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo
async=false
. - rollux: Transacción en rollux, solo se muestra cuando se atesta en modo
async=false
. - timestamp: Sello de tiempo de la atestación.
- proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo
async=false
.. - credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo
async=false
. - nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
- response: JSON del resultado de la atestación.
goEDVGetStampLINK(URL, transactionType, options)
El proceso goEDVGetStampLINK en Stamping.io permite leer el contenido de una URL que puede apuntar a un archivo (PDF, imagen, HTML, video, etc.) y calcular el hash de tipo SHA256 para verificar si ha sido estampado en la Blockchain mediante Stamping.io. Si se encuentra el estampado, se muestra la información correspondiente. En caso contrario, dependiendo de las opciones configuradas, puede proceder a estampar el archivo o mostrar un mensaje de estado: "does not exist".
Entradas
- URL: Identificador único (Uniform Resource Identifier) que referencia al archivo que será consultado y/o estampado en la Blockchain.
- transactionType: Etiqueta que permite describir el tipo de transacción que se desea registrar.
- Options: Opciones que se usará en caso de que no exista el archivo.
- Stamp it?: Si es yes, el hash del contenido del URL es atestado en la cadena de bloques.
- Async?: Si es true, el hash del contenido del URL se registra de manera asíncrona, donde se registra en una cola para que en el siguiente bloque sea atestado en la blockchain.
- Show URL?: Si es true, el URL del contenido del archivo se registra en el atestado en la blockchain.
- Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
Proceso
Busca si el hash del contenido del URL se encuentra registrado, caso contrario se registra o muestra el resultado.
Salida del proceso
- trxid: identificado de la transacción del estampado.
- evidence: SHA256 del contenido atestado.
- status: Estado del atestado del link del contendo:
"does not exist", "new" o "exist"
. - uriView: URL del visor para verificar el estampado.
- lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo
async=false
. - rollux: Transacción en rollux, solo se muestra cuando se atesta en modo
async=false
. - timestamp: Sello de tiempo de la atestación.
- proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo
async=false
.. - credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo
async=false
. - nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
- response: JSON del resultado de la atestación.
El proceso goEDVMerkle es útil para organizar y estructurar evidencias digitales de manera verificable mediante un árbol Merkle. El estampado en la blockchain ofrece una capa adicional de seguridad y trazabilidad.
goEDVStamp(hash, transactionType, flgAsync, params, data)
El proceso goEDVStamp en Stamping.io permite atestar un hash de tipo SHA256 para ser estampado en la Blockchain mediante Stamping.io.
Entradas
- hash: SHA256 que será estampado en la Blockchain.
- transactionType: Etiqueta que permite describir el tipo de transacción que se desea registrar.
- Options: Opciones que se usará para estampar el hash.
- Async?: Si es true, el hash del contenido del URL se registra de manera asíncrona, donde se registra en una cola para que en el siguiente bloque sea atestado en la blockchain.
- Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
- Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Se estampa (atesta) en la blockchain un hash de tipo SHA256.
Salida del proceso
- trxid: identificado de la transacción del estampado.
- evidence: SHA256 del contenido atestado.
- uriView: URL del visor para verificar el estampado.
- lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo
async=false
. - rollux: Transacción en rollux, solo se muestra cuando se atesta en modo
async=false
. - timestamp: Sello de tiempo de la atestación.
- proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo
async=false
.. - credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo
async=false
. - nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
- response: JSON del resultado de la atestación.
goEDVStampPDF(contentType, content, options, metadata)
El proceso goEDVStamp en Stamping.io permite atestar un documento PDF en la Blockchain mediante Stamping.io.
Entradas
- contentType: Tipo de contenido que se va a atestar, puede ser el
URL
de un documento PDF o el archivo PDF codificado enbase64
. - content: Contenido que se va a atestar, depende del tipo serleccionado en el atributo
contentType
. - Options: Opciones que se usará para estampar el documento PDF
- Async?: Si es true, el hash del contenido del URL se registra de manera asíncrona, donde se registra en una cola para que en el siguiente bloque sea atestado en la blockchain.
- transactionType: Etiqueta que permite describir el tipo de transacción que se desea registrar.
- target: Tipo de salida del documento PDF atestado, si se selecciona
memory
se devuelve en el atributo de salidafile
comobase64
, si se seleccionastorage
se devuelve como un URL. Tenga en cuenta que cuando el target esmemory
, el atributofileReadAndDelete
viene vacio. - mode: Especifica el tipo de atestación. Si seleccionas
simple
, el documento permanecerá inalterado. Si seleccionascomplete
, el certificado de atestación se insertará en la primera página del documento PDF, tal como se muestra en la imagen siguiente:El certificado de atestación tiene las siguientes características:- Holograma: Se genera usando geometría fractal en función al hash del documento, siendo un elemento visual único.
- QR: Contiene el URL del visor de stamping.io, además es compatible para ser leido con el lector especial de atestaciones: validaQR.com.
- Fingerprint: Hash del tipo SHA256 del documento PDF.
- Emisor: Nombre de la empresa atestadora, se configura desde stamping.io/admin => panel/config/.
- RUC: RUC de la empresa atestadora, se configura desde stamping.io/admin => panel/config/.
- Address: Dirección (
0xaddress
) del atestador del documento.
- Metadata: Opciones adicionales que se usará para estampar el documento PDF.
- Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
- Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Se estampa (atesta) en la blockchain el hash de tipo SHA256 del documento PDF.
Salida del proceso
- trxid: identificado de la transacción del estampado.
- evidence: SHA256 del contenido atestado.
- file: Archivo atestado que puede ser leido múltiples veces, si se selecciona el target de tipo
memory
, se muestra el contenido codificado enbase64
. - fileReadAndDelete: Archivo atestado que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo
memory
, se muestra vacio. - uriView: URL del visor para verificar el estampado.
- lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo
async=false
. - rollux: Transacción en rollux, solo se muestra cuando se atesta en modo
async=false
. - timestamp: Sello de tiempo de la atestación.
- proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo
async=false
.. - credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo
async=false
. - nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
- response: JSON del resultado de la atestación.
goEDVStampIMG(contentType, content, options, metadata)
El proceso goEDVStampIMG en Stamping.io permite atestar una imagen en la Blockchain mediante Stamping.io.
Entradas
- contentType: Tipo de contenido que se va a atestar, puede ser el
URL
de un documento PDF o el archivo PDF codificado enbase64
. - content: Contenido que se va a atestar, depende del tipo serleccionado en el atributo
contentType
. - Options: Opciones que se usará para estampar el documento PDF
- Async?: Si es true, el hash del contenido del URL se registra de manera asíncrona, donde se registra en una cola para que en el siguiente bloque sea atestado en la blockchain.
- Quality: Calidad de la imagen. El valor de pone en porcentaje.
- Esteganografía: Texto que será ocultado dentro de la imagen.
- transactionType: Etiqueta que permite describir el tipo de transacción que se desea registrar.
- target: Tipo de salida de la imagen atestada, si se selecciona
memory
se devuelve en el atributo de salidafile
comobase64
, si se seleccionastorage
se devuelve como un URL. Tenga en cuenta que cuando el target esmemory
, el atributofileReadAndDelete
viene vacio. - mode: Especifica el tipo de atestación. Si seleccionas
attestation only
, se muestra solo el cetificado de atestación. Si se seleccionaimage with attestation
la imagen se muestra con el certificado en la parte superior. Si se seleccionaimage without attestation
la imagen permanecerá inalterada y no se creará el certificado. El certificado se muestra en la imagen siguiente:El certificado de atestación tiene las siguientes características:- Color: El color del holograma esta relacionado con el color de la imagen.
- Holograma: Se genera usando geometría fractal en función al hash del documento, siendo un elemento visual único.
- QR: Contiene el URL del visor de stamping.io, además es compatible para ser leido con el lector especial de atestaciones: validaQR.com.
- Fingerprint: Hash del tipo SHA256 del documento PDF.
- Emisor: Nombre de la empresa atestadora, se configura desde stamping.io/admin => panel/config/.
- Address: Dirección (
0xaddress
) del atestador del documento. - Sello de tiempo: Fecha y hora de registro.
- Metadata: Opciones adicionales que se usará para estampar el documento PDF.
- Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
- Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Se estampa (atesta) en la blockchain el hash de tipo SHA256 de la imagen.
Salida del proceso
- trxid: identificado de la transacción del estampado.
- evidence: SHA256 del contenido atestado.
- file: Archivo atestado que puede ser leido múltiples veces, si se selecciona el target de tipo
memory
, se muestra el contenido codificado enbase64
. - fileReadAndDelete: Archivo atestado que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo
memory
, se muestra vacio. - uriView: URL del visor para verificar el estampado.
- lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo
async=false
. - rollux: Transacción en rollux, solo se muestra cuando se atesta en modo
async=false
. - timestamp: Sello de tiempo de la atestación.
- proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo
async=false
.. - credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo
async=false
. - nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
- response: JSON del resultado de la atestación.
goEDVSignBot(certificateP12, documentPDF, appearance, options)
El proceso EDVSignBot en Stamping.io permite firmar digitalmente un documento PDF usando el agente automatizado de Stamping.io.
Entradas
- contentType (p12): Tipo de contenido del certificado p12, puede ser el
URL
de un documento PDF o el archivo PDF codificado enbase64
. - content (p12): Contenido del certificado p12, depende del tipo serleccionado en el atributo
contentType
. - password (p12): Contraseña del certificado P12.
- contentType (pdf): Tipo de contenido que se va a atestar, puede ser el
URL
de un documento PDF o el archivo PDF codificado enbase64
. - content (pdf): Contenido que se va a atestar, depende del tipo serleccionado en el atributo
contentType
. - appearance: Opciones de apariencia que se usará para firmar el documento PDF
- Page: Número de página donde se incluye la imagen de la firma del documento.
- Show: Si es true se muestra la inmagen, sino se oculta.
- Image: URL de la imagen que será usada al lado derecho de la firma.
- PosX: Posición inferior donde se coloca la imagen de la firma. Se inicia desde la parte suerior en cero, el valor es positivo.
- PosY: Posición lateral izquierda donde se coloca la imagen de la firma. Se inicia desde la parte izquierda en cero, el valor es positivo.
- Height: Altura en pixeles de la imagen. Se recomienda usar el valor: 240
- Width: Ancho en pixeles de la imagen. Se recomienda usar el valor: 80. Para una mejor apariencia, se recomienda matener la relación de altura/ancho en 3:1
Options
Entradas
- Metadata properties: Propiedades que se incluyen en la metadata del documento PDF junto con la firma:
- Name: Nombre del firmante.
- Reason: Razón de la firma.
- Location: Ciudad/pais donde se firma.
- contact: Datos de contacto del firmante.
- Text inside the image: Texto que se incluye en la imagen de la firma, mejorando su apariencia:
- Line1: Primera línea de la firma.
- Line2: Segunda línea de la firma.
- Line3: Tercera línea de la firma.
- Line4: Cuarta línea de la firma.
- Line5: Quinta línea de la firma.
Proceso
Se firma digitalmente un documento PDF usando un certificado p12 y se devuelve el documento firmado.
Salida del proceso
- fileid: identificado del documento.
- file: Documento PDF firmado que puede ser leido múltiples veces, si se selecciona el target de tipo
memory
, se muestra el contenido codificado enbase64
. - fileReadAndDelete: Documento PDF firmado que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo
memory
, se muestra vacio. - hash: Hash del documento firmado.
- response: JSON del resultado de la firma.
goEDVStamphCRC(secret, nonce, options, metadata)
El proceso goEDVStamphCRC en Stamping.io permite crear una holograma de validación de reduncancia de una atestación. Esta imagen se genera en función a un hash de tipo
SHA1
que puede ser calculada dependiendo del modo de geneación que seleccione. La imagen sirve como un sello de comprobación para detectar alguna alteraciónn en una imagen o en un documento PDF. Un ejemplo de holograma se muestra así:Entradas
- secret: Hash de tipo SHA1 que será usado como base para crear el holograma.
- nonce: Hash o secreto que es usado para enmascarar el secreto.
- Options: Opciones que se usará para estampar el documento PDF
- Mode: Seleccione el tipo de contenido que se creará en el holograma, puede ser de tres tipos:
Simple: Secret
Hidden: sha1(sha256(Secret.nonce))
Signer: sha1(sha256(Secret.sha256(getPrivateKey()).nonce))
- Attestation: Si es true se atesta en la blockchain.
- Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
- Metadata: Opciones adicionales que se usará para estampar el documento PDF.
- Data: Datos adicionales que pueden incluir en el proceso de atestado del documento, puede estar cifrado, en base64 y en formatos variables como JSON, XML, texto libre o valores binarios. No puede ser mayor a 1024 bytes.
Proceso
Crea una imagen como holograma de un hash de tipo SHA1 que es usado para comprobar redundancia e integridad de una imagen o documento.
Salida del proceso
- checksum: Código binario usado en el holograma.
- trxid: identificado de la transacción del estampado.
- evidence: SHA256 del contenido atestado.
- file: Imagen del holograma que puede ser leido múltiples veces, si se selecciona el target de tipo
memory
, se muestra el contenido codificado enbase64
. - fileReadAndDelete: Imagen del holograma que sólo puede ser leido una vez y se elimina del servidor, si se selecciona el target de tipo
memory
, se muestra vacio. - uriView: URL del visor para verificar el estampado.
- lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo
async=false
. - rollux: Transacción en rollux, solo se muestra cuando se atesta en modo
async=false
. - timestamp: Sello de tiempo de la atestación.
- proof: firma del emisor de la atestación, solo se muestra cuando se atesta en modo
async=false
.. - credential: Credencial verificable de la atestación, solo se muestra cuando se atesta en modo
async=false
. - nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
- response: JSON del resultado de la atestación.
goEDVGet(trxid, params)
El proceso goEDVGet en Stamping.io permite recuperar los datos que se encuentran registrados en las distintas cadenas de bloques donde fue atestado.
Entradas
- trxid: Es el identificador que retorna Stamping.io cuando atesta alguna evidencia en la blockchain. Se calcula
sha1(evidence)
. - Params: Parámetros adicionales que pueden incluir en el proceso de atestado del documento, coordenadas de latitud y longitud, resumen, entre otros.
Proceso
Recupera los datos de atestación basado en un trxid.
Salida del proceso
- evidence: SHA256 del contenido atestado.
- uriView: URL del visor para verificar el estampado.
- hash2: segundo SHA256 del contenido atestado.
- hash3: tercer SHA256 del contenido atestado.
- url: URL asociado al contenido atestado.
- data: datos asociada al contenido atestado.
- timestamp: Sello de tiempo de la atestación.
- anchored: Sello de tiempo cuando fue confirmada en la cadena de bloques.
- ipfs: CID del servidor IPFS donde se encuentran agrupadas los hashes que ingresaron juntos en una atestación.
- lacchain: Transacción en lacchain, solo se muestra cuando se atesta en modo
async=false
. - rollux: Transacción en rollux, solo se muestra cuando se atesta en modo
async=false
. - nonce: Codigo autogenerado y único de la atestación, es usado para el firmado.
- response: JSON del resultado de la atestación.