UM2606
Manual de usuario
Comenzando con el libro mayor distribuido de IOTA
Expansión de software de tecnología para STM32Cube
Introducción
El X-CUBO-IOTA1 paquete de software de expansión para Cubo STM32 se ejecuta en STM32 e incluye middleware para habilitar las funciones de la tecnología de contabilidad distribuida (DLT) de IOTA.
IOTA DLT es una capa de transferencia de datos y liquidación de transacciones para Internet de las cosas (IoT). IOTA permite que las personas y las máquinas transfieran dinero y / o datos sin tarifas de transacción en un entorno sin confianza, sin permisos y descentralizado. Esta tecnología incluso hace posible los micropagos sin la necesidad de un intermediario de confianza de ningún tipo. La expansión se basa en la tecnología de software STM32Cube para facilitar la portabilidad entre diferentes microcontroladores STM32. La versión actual del software se ejecuta en B-L4S5I-IOT01A Kit de descubrimiento para el nodo IoT y se conecta a Internet a través de la interfaz Wi-Fi adjunta.
ENLACES RELACIONADOS
Visite el ecosistema STM32Cube web página en www.st.com para obtener más información
https://www.iota.org/get-started/what-is-iota
https://docs.iota.org/docs/getting-started/1.1/introduction/overview
https://iota-beginners-guide.com
https://chrysalis.docs.iota.org
https://iota-beginners-guide.com/future-of-iota/iota-1-5-chrysalis
https://www.boazbarak.org/cs127/Projects/iota.pdf
Siglas y abreviaturas
Tabla 1. Lista de siglas
Acrónimo | Descripción |
Tecnología de distribución distribuida | Tecnología de contabilidad distribuida |
IDE | Entorno de desarrollo integrado |
Internet de las cosas | Internet de las cosas |
PoW | Prueba de trabajo |
Expansión del software X-CUBE-IOTA1 para STM32Cube
Encimaview
El X-CUBO-IOTA1 el paquete de software se expande Cubo STM32 funcionalidad con las siguientes características clave:
- Firmware completo para crear aplicaciones IOTA DLT para placas basadas en STM32
- Bibliotecas de middleware con:
- FreeRTOS
- Gestión de Wi-Fi
- cifrado, hash, autenticación de mensajes y firma digital (Cryptolib)
- seguridad a nivel de transporte (MbedTLS)
- API de cliente IOTA para interactuar con Tangle - Controlador completo para crear aplicaciones que accedan a sensores ambientales y de movimiento
- Examparchivos para ayudar a comprender cómo desarrollar una aplicación IOTA DLT Client
- Fácil portabilidad en diferentes familias de MCU, gracias a STM32Cube
- Términos de licencia gratuitos y fáciles de usar
La expansión del software proporciona el middleware para habilitar IOTA DLT en un microcontrolador STM32. IOTA DLT es una capa de transferencia de datos y liquidación de transacciones para Internet de las cosas (IoT). IOTA permite que las personas y las máquinas transfieran dinero y / o datos sin tarifas de transacción en un entorno sin confianza, sin permisos y descentralizado. Esta tecnología incluso hace posible los micropagos sin la necesidad de un intermediario de confianza de ningún tipo.
IOTA 1.0
Las tecnologías de libro mayor distribuido (DLT) se basan en una red de nodos que mantiene un libro mayor distribuido, que es una base de datos distribuida protegida criptográficamente para registrar transacciones. Los nodos emiten transacciones a través de un protocolo de consenso.
IOTA es una tecnología de contabilidad distribuida diseñada específicamente para IoT.
El libro mayor distribuido de IOTA se llama el enredo y se crea mediante las transacciones emitidas por los nodos en la red de IOTA.
Para publicar una transacción en el enredo, un nodo debe:
- validar dos transacciones no aprobadas llamadas propinas
- crear y firmar la nueva transacción
- realizar suficiente prueba de trabajo
- difundir la nueva transacción a la red IOTA
La transacción se adjunta al enredo junto con dos referencias que apuntan a las transacciones validadas.
Esta estructura se puede modelar como un gráfico acíclico dirigido, donde los vértices representan transacciones individuales y los bordes representan referencias entre pares de transacciones.
Una transacción de génesis está en la raíz del enredo e incluye todos los tokens IOTA disponibles, llamados iotas.
IOTA 1.0 utiliza un enfoque de implementación poco convencional basado en la representación trinaria: cada elemento en IOTA se describe usando trits = -1, 0, 1 en lugar de bits y trytes de 3 trits en lugar de bytes. Un tryte se representa como un número entero de -13 a 13, codificado con letras (AZ) y el número 9.
IOTA 1.5 (Chrysalis) reemplaza el diseño de transacciones trinarias con una estructura binaria.
La red IOTA incluye nodos y clientes. Un nodo está conectado a pares en la red y almacena una copia del enredo. Un cliente es un dispositivo con una semilla que se utilizará para crear direcciones y firmas.
El cliente crea y firma transacciones y las envía al nodo para que la red pueda validarlas y almacenarlas. Las transacciones de retiro deben contener una firma válida. Cuando una transacción se considera válida, el nodo la agrega a su libro mayor, actualiza los saldos de las direcciones afectadas y transmite la transacción a sus vecinos.
IOTA 1.5 - Crisálida
El objetivo de la Fundación IOTA es optimizar la red principal de IOTA antes de Coordicide y ofrecer una solución lista para empresas para el ecosistema de IOTA. Esto se logra mediante una actualización intermedia llamada Chrysalis. Las principales actualizaciones introducidas por Chrysalis son:
- Direcciones reutilizables: la adopción del esquema de firma Ed25519, que reemplaza al esquema de firma única de Winternitz (W-OTS), permite a los usuarios enviar tokens de forma segura desde la misma dirección varias veces;
- No más paquetes: IOTA 1.0 usa el concepto de paquetes para crear transferencias. Los paquetes son un conjunto de transacciones vinculadas entre sí por su referencia raíz (troncal). Con la actualización IOTA 1.5, la construcción del paquete anterior se elimina y se reemplaza por las transacciones Atomic más simples. El vértice Tangle está representado por el mensaje, que es una especie de contenedor que puede tener cargas útiles arbitrarias (es decir, carga útil Token o carga útil de indexación);
- Modelo UTXO: originalmente, IOTA 1.0 usó un modelo basado en cuentas para rastrear tokens IOTA individuales: cada dirección IOTA contenía una cantidad de tokens y el número agregado de tokens de todas las direcciones IOTA era igual al suministro total. En cambio, IOTA 1.5 usa el modelo de salida de transacciones no gastadas, o UTXO, basado en la idea de rastrear cantidades no gastadas de tokens a través de una estructura de datos llamada salida;
- Hasta 8 padres: con IOTA 1.0, siempre tenía que hacer referencia a 2 transacciones de padres. Con Chrysalis, se introduce un mayor número de nodos padres referenciados (hasta 8). Para obtener los mejores resultados, se recomiendan al menos 2 padres únicos a la vez.
ENLACES RELACIONADOS
Para obtener más información sobre Chrysalis, consulte esta página de documentación.
Prueba de trabajo
El protocolo IOTA utiliza Prueba de trabajo como un medio para limitar la velocidad de la red.
IOTA 1.0 utilizó el Curl-P-81 función hash trinaria y requería un hash con el número correspondiente de trits ceros finales para emitir una transacción al Tangle.
Con Chrysalis, es posible emitir mensajes binarios de tamaño arbitrario. Esta RFC describe cómo adaptar el mecanismo PoW existente a los nuevos requisitos. Su objetivo es ser lo menos disruptivo posible para el mecanismo actual de PoW.
Arquitectura
Esta expansión STM32Cube permite el desarrollo de aplicaciones que acceden y utilizan el middleware IOTA DLT.
Se basa en la capa de abstracción de hardware STM32CubeHAL para el microcontrolador STM32 y extiende STM32Cube con un paquete de soporte de placa específico (BSP) para la placa de expansión de micrófono y componentes de middleware para procesamiento de audio y comunicación USB con una PC.
Las capas de software que utiliza el software de la aplicación para acceder y utilizar la placa de expansión del micrófono son:
- Capa STM32Cube HAL: proporciona un conjunto genérico de varias instancias de API para interactuar con las capas superiores (la aplicación, las bibliotecas y las pilas). Consiste en API genéricas y de extensión basadas en una arquitectura común que permite que otras capas, como la capa de middleware, funcionen sin configuraciones específicas de hardware de unidad de microcontrolador (MCU). Esta estructura mejora la reutilización del código de la biblioteca y garantiza una fácil portabilidad del dispositivo.
- Capa Board Support Package (BSP): es un conjunto de API que proporciona una interfaz de programación para ciertos periféricos específicos de la placa (LED, botón de usuario, etc.). Esta interfaz también ayuda a identificar la versión específica de la placa y brinda soporte para inicializar los periféricos MCU requeridos y la lectura de datos.
Figura 1. Arquitectura del software X-CUBE-IOTA1
Estructura de la carpeta
Figura 2. Estructura de carpetas X-CUBE-IOTA1
Las siguientes carpetas están incluidas en el paquete de software:
- Documentación: contiene un HTML compilado file generado a partir del código fuente y documentación detallada de los componentes de software y las API
- Conductores: contiene los controladores HAL y los controladores específicos de la placa para la placa y las plataformas de hardware compatibles, incluidos los de los componentes integrados y la capa de abstracción de hardware independiente del proveedor CMSIS para la serie de procesadores ARM® Cortex®-M
- Medios: contiene bibliotecas con FreeRTOS; Gestión de Wi-Fi; cifrado, hash, autenticación de mensajes y firma digital (Cryptolib); seguridad a nivel de transporte (MbedTLS); API de cliente IOTA para interactuar con Tangle
- Proyectos: contiene examparchivos para ayudarlo a desarrollar una aplicación IOTA DLT Client para la plataforma basada en STM32 compatible (B-L4S5I-IOT01A), con tres entornos de desarrollo, IAR Embedded Workbench for ARM (EWARM), RealView Kit de desarrollo de microcontroladores (MDK-ARM) y STM32CubeIDE
API
La información técnica detallada con la función API de usuario completa y la descripción de los parámetros se encuentran en un HTML compilado file en la carpeta "Documentación".
Descripción de la aplicación IOTA-Client
El proyecto fileLos s para la aplicación IOTA-Client se pueden encontrar en: $ BASE_DIR \ Projects \ B-L4S5IIOT01A \ Applications \ IOTA-Client.
Los proyectos listos para construir están disponibles para múltiples IDE.
La interfaz de usuario se proporciona a través del puerto serie y debe configurarse con los siguientes ajustes:
Figura 3. Tera Term: configuración del terminal
Figura 4. Tera Term: configuración del puerto serie
Para ejecutar la aplicación, siga el procedimiento a continuación.
Paso 1. Abra un terminal serial para visualizar el registro de mensajes.
Paso 2. Ingrese la configuración de su red Wi-Fi (SSID, modo de seguridad y contraseña).
Paso 3. Configure los certificados de CA raíz de TLS.
Paso 4. Copie y pegue el contenido de Projects \ B-L4S5I-IOT01A \ Applications \ IOTAClient \ usertrust_thetangle.pem. El dispositivo los usa para autenticar los hosts remotos a través de TLS.
Nota: Después de configurar los parámetros, puede cambiarlos reiniciando la placa y presionando el botón Usuario (botón azul) dentro de los 5 segundos. Estos datos se guardarán en la memoria Flash.
Figura 5. Configuración de los parámetros de Wi-Fi
Paso 5. Espere a que aparezca el mensaje “Presione cualquier tecla para continuar”. Luego, la pantalla se actualiza con la lista de las funciones principales:
- Enviar un mensaje de indexación genérico
- Envíe un mensaje de sensor de indexación (incluido el tiempoamp, Temperatura y humedad)
- Conseguir el equilibrio
- Enviar transacción
- Otras funciones
Figura 6. Menú principal
Paso 6. Elija la opción 3 para probar una de las siguientes funciones:
Obtener información del nodo | Obtener consejos |
Obtener salida | Salidas de dirección |
Conseguir el equilibrio | Error de respuesta |
Recibir mensaje | Enviar mensaje |
Buscar mensaje | Billetera de prueba |
Generador de mensajes | Prueba cripto |
Figura 7. Otras funciones
ENLACES RELACIONADOS
Para obtener más detalles sobre las funciones de IOTA 1.5, consulte la documentación del Cliente IOTA C
Guía de configuración del sistema
Descripción del hardware
STM32L4 + Kit de descubrimiento nodo IoT
El kit de descubrimiento B-L4S5I-IOT01A para nodo IoT le permite desarrollar aplicaciones para conectarse directamente a servidores en la nube.
El kit Discovery permite una amplia variedad de aplicaciones aprovechando la comunicación de bajo consumo, la detección multidireccional y las características de la serie STM4L32 + basadas en el núcleo ARM®Cortex® -M4 +.
Admite conectividad Arduino Uno R3 y PMOD que proporciona capacidades de expansión ilimitadas con una gran variedad de placas adicionales dedicadas.
Figura 8. Kit de descubrimiento B-L4S5I-IOT01A
Configuración de hardware
Se necesitan los siguientes componentes de hardware:
- un kit STM32L4 + Discovery para nodo IoT equipado con interfaz Wi-Fi (código de pedido: B-L4S5I-IOT01A)
- un cable USB tipo A a Mini-B USB tipo B para conectar la placa de descubrimiento STM32 a la PC
Configuración del software
Los siguientes componentes de software son necesarios para configurar el entorno de desarrollo para crear aplicaciones IOTA DLT para el B-L4S5I-IOT01A:
- X-CUBE-IOTA1: el firmware y la documentación relacionada están disponibles en st.com
- cadena de herramientas de desarrollo y compilador: el software de expansión STM32Cube admite los siguientes entornos:
- IAR Embedded Workbench para cadena de herramientas ARM ® (EWARM) + ST-LINK / V2
- RealView Conjunto de herramientas del kit de desarrollo de microcontroladores (MDK-ARM) + ST-LINK / V2
- STM32CubeIDE + ST-LINK / V2
Configuración del sistema
La placa Discovery B-L4S5I-IOT01A permite la explotación de las funciones de IOTA DLT. La placa integra el depurador / programador ST-LINK / V2-1. Puede descargar la versión correspondiente del controlador USB ST-LINK / V2-1 en STSW-LINK009.
Historial de revisiones
Tabla 2. Historial de revisión del documento
Fecha | Revisión | Cambios |
13 de junio de 19 | 1 | Lanzamiento inicial |
18 de junio de 19 | 2 | Se actualizó la Sección 3.4.8.1 TX_IN y TX_OUT, Sección 3.4.8.3 Envío de datos a través de valor cero transacciones y la Sección 3.4.8.4 Envío de fondos mediante transacciones de transferencia. |
6 de mayo de 21 | 3 | Introducción actualizada, Sección 1 Siglas y abreviaturas, Sección 2.1 Másview, Sección 2.1.1 IOTA 1.0, Sección 2.1.3 Prueba de trabajo, Sección 2.2 Arquitectura, Sección 2.3 Estructura de carpetas, Sección 3.2 Configuración del hardware, Sección 3.3 Configuración del software y Sección 3.4 Configuración del sistema. Se eliminó la Sección 2 y se reemplazó por un enlace en la Introducción. Se eliminó la Sección 3.1.2 Transacciones y paquetes, Sección 3.1.3 Cuenta y firmas, Sección 3.1.5 Hash. Sección 3.4 Cómo escribir aplicaciones y subsecciones relacionadas, Sección 3.5 Descripción de la aplicación IOTALightNode y subsecciones relacionadas, y Sección 4.1.1 STM32 Plataforma Nucleo Se agregó la Sección 2.1.2 IOTA 1.5 - Chrysalis, Sección 2.5 Descripción de la aplicación IOTA-Cliente, Sección 2.4 API y Sección 3.1.1 STM32L4 + Kit de descubrimiento del nodo IoT. |
AVISO IMPORTANTE: LEA DETENIDAMENTE
STMicroelectronics NV y sus subsidiarias ("ST") se reservan el derecho de realizar cambios, correcciones, mejoras, modificaciones y mejoras en los productos ST y / o en este documento en cualquier momento sin previo aviso. Los compradores deben obtener la información relevante más reciente sobre los productos ST antes de realizar pedidos. Los productos ST se venden de conformidad con los términos y condiciones de venta de ST vigentes en el momento de la confirmación del pedido.
Los compradores son los únicos responsables de la elección, selección y uso de los productos ST y ST no asume ninguna responsabilidad por la asistencia con la aplicación o el diseño de los productos de los compradores.
ST no concede aquí ninguna licencia, expresa o implícita, sobre ningún derecho de propiedad intelectual.
La reventa de productos ST con disposiciones diferentes a la información aquí establecida anulará cualquier garantía otorgada por ST para dicho producto.
ST y el logotipo de ST son marcas comerciales de ST. Para obtener información adicional sobre las marcas comerciales ST, consulte www.st.com/trademarks. Todos los demás nombres de productos o servicios son propiedad de sus respectivos dueños.
La información contenida en este documento reemplaza la información proporcionada previamente en cualquier versión anterior de este documento.
© 2021 STMicroelectronics – Todos los derechos reservados
Documentos / Recursos
![]() |
Paquete de software de expansión ST X-CUBE-IOTA1 para STM32Cube [pdf] Manual del usuario ST, X-CUBE-IOTA1, Expansión, Paquete de software, para STM32Cube |