¿Qué son los mosaicos de blockchain y cómo se pueden implementar en el Internet de las Cosas?
Lección 1 en NEM: Transacción de mosaicos
Una de las características clave de la cadena de bloques NEM es que puede representar un objeto con un activo digital, conocido como mosaico. Cada mosaico tiene una identificación única y no se puede duplicar, utilizando mosaicos, podemos usarlo para representar entradas para conciertos, propiedades terrestres, etc.
Un mosaico podría ser un token, pero también podría ser una colección de activos más especializados, como puntos de recompensa, acciones, firmas, indicadores de estado, votos o incluso otras monedas.
La historia hasta ahora…
De la publicación anterior, hemos aprendido cómo construir nuestra propia cadena privada en nuestro host local usando la versión de la Vaca NAP Catapult. En este post, voy a presentar cómo hacer una transacción (y lo que eso significa) en cadenas públicas, y cómo se puede aplicar con un caso de uso real que yo mismo he desarrollado.
Recogiendo donde lo dejamos.
Logramos dirigir nuestra propia cadena privada, pero ¿qué hacemos con ella? Intentemos realizar una transacción en mosaico, es decir, transferir activos digitales de una cuenta a otra, pero primero, intentemos hacerlo en una cadena pública, ya que la versión de la cadena privada ya se realizó en este blog. Pero antes de continuar con ese sitio web, finalice primero la parte de inicio, ya que las bibliotecas tienen algunos problemas.
Empezando
Necesita instalar nodejs en su PC, diríjase a https://nodejs.org/en/ para obtener el instalador .exe.
Para comunicarse con nuestra cadena privada, instale las siguientes dependencias en su PC.
npm install –global nem2-cli@0.11.3
Estamos utilizando la versión cow porque es la versión estable en las versiones de Catapult.
¡Las llaves privadas son PELIGROSAS!
Nunca le dé sus claves privadas a nadie, son básicamente como su contraseña para acceder a su cuenta de blockchain, las claves privadas se generan usando un algoritmo llamado SHA3-256, que crea una cadena hexadecimal de 256 caracteres, lo genial de esto es que el proceso Es casi irreversible. Lo que significa que es casi difícil adivinar cómo está tu contraseña en forma de texto normal. Comencemos generando su propia clave privada aquí.
Ejecuta lo siguiente y pega la clave privada que generaste. Asegúrese de que la URL de su nodo esté utilizando http://40.90.163.184:3000
nem2-cli profile create |
Introduzca el tipo de red (MIJIN_TEST, MIJIN, MAIN_NET, TEST_NET): MIJIN_TESTIntroduzca su clave privada: 76 ******************************************** **************** FFIntroduzca NEM 2 Node URL. (Ejemplo: http: // localhost: 3000): http://40.90.163.184:3000Inserte el nombre del perfil (en blanco significa predeterminado y podría sobrescribir el perfil anterior): Hank Bot |
Salida
Perfil almacenado correctamenteprueba bot->Red: MIJIN_TESTUrl: http://40.90.163.184:3000Dirección: *************************************Llave pública: *************************************Llave privada: ************************************* |
Guárdelo en un lugar fuera de línea (póngalo en un archivo .txt e imprímalo o algo)
Amando mosaicos
La cuenta que generó no tiene mosaicos en su inventario, por lo que le solicitamos algunos gratis yendo a https://nf-catapult-testnet.herokuapp.com/.
Inserte la dirección que creó desde su terminal (debe comenzar con una S) y solicite 10 cantidades de mosaicos, presione el botón “¡CLAIM!”.
Ahora vuelve a tu terminal y ejecuta el siguiente bash:
nem2-cli account info –profile “<name>”
Notará que “no existe ningún recurso con el ID‘ <dirección ‘”al principio, esto es porque MIJIN TESTNET todavía está procesando la transacción. Las cuentas que antes no realizaban transacciones no se registraban en la cadena de bloques, por lo que nem2-cli no podía rastrear los registros (para empezar, no había ninguna).
Tiempo de transacción!
Repita la sección “Las claves privadas son peligrosas”, ya que necesita dos cuentas para esto, pero esta vez la otra cuenta no necesita pedir mosaicos de la red de prueba.
Ejecuta esto en la terminal:
nem2-cli transaction transfer –profile <sender> –recipient <address> –mosaics <mosaicID>::1 |
Para comprobar si su otra cuenta lo ha recibido:
nem2-cli account info –profile “<recipient name> |
Una solución de Internet de las cosas.
Ahora que tenemos una base de cómo funciona eso, me gustaría compartir mi proyecto de usar mosaicos NEM como una solución potencial para cifrar y registrar datos de IoT, proporcionando el siguiente nivel de seguridad.
Este proyecto está diseñado para demostrar cómo se pueden usar los mosaicos como un boleto para etiquetas RFID, por lo que cada vez que un cliente usa una etiqueta RFID, su cuenta de blockchain realiza una transferencia de mosaico a la cuenta principal, lo que significa que ha usado un boleto, si es que muchos más mosaicos, todavía se le permite escanear la tarjeta hasta que todos sus mosaicos se agoten.
¿Cómo funciona?
Entonces, cuando alguien usa una tarjeta RFID para escanear, la información se cifra mediante los protocolos LoRa, luego se envía a través de una onda de radio (915 MHz) a un receptor, el receptor extrae la información y solicita la contraseña, la información y la contraseña (sal) se combinan y se procesan con hash usando SHA256, esto se usa como una clave privada para transferir un mosaico a una dirección en la red de prueba MIJIN en http://40.90.163.184:8000/#/blocks/0.
El código para este proyecto se puede encontrar en https://github.com/HankRobot/LoRaBlockchain
Posibles mejoras y desarrollos
Veamos qué desarrollos adicionales podemos hacer con las características de los mosaicos:
Propiedad | Tipo | Descripción |
Divisibilidad | Entero | Determina hasta qué punto decimal se puede dividir el mosaico. La divisibilidad de 3 significa que un mosaico se puede dividir en partes más pequeñas de 0.001 mosaicos. La divisibilidad debe estar en el rango de 0 y 6. |
Duración | Entero | Especifica el número de bloques confirmados para los que se alquila el mosaico. Se permite una duración de hasta 3650 días (10 años). Para crear mosaicos que no caducan, deje esta propiedad sin definir. |
Suministro Inicial | Entero | Indica la cantidad de mosaico en circulación. El suministro total debe estar en el rango de 0 y 9,000,000,000,000,000 unidades atómicas (cantidad absoluta). |
Suministro Mutable | Booleano | Si se establece en verdadero, la fuente de mosaico puede cambiar en un momento posterior. De lo contrario, el suministro de mosaico permanece inmutable. |
Transferibilidad | Booleano | Si se establece en verdadero, el mosaico se puede transferir entre cuentas arbitrarias. De lo contrario, el mosaico solo se puede transferir de nuevo al creador del mosaico. |
Cada mosaico tiene un identificador único y un conjunto de propiedades configurables. Durante la creación del mosaico, puede definir:
Una de las características clave de los mosaicos que realmente me llamó la atención es la duración y la capacidad de transferencia, de esta manera podemos evitar los problemas de reventa de boletos y establecer una fecha límite para que los clientes accedan a ciertos servicios, como el acceso RFID.
Fuente: HankRobot webPage