UM2606
Gebruiksaanwijzing
Aan de slag met het IOTA Distributed Ledger
Technologie-software-uitbreiding voor STM32Cube
Invoering
De X-CUBE-IOTA1 uitbreidingssoftwarepakket voor STM32 Kubus draait op de STM32 en bevat middleware om de IOTA Distributed Ledger Technology (DLT)-functies in te schakelen.
De IOTA DLT is een laag voor transactieafwikkeling en gegevensoverdracht voor het Internet of Things (IoT). IOTA stelt mensen en machines in staat om geld en/of gegevens over te dragen zonder transactiekosten in een vertrouwde, toestemmingsloze en gedecentraliseerde omgeving. Deze technologie maakt zelfs microbetalingen mogelijk zonder dat er een vertrouwde tussenpersoon nodig is. De uitbreiding is gebaseerd op STM32Cube-softwaretechnologie om de portabiliteit tussen verschillende STM32-microcontrollers te vergemakkelijken. De huidige versie van de software draait op de B-L4S5I-IOT01A: Ontdekkingskit voor IoT-knooppunt en maakt verbinding met internet via de bijgevoegde Wi-Fi-interface.
GERELATEERDE LINKS
Bezoek het STM32Cube-ecosysteem web pagina op www.st.com voor meer informatie
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
Acroniemen en afkortingen
Tabel 1. Lijst met acroniemen
Acroniem | Beschrijving |
DLT | Gedistribueerde grootboektechnologie |
IDE | Geïntegreerde ontwikkelomgeving |
IoT | Internet der dingen |
PoW | Bewijs van werk |
X-CUBE-IOTA1 software-uitbreiding voor STM32Cube
Overview
De X-CUBE-IOTA1 softwarepakket breidt uit STM32 Kubus functionaliteit met de volgende hoofdkenmerken:
- Volledige firmware om IOTA DLT-applicaties te bouwen voor op STM32 gebaseerde boards
- Middleware-bibliotheken met:
– GratisRTOS
– Wi-Fi-beheer
– codering, hashing, berichtauthenticatie en digitale ondertekening (Cryptolib)
– beveiliging op transportniveau (MbedTLS)
– IOTA Client API voor interactie met de Tangle - Complete driver om applicaties te bouwen die toegang hebben tot bewegings- en omgevingssensoren
- Examples om te helpen begrijpen hoe u een IOTA DLT Client-toepassing kunt ontwikkelen
- Gemakkelijk overdraagbaar tussen verschillende MCU-families, dankzij STM32Cube
- Gratis, gebruiksvriendelijke licentievoorwaarden
De software-uitbreiding biedt de middleware om de IOTA DLT op een STM32-microcontroller in te schakelen. De IOTA DLT is een laag voor transactieafwikkeling en gegevensoverdracht voor het Internet of Things (IoT). IOTA stelt mensen en machines in staat om geld en/of gegevens over te dragen zonder transactiekosten in een vertrouwde, toestemmingsloze en gedecentraliseerde omgeving. Deze technologie maakt zelfs microbetalingen mogelijk zonder dat er een vertrouwde tussenpersoon nodig is.
IOTA-1.0
Distributed Ledger Technologies (DLT's) zijn gebouwd op een knooppuntnetwerk dat een gedistribueerd grootboek bijhoudt, een cryptografisch beveiligde, gedistribueerde database om transacties vast te leggen. Nodes geven transacties uit via een consensusprotocol.
IOTA is een gedistribueerde grootboektechnologie die speciaal is ontworpen voor IoT.
Het gedistribueerde IOTA-grootboek wordt de tangle genoemd en wordt gemaakt door de transacties die zijn uitgegeven door de knooppunten in het IOTA-netwerk.
Om een transactie in de tangle te publiceren, moet een node:
- valideer twee niet-goedgekeurde transacties die tips worden genoemd
- maak en onderteken de nieuwe transactie
- voldoende Proof-of-Work uitvoeren
- zend de nieuwe transactie uit naar het IOTA-netwerk
De transactie wordt samen met twee verwijzingen naar de gevalideerde transacties aan de tangle bevestigd.
Deze structuur kan worden gemodelleerd als een gerichte acyclische grafiek, waarbij de hoekpunten afzonderlijke transacties vertegenwoordigen en de randen referenties tussen paren transacties vertegenwoordigen.
Een genesis-transactie bevindt zich in de tangle-root en omvat alle beschikbare IOTA-tokens, iotas genaamd.
IOTA 1.0 gebruikt een nogal onconventionele implementatiebenadering op basis van trinaire representatie: elk element in IOTA wordt beschreven met trits = -1, 0, 1 in plaats van bits, en trytes van 3 trits in plaats van bytes. Een tryte wordt weergegeven als een geheel getal van -13 tot 13, gecodeerd met letters (AZ) en cijfer 9.
IOTA 1.5 (Chrysalis) vervangt de trinaire transactielay-out door een binaire structuur.
Het IOTA-netwerk omvat knooppunten en clients. Een node is verbonden met peers in het netwerk en slaat een kopie van de tangle op. Een client is een apparaat met een seed die moet worden gebruikt om adressen en handtekeningen te maken.
De client maakt en ondertekent transacties en stuurt ze naar het knooppunt zodat het netwerk ze kan valideren en opslaan. Opnametransacties moeten een geldige handtekening bevatten. Wanneer een transactie als geldig wordt beschouwd, voegt het knooppunt deze toe aan zijn grootboek, werkt de saldi van de betrokken adressen bij en zendt de transactie uit naar zijn buren.
IOTA 1.5 – Chrysalis
Het doel van de IOTA Foundation is om het IOTA-hoofdnet vóór Coordicide te optimaliseren en een bedrijfsklare oplossing te bieden voor het IOTA-ecosysteem. Dit wordt bereikt door een tussentijdse update genaamd Chrysalis. De belangrijkste upgrades die door Chrysalis zijn geïntroduceerd zijn:
- Herbruikbare adressen: de goedkeuring van het Ed25519-handtekeningschema, ter vervanging van het Winternitz eenmalige handtekeningschema (W-OTS), stelt de gebruikers in staat om tokens meerdere keren veilig vanaf hetzelfde adres te verzenden;
- Geen bundels meer: IOTA 1.0 gebruikt het concept van bundels om overboekingen te maken. Bundels zijn een reeks transacties die aan elkaar zijn gekoppeld door hun hoofdreferentie (trunk). Met de IOTA 1.5-update wordt de oude bundelconstructie verwijderd en vervangen door de eenvoudigere Atomic-transacties. De Tangle vertex wordt vertegenwoordigd door de Message, een soort container die willekeurige payloads kan hebben (dwz Token payload of Indexation payload);
- UTXO-model: oorspronkelijk gebruikte IOTA 1.0 een accountgebaseerd model voor het volgen van individuele IOTA-tokens: elk IOTA-adres bevatte een aantal tokens en het geaggregeerde aantal tokens van alle IOTA-adressen was gelijk aan het totale aanbod. In plaats daarvan gebruikt IOTA 1.5 het niet-uitgegeven transactie-outputmodel, of UTXO, gebaseerd op het idee om niet-uitgegeven hoeveelheden tokens te volgen via een datastructuur die output wordt genoemd;
- Maximaal 8 ouders: met IOTA 1.0 moest u altijd naar 2 bovenliggende transacties verwijzen. Met Chrysalis wordt een groter aantal bovenliggende knooppunten waarnaar wordt verwezen (maximaal 8) geïntroduceerd. Voor het beste resultaat worden minimaal 2 unieke ouders tegelijk aanbevolen.
GERELATEERDE LINKS
Voor meer informatie over Chrysalis verwijzen wij u naar deze documentatiepagina
Bewijs van werk
Het IOTA-protocol gebruikt Proof-of-Work als een middel om het netwerk te beperken.
IOTA 1.0 gebruikte de Curl-P-81 trinaire hashfunctie en vereiste een hash met het overeenkomende aantal volgnultrits om een transactie aan de Tangle uit te geven.
Met Chrysalis is het mogelijk om binaire berichten van willekeurige grootte uit te geven. Deze RFC beschrijft hoe het bestaande PoW-mechanisme kan worden aangepast aan de nieuwe vereisten. Het is bedoeld om het huidige PoW-mechanisme zo min mogelijk te verstoren.
Architectuur
Deze STM32Cube-uitbreiding maakt de ontwikkeling mogelijk van toepassingen die toegang hebben tot en gebruikmaken van de IOTA DLT-middleware.
Het is gebaseerd op de STM32CubeHAL-hardwareabstractielaag voor de STM32-microcontroller en breidt STM32Cube uit met een specifiek bordondersteuningspakket (BSP) voor het microfoonuitbreidingsbord en middlewarecomponenten voor audioverwerking en USB-communicatie met een pc.
De softwarelagen die door de toepassingssoftware worden gebruikt voor toegang tot en gebruik van de microfoonuitbreidingskaart zijn:
- STM32Cube HAL-laag: biedt een generieke set API's met meerdere instanties voor interactie met de bovenste lagen (de toepassing, bibliotheken en stapels). Het bestaat uit generieke en extensie-API's op basis van een gemeenschappelijke architectuur waarmee andere lagen, zoals de middleware-laag, kunnen functioneren zonder specifieke hardwareconfiguraties van de Microcontroller Unit (MCU). Deze structuur verbetert de herbruikbaarheid van bibliotheekcode en garandeert gemakkelijke overdraagbaarheid van het apparaat.
- Board Support Package (BSP)-laag: is een set API's die een programmeerinterface biedt voor bepaalde bordspecifieke randapparatuur (LED, gebruikersknop enz.). Deze interface helpt ook bij het identificeren van de specifieke kaartversie en biedt ondersteuning voor het initialiseren van de vereiste MCU-randapparatuur en het lezen van gegevens.
Afbeelding 1. X-CUBE-IOTA1-softwarearchitectuur
Mappenstructuur
Afbeelding 2. X-CUBE-IOTA1-mapstructuur
De volgende mappen zijn opgenomen in het softwarepakket:
- Documentatie: bevat een gecompileerde HTML file gegenereerd op basis van de broncode en gedetailleerde documentatie van de softwarecomponenten en API's
- Bestuurders: bevat de HAL-stuurprogramma's en de bordspecifieke stuurprogramma's voor ondersteunde bord- en hardwareplatforms, inclusief die voor de ingebouwde componenten en de CMSIS leverancieronafhankelijke hardware-abstractielaag voor de ARM® Cortex®-M-processorserie
- middenwaren: bevat bibliotheken met FreeRTOS; Wi-Fi-beheer; encryptie, hashing, berichtauthenticatie en digitale ondertekening (Cryptolib); beveiliging op transportniveau (MbedTLS); IOTA Client API om te communiceren met de Tangle
- Projecten: bevat exampbestanden om u te helpen bij het ontwikkelen van een IOTA DLT Client-toepassing voor het ondersteunde STM32-gebaseerde platform (B-L4S5I-IOT01A), met drie ontwikkelomgevingen, IAR Embedded Workbench for ARM (EWARM), RealView Microcontroller Development Kit (MDK-ARM) en STM32CubeIDE
API
Gedetailleerde technische informatie met volledige gebruikers-API-functie en parameterbeschrijving zijn in een gecompileerde HTML file in de map "Documentatie".
Beschrijving van de IOTA-clienttoepassing
Het project files voor de IOTA-Client-applicatie zijn te vinden in: $BASE_DIR\Projects\B-L4S5IIOT01A\Applications\IOTA-Client.
Voor meerdere IDE's zijn kant-en-klare projecten beschikbaar.
De gebruikersinterface wordt geleverd via een seriële poort en moet worden geconfigureerd met de volgende instellingen:
Afbeelding 3. Tera Term – Terminal-configuratie
Afbeelding 4. Tera Term – Seriële poort instellen
Volg de onderstaande procedure om de toepassing uit te voeren.
Stap 1. Open een seriële terminal om het logboek met berichten te visualiseren.
Stap 2. Voer uw wifi-netwerkconfiguratie in (SSID, beveiligingsmodus en wachtwoord).
Stap 3. Stel de TLS-root-CA-certificaten in.
Stap 4. Kopieer en plak de inhoud van Projects\B-L4S5I-IOT01A\Applications\IOTAClient\usertrust_thetangle.pem. Het apparaat gebruikt ze om de externe hosts te verifiëren via TLS.
Opmerking: Nadat u de parameters heeft geconfigureerd, kunt u deze wijzigen door het bord opnieuw op te starten en binnen 5 seconden op de gebruikersknop (blauwe knop) te drukken. Deze gegevens worden opgeslagen in het Flash-geheugen.
Afbeelding 5. Wi-Fi-parameterinstellingen
Stap 5. Wacht tot het bericht "Druk op een willekeurige toets om door te gaan" verschijnt. Het scherm wordt dan ververst met de lijst met de belangrijkste functies:
- Stuur een generiek indexeringsbericht
- Stuur een indexeringssensorbericht (inclusief timestamp, temperatuur en vochtigheid)
- Balans krijgen
- Transactie verzenden
- Andere functies
Afbeelding 6. Hoofdmenu
Stap 6. Kies optie 3 om een van de volgende functies te testen:
Knooppuntinfo ophalen | Krijg tips |
Uitvoer verkrijgen | Uitgangen van adres |
Balans krijgen | Reactie fout |
Bericht ontvangen | Bericht verzenden |
Zoek bericht | Test portemonnee |
Berichtenbouwer | Crypto testen |
Afbeelding 7. Overige functies
GERELATEERDE LINKS
Raadpleeg de IOTA C Client-documentatie voor meer informatie over IOTA 1.5-functies
Handleiding voor systeemconfiguratie
Hardware beschrijving
STM32L4+ Discovery kit IoT-knooppunt
Met de B-L4S5I-IOT01A Discovery-kit voor IoT-knooppunten kunt u toepassingen ontwikkelen om rechtstreeks verbinding te maken met cloudservers.
De Discovery-kit maakt een breed scala aan toepassingen mogelijk door gebruik te maken van low-power communicatie, multi-way sensing en ARM®Cortex® -M4+ core-based STM32L4+ series features.
Het ondersteunt Arduino Uno R3- en PMOD-connectiviteit en biedt onbeperkte uitbreidingsmogelijkheden met een grote keuze aan speciale uitbreidingskaarten.
Afbeelding 8. B-L4S5I-IOT01A Ontdekkingskit
Apparatuur installatie
De volgende hardwarecomponenten zijn nodig:
- één STM32L4+ Discovery-kit voor IoT-knooppunt uitgerust met Wi-Fi-interface (bestelcode: B-L4S5I-IOT01A)
- een USB type A naar Mini-B USB Type B-kabel om het STM32-detectiebord op de pc aan te sluiten
Software-installatie
De volgende softwarecomponenten zijn nodig om de ontwikkelomgeving in te stellen voor het maken van IOTA DLT-applicaties voor de B-L4S5I-IOT01A:
- X-CUBE-IOTA1: firmware en gerelateerde documentatie is beschikbaar op st.com
- ontwikkeltool-keten en compiler: de STM32Cube-uitbreidingssoftware ondersteunt de volgende omgevingen:
– IAR Embedded Workbench voor ARM ® (EWARM) toolchain + ST-LINK/V2
- EchtView Microcontroller Development Kit (MDK-ARM) toolchain + ST-LINK/V2
– STM32CubeIDE + ST-LINK/V2
Systeeminstellingen
Het B-L4S5I-IOT01A Discovery-bord maakt de exploitatie van de IOTA DLT-functies mogelijk. Het bord integreert de ST-LINK/V2-1 debugger/programmer. U kunt de relevante versie van het ST-LINK/V2-1 USB-stuurprogramma downloaden op STSW-LINK009.
Revisiegeschiedenis
Tabel 2. Document revisiegeschiedenis
Datum | Herziening | Wijzigingen |
13-19-XNUMX | 1 | Eerste release |
18-19-XNUMX | 2 | Bijgewerkt Sectie 3.4.8.1 TX_IN en TX_OUT, Sectie 3.4.8.3 Gegevens verzenden via nulwaarde transacties en Sectie 3.4.8.4 Geld overmaken via overboekingstransacties. |
6-mei-21 | 3 | Bijgewerkte inleiding, Sectie 1 Acroniemen en afkortingen, Sectie 2.1 Overview, Sectie 2.1.1 IOTA 1.0, Sectie 2.1.3 Proof-of-Work, Sectie 2.2 Architectuur, Sectie 2.3 Mappenstructuur, Sectie 3.2 Hardware-installatie, Sectie 3.3 Software-installatie en Sectie 3.4 Systeemconfiguratie. Sectie 2 verwijderd en vervangen door een link in de inleiding. Verwijderd Sectie 3.1.2 Transacties en bundels, Sectie 3.1.3 Account en handtekeningen, Sectie 3.1.5 Hashen. Sectie 3.4 Toepassingen en gerelateerde subsecties schrijven, Sectie 3.5 IOTALightNode-toepassingsbeschrijving en gerelateerde subsecties, en Sectie 4.1.1 STM32 Nucleo-platform Toegevoegd Sectie 2.1.2IOTA 1.5 – Chrysalis, Sectie 2.5 IOTA-Client applicatiebeschrijving, Sectie 2.4 API en Sectie 3.1.1 STM32L4+ Discovery kit IoT-knooppunt. |
BELANGRIJKE MEDEDELING - LEES DIT ZORGVULDIG DOOR
STMicroelectronics NV en haar dochterondernemingen ("ST") behouden zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen, correcties, verbeteringen, aanpassingen en verbeteringen aan ST-producten en / of aan dit document aan te brengen. Kopers moeten de laatste relevante informatie over ST-producten verkrijgen voordat ze bestellingen plaatsen. ST-producten worden verkocht in overeenstemming met de verkoopvoorwaarden van ST die van kracht waren op het moment van orderbevestiging.
Kopers zijn zelf verantwoordelijk voor de keuze, selectie en het gebruik van ST-producten en ST aanvaardt geen aansprakelijkheid voor hulp bij het aanvragen of het ontwerp van de producten van de Kopers.
ST verleent hierbij geen enkele licentie, expliciet of impliciet, op enig intellectueel eigendomsrecht.
Bij wederverkoop van ST-producten met bepalingen die afwijken van de hierin vermelde informatie, vervalt de garantie die ST op dat product verleent.
ST en het ST-logo zijn handelsmerken van ST. Voor meer informatie over ST-handelsmerken verwijzen wij u naar www.st.com/trademarks. Alle andere product- of servicenamen zijn eigendom van hun respectievelijke eigenaren.
De informatie in dit document vervangt de informatie die eerder in eerdere versies van dit document is verstrekt.
© 2021 STMicroelectronics – Alle rechten voorbehouden
Documenten / Bronnen
![]() |
ST X-CUBE-IOTA1 uitbreidingssoftwarepakket voor STM32Cube [pdf] Gebruikershandleiding ST, X-CUBE-IOTA1, uitbreiding, softwarepakket, voor, STM32Cube |