UM2606
Manuale d'uso
Iniziare con il registro distribuito IOTA
Espansione software tecnologica per STM32Cube
Introduzione
IL X-CUBE-IOTA1 pacchetto software di espansione per Cubo STM32 gira su STM32 e include il middleware per abilitare le funzioni IOTA Distributed Ledger Technology (DLT).
Lo IOTA DLT è un livello di transazione e trasferimento dati per l'Internet of Things (IoT). IOTA consente a persone e macchine di trasferire denaro e/o dati senza commissioni di transazione in un ambiente senza fiducia, senza autorizzazione e decentralizzato. Questa tecnologia rende possibili anche i micropagamenti senza la necessità di un intermediario fidato di alcun tipo. L'espansione è basata sulla tecnologia software STM32Cube per facilitare la portabilità su diversi microcontrollori STM32. La versione corrente del software funziona sul B-L4S5I-IOT01A Kit di rilevamento per nodo IoT e si connette a Internet tramite l'interfaccia Wi-Fi allegata.
LINK CORRELATI
Visita l'ecosistema STM32Cube web pagina su www.st.com per ulteriori informazioni
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
Acronimi e Abbreviazioni
Tabella 1. Elenco degli acronimi
Acronimo | Descrizione |
DLT | Tecnologia di registro distribuito |
Ideale per gli amanti | Ambiente di sviluppo integrato |
IoT | Internet delle cose |
Possesso di guerra | Prova di lavoro |
Espansione software X-CUBE-IOTA1 per STM32Cube
Sopraview
IL X-CUBE-IOTA1 il pacchetto software si espande Cubo STM32 funzionalità con le seguenti caratteristiche principali:
- Firmware completo per creare applicazioni IOTA DLT per schede basate su STM32
- Librerie middleware con:
– RTOS gratuito
– Gestione Wi-Fi
– crittografia, hashing, autenticazione dei messaggi e firma digitale (Cryptolib)
– sicurezza a livello di trasporto (MbedTLS)
– API client IOTA per interagire con il Tangle - Driver completo per creare applicazioni che accedono a sensori di movimento e ambientali
- Example per aiutare a capire come sviluppare un'applicazione client DLT IOTA
- Facile portabilità tra diverse famiglie di MCU, grazie a STM32Cube
- Termini di licenza gratuiti e facili da usare
L'espansione software fornisce il middleware per abilitare IOTA DLT su un microcontrollore STM32. Lo IOTA DLT è un livello di transazione e trasferimento dati per l'Internet of Things (IoT). IOTA consente a persone e macchine di trasferire denaro e/o dati senza commissioni di transazione in un ambiente senza fiducia, senza autorizzazione e decentralizzato. Questa tecnologia rende possibili anche i micropagamenti senza la necessità di un intermediario fidato di alcun tipo.
IOTA 1.0
Le tecnologie di registro distribuito (DLT) sono costruite su una rete di nodi che mantiene un registro distribuito, che è un database distribuito e protetto crittograficamente per registrare le transazioni. I nodi emettono transazioni tramite un protocollo di consenso.
IOTA è una tecnologia di contabilità distribuita specificamente progettata per IoT.
Il registro distribuito IOTA è chiamato tangle ed è creato dalle transazioni emesse dai nodi nella rete IOTA.
Per pubblicare una transazione nel tangle, un nodo deve:
- convalidare due transazioni non approvate chiamate tips
- creare e firmare la nuova transazione
- eseguire una prova di lavoro sufficiente
- trasmettere la nuova transazione alla rete IOTA
La transazione è allegata al tangle insieme a due riferimenti che puntano alle transazioni convalidate.
Questa struttura può essere modellata come un grafo aciclico orientato, dove i vertici rappresentano singole transazioni e gli archi rappresentano riferimenti tra coppie di transazioni.
Una transazione di genesi è alla radice del groviglio e include tutti i token IOTA disponibili, chiamati iota.
IOTA 1.0 utilizza un approccio di implementazione piuttosto non convenzionale basato sulla rappresentazione trinaria: ogni elemento in IOTA è descritto usando trits = -1, 0, 1 invece di bit e trytes di 3 trit invece di byte. Un tryte è rappresentato come un numero intero compreso tra -13 e 13, codificato utilizzando le lettere (AZ) e il numero 9.
IOTA 1.5 (Chrysalis) sostituisce il layout della transazione trinaria con una struttura binaria.
La rete IOTA include nodi e client. Un nodo è connesso ai peer nella rete e memorizza una copia del tangle. Un client è un dispositivo con un seme da utilizzare per creare indirizzi e firme.
Il client crea e firma le transazioni e le invia al nodo in modo che la rete possa convalidarle e memorizzarle. Le operazioni di prelievo devono contenere una firma valida. Quando una transazione è considerata valida, il nodo la aggiunge al suo registro, aggiorna i saldi degli indirizzi interessati e trasmette la transazione ai suoi vicini.
IOTA 1.5 – Crisalide
L'obiettivo della Fondazione IOTA è ottimizzare la rete principale IOTA prima di Coordicide e offrire una soluzione pronta per l'impresa per l'ecosistema IOTA. Ciò si ottiene con un aggiornamento intermedio chiamato Chrysalis. I principali aggiornamenti introdotti da Chrysalis sono:
- Indirizzi riutilizzabili: l'adozione dello schema di firma Ed25519, che sostituisce lo schema di firma una tantum di Winternitz (W-OTS), consente agli utenti di inviare più volte token dallo stesso indirizzo in modo sicuro;
- Niente più bundle: IOTA 1.0 utilizza il concetto di bundle per creare trasferimenti. I bundle sono un insieme di transazioni collegate tra loro dal loro riferimento principale (trunk). Con l'aggiornamento IOTA 1.5, il vecchio costrutto bundle viene rimosso e sostituito dalle transazioni Atomic più semplici. Il vertice Tangle è rappresentato dal Message che è una sorta di contenitore che può avere payload arbitrari (cioè payload Token o payload Indexation);
- Modello UTXO: originariamente, IOTA 1.0 utilizzava un modello basato su account per tracciare i singoli token IOTA: ogni indirizzo IOTA conteneva un numero di token e il numero aggregato di token da tutti gli indirizzi IOTA era uguale alla fornitura totale. Invece, IOTA 1.5 utilizza il modello di output delle transazioni non spese, o UTXO, basato sull'idea di tenere traccia delle quantità non spese di token tramite una struttura di dati chiamata output;
- Fino a 8 Genitori: con IOTA 1.0, dovevi sempre fare riferimento a 2 transazioni Genitori. Con Chrysalis viene introdotto un numero maggiore di nodi padre referenziati (fino a 8). Per ottenere i migliori risultati, si consigliano almeno 2 genitori unici alla volta.
LINK CORRELATI
Per ulteriori informazioni su Chrysalis, fare riferimento a questa pagina della documentazione
Prova di lavoro
Il protocollo IOTA utilizza Proof-of-Work come mezzo per limitare la velocità della rete.
IOTA 1.0 ha usato il Dourl-P-81 funzione hash trinaria e richiedeva un hash con il numero corrispondente di zero finali per inviare una transazione al Tangle.
Con Chrysalis è possibile inviare messaggi binari di dimensioni arbitrarie. Questa RFC descrive come adattare il meccanismo PoW esistente ai nuovi requisiti. Mira ad essere il meno distruttivo possibile per l'attuale meccanismo PoW.
Architettura
Questa espansione STM32Cube consente lo sviluppo di applicazioni che accedono e utilizzano il middleware IOTA DLT.
Si basa sul livello di astrazione hardware STM32CubeHAL per il microcontrollore STM32 ed estende STM32Cube con uno specifico pacchetto di supporto della scheda (BSP) per la scheda di espansione del microfono e componenti middleware per l'elaborazione audio e la comunicazione USB con un PC.
I livelli software utilizzati dal software applicativo per accedere e utilizzare la scheda di espansione del microfono sono:
- STM32Cube HAL layer: fornisce un insieme generico e multiistanza di API per interagire con i livelli superiori (l'applicazione, le librerie e gli stack). Consiste in API generiche e di estensione basate su un'architettura comune che consente ad altri livelli come il livello middleware di funzionare senza specifiche configurazioni hardware dell'unità di microcontrollore (MCU). Questa struttura migliora la riutilizzabilità del codice della libreria e garantisce una facile portabilità del dispositivo.
- Livello Board Support Package (BSP): è un insieme di API che fornisce un'interfaccia di programmazione per alcune periferiche specifiche della scheda (LED, pulsante utente, ecc.). Questa interfaccia aiuta anche a identificare la versione specifica della scheda e fornisce supporto per l'inizializzazione delle periferiche MCU richieste e la lettura dei dati.
Figura 1. Architettura software X-CUBE-IOTA1
Struttura delle cartelle
Figura 2. Struttura della cartella X-CUBE-IOTA1
Le seguenti cartelle sono incluse nel pacchetto software:
- Documentazione: contiene un HTML compilato file generato dal codice sorgente e dalla documentazione dettagliata dei componenti software e delle API
- Autisti: contiene i driver HAL e i driver specifici della scheda per la scheda supportata e le piattaforme hardware, inclusi quelli per i componenti di bordo e il livello di astrazione hardware indipendente dal fornitore CMSIS per la serie di processori ARM® Cortex®-M
- Middleware: contiene librerie con FreeRTOS; Gestione Wi-Fi; crittografia, hashing, autenticazione dei messaggi e firma digitale (Cryptolib); sicurezza a livello di trasporto (MbedTLS); API client IOTA per interagire con il Tangle
- Progetti: contiene exampper aiutarti a sviluppare un'applicazione client DLT IOTA per la piattaforma basata su STM32 supportata (B-L4S5I-IOT01A), con tre ambienti di sviluppo, IAR Embedded Workbench for ARM (EWARM), RealView Kit di sviluppo per microcontrollori (MDK-ARM) e STM32CubeIDE
API
Le informazioni tecniche dettagliate con la funzione API utente completa e la descrizione dei parametri sono in un HTML compilato file nella cartella “Documentazione”.
Descrizione dell'applicazione client IOTA
Il progetto files per l'applicazione IOTA-Client si trovano in: $BASE_DIR\Projects\B-L4S5IIOT01A\Applications\IOTA-Client.
I progetti pronti per la compilazione sono disponibili per più IDE.
L'interfaccia utente è fornita tramite porta seriale e deve essere configurata con le seguenti impostazioni:
Figura 3. Termine Tera – Configurazione del terminale
Figura 4. Termine Tera – Configurazione della porta seriale
Per eseguire l'applicazione, seguire la procedura seguente.
Fase 1. Aprire un terminale seriale per visualizzare lo storico dei messaggi.
Fase 2. Inserisci la configurazione della tua rete Wi-Fi (SSID, modalità di sicurezza e password).
Fase 3. Imposta i certificati della CA radice TLS.
Fase 4. Copia e incolla il contenuto di Projects\B-L4S5I-IOT01A\Applications\IOTAClient\usertrust_thetangle.pem. Il dispositivo li utilizza per autenticare gli host remoti tramite TLS.
Nota: Dopo aver configurato i parametri, è possibile modificarli riavviando la scheda e premendo il pulsante Utente (pulsante blu) entro 5 secondi. Questi dati verranno salvati nella memoria Flash.
Figura 5. Impostazioni dei parametri Wi-Fi
Fase 5. Attendi che appaia il messaggio “Premi un tasto qualsiasi per continuare”. La schermata viene quindi aggiornata con l'elenco delle funzioni principali:
- Invia un messaggio di indicizzazione generico
- Invia un messaggio del sensore di indicizzazione (incluso timestamp, temperatura e umidità)
- Ottieni equilibrio
- Invia transazione
- Altre funzioni
Figura 6. Menu principale
Fase 6. Scegli l'opzione 3 per testare una delle seguenti funzioni:
Ottieni informazioni sul nodo | Ottieni consigli |
Ottieni output | Uscite da indirizzo |
Ottieni equilibrio | Errore di risposta |
Ricevi messaggio | Invia messaggio |
Trova messaggio | Portafoglio di prova |
Generatore di messaggi | Prova cripto |
Figura 7. Altre funzioni
LINK CORRELATI
Per ulteriori dettagli sulle funzioni di IOTA 1.5, fare riferimento alla documentazione del client IOTA C
Guida alla configurazione del sistema
Descrizione hardware
STM32L4+ Discovery kit nodo IoT
Il kit B-L4S5I-IOT01A Discovery per nodo IoT consente di sviluppare applicazioni per connettersi direttamente ai server cloud.
Il kit Discovery consente un'ampia varietà di applicazioni sfruttando la comunicazione a bassa potenza, il rilevamento multidirezionale e le funzionalità della serie STM4L32+ basate su core ARM®Cortex® -M4+.
Supporta la connettività Arduino Uno R3 e PMOD fornendo capacità di espansione illimitate con un'ampia scelta di schede aggiuntive dedicate.
Figura 8. Kit di rilevamento B-L4S5I-IOT01A
Configurazione hardware
Sono necessari i seguenti componenti hardware:
- un kit STM32L4+ Discovery per nodo IoT dotato di interfaccia Wi-Fi (codice ordine: B-L4S5I-IOT01A)
- un cavo da USB tipo A a Mini-B USB tipo B per collegare la scheda discovery STM32 al PC
Configurazione del software
I seguenti componenti software sono necessari per configurare l'ambiente di sviluppo per la creazione di applicazioni IOTA DLT per B-L4S5I-IOT01A:
- X-CUBE-IOTA1: firmware e relativa documentazione sono disponibili su st.com
- tool-chain di sviluppo e compilatore: il software di espansione STM32Cube supporta i seguenti ambienti:
– IAR Embedded Workbench per toolchain ARM ® (EWARM) + ST-LINK/V2
- VeroView Toolchain del kit di sviluppo del microcontrollore (MDK-ARM) + ST-LINK/V2
– STM32CubeIDE + ST-LINK/V2
Impostazione del sistema
La scheda Discovery B-L4S5I-IOT01A consente lo sfruttamento delle funzionalità IOTA DLT. La scheda integra il debugger/programmatore ST-LINK/V2-1. È possibile scaricare la versione pertinente del driver USB ST-LINK/V2-1 all'indirizzo STSW-LINK009.
Cronologia delle revisioni
Tabella 2. Cronologia delle revisioni del documento
Data | Revisione | Cambiamenti |
13-giu-19 | 1 | Versione iniziale |
18-giu-19 | 2 | Aggiornata Sezione 3.4.8.1 TX_IN e TX_OUT, Sezione 3.4.8.3 Invio di dati tramite valore zero transazioni e Sezione 3.4.8.4 Invio di fondi tramite transazioni di trasferimento. |
6-Maggio-21 | 3 | Introduzione aggiornata, Sezione 1 Acronimi e abbreviazioni, Sezione 2.1 Overview, Sezione 2.1.1 IOTA 1.0, Sezione 2.1.3 Proof-of-Work, Sezione 2.2 Architettura, Sezione 2.3 Struttura delle cartelle, Sezione 3.2 Configurazione hardware, Sezione 3.3 Configurazione software e Sezione 3.4 Configurazione di sistema. Rimossa la Sezione 2 e sostituita da un collegamento nell'Introduzione. Rimossa la Sezione 3.1.2 Transazioni e pacchetti, Sezione 3.1.3 Conto e firme, Sezione 3.1.5 Hashing. Sezione 3.4 Come scrivere applicazioni e relative sottosezioni, Sezione 3.5 Descrizione dell'applicazione IOTALightNode e relative sottosezioni e Sezione 4.1.1 STM32 Piattaforma Nucleo Aggiunta la Sezione 2.1.2IOTA 1.5 – Chrysalis, la Sezione 2.5 Descrizione dell'applicazione IOTA-Client, la Sezione 2.4 API e la Sezione 3.1.1 STM32L4+ Discovery kit nodo IoT. |
AVVISO IMPORTANTE - LEGGERE ATTENTAMENTE
STMicroelectronics NV e le sue consociate ("ST") si riservano il diritto di apportare modifiche, correzioni, miglioramenti, modifiche e miglioramenti ai prodotti ST e / o al presente documento in qualsiasi momento senza preavviso. Gli acquirenti dovrebbero ottenere le informazioni pertinenti più recenti sui prodotti ST prima di effettuare gli ordini. I prodotti ST sono venduti in conformità ai termini e alle condizioni di vendita di ST in vigore al momento della conferma dell'ordine.
Gli acquirenti sono gli unici responsabili della scelta, selezione e utilizzo dei prodotti ST e ST non si assume alcuna responsabilità per l'assistenza applicativa o la progettazione dei prodotti degli acquirenti.
Nel presente documento ST non concede alcuna licenza, espressa o implicita, su alcun diritto di proprietà intellettuale.
La rivendita di prodotti ST con disposizioni diverse dalle informazioni qui stabilite invaliderà qualsiasi garanzia concessa da ST per tale prodotto.
ST e il logo ST sono marchi di ST. Per ulteriori informazioni sui marchi ST, fare riferimento a www.st.com/trademarks. Tutti gli altri nomi di prodotti o servizi sono di proprietà dei rispettivi proprietari.
Le informazioni contenute nel presente documento annullano e sostituiscono le informazioni fornite in precedenza in qualsiasi versione precedente del documento.
© 2021 STMicroelectronics – Tutti i diritti riservati
Documenti / Risorse
![]() |
Pacchetto software di espansione ST X-CUBE-IOTA1 per STM32Cube [pdf] Manuale d'uso ST, X-CUBE-IOTA1, Espansione, Pacchetto software, per STM32Cube |