UM2606
Brugermanual
Kom godt i gang med IOTA Distributed Ledger
Teknologisoftwareudvidelse til STM32Cube
Indledning
De X-CUBE-IOTA1 udvidelsessoftwarepakke til STM32Cube kører på STM32 og inkluderer middleware for at aktivere funktionerne i IOTA Distributed Ledger Technology (DLT).
IOTA DLT er et transaktionsafviklings- og dataoverførselslag for tingenes internet (IoT). IOTA giver mennesker og maskiner mulighed for at overføre penge og/eller data uden transaktionsgebyrer i et tillidsløst, tilladelsesløst og decentraliseret miljø. Denne teknologi gør endda mikrobetalinger mulige uden behov for en betroet mellemmand af nogen art. Udvidelsen er bygget på STM32Cube-softwareteknologi for at lette portabiliteten på tværs af forskellige STM32-mikrocontrollere. Den aktuelle version af softwaren kører på B-L4S5I-IOT01A Discovery-kit til IoT-node og opretter forbindelse til internettet via den vedhæftede Wi-Fi-grænseflade.
RELATEREDE LINKS
Besøg STM32Cube-økosystemet web side på www.st.com for yderligere information
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
Akronymer og forkortelser
Tabel 1. Liste over akronymer
Akronym | Beskrivelse |
DLT | Distribueret hovedbog teknologi |
IDE | Integreret udviklingsmiljø |
IoT | Internet af ting |
PoW | Proof-of-Work |
X-CUBE-IOTA1 softwareudvidelse til STM32Cube
Overview
De X-CUBE-IOTA1 softwarepakken udvides STM32Cube funktionalitet med følgende nøglefunktioner:
- Komplet firmware til at bygge IOTA DLT-applikationer til STM32-baserede kort
- Middleware-biblioteker med:
– FreeRTOS
– Wi-Fi-styring
– kryptering, hashing, meddelelsesgodkendelse og digital signering (Cryptolib)
– Sikkerhed på transportniveau (MbedTLS)
– IOTA Client API til interaktion med Tangle - Komplet driver til at bygge applikationer med adgang til bevægelses- og miljøsensorer
- Examples til at hjælpe med at forstå, hvordan man udvikler en IOTA DLT Client-applikation
- Nem bærbarhed på tværs af forskellige MCU-familier takket være STM32Cube
- Gratis, brugervenlige licensvilkår
Softwareudvidelsen giver middlewaren til at aktivere IOTA DLT på en STM32 mikrocontroller. IOTA DLT er et transaktionsafviklings- og dataoverførselslag for tingenes internet (IoT). IOTA giver mennesker og maskiner mulighed for at overføre penge og/eller data uden transaktionsgebyrer i et tillidsløst, tilladelsesløst og decentraliseret miljø. Denne teknologi gør endda mikrobetalinger mulige uden behov for en betroet mellemmand af nogen art.
IOTA 1.0
Distributed Ledger Technologies (DLT'er) er bygget på et nodenetværk, som vedligeholder en distribueret hovedbog, som er en kryptografisk sikret, distribueret database til at registrere transaktioner. Noder udsteder transaktioner gennem en konsensusprotokol.
IOTA er en distribueret hovedbogsteknologi, der er specielt designet til IoT.
Den distribuerede IOTA-ledger kaldes virvaren og skabes af de transaktioner, der udstedes af noderne i IOTA-netværket.
For at publicere en transaktion i virvaret skal en node:
- valider to ikke-godkendte transaktioner kaldet tip
- oprette og underskrive den nye transaktion
- udføre tilstrækkeligt bevis på arbejdet
- udsende den nye transaktion til IOTA-netværket
Transaktionen er knyttet til virvaret sammen med to referencer, der peger på de validerede transaktioner.
Denne struktur kan modelleres som en rettet acyklisk graf, hvor hjørnerne repræsenterer enkelte transaktioner, og kanterne repræsenterer referencer mellem par af transaktioner.
En genesis-transaktion er ved virvarroden og inkluderer alle de tilgængelige IOTA-tokens, kaldet iotas.
IOTA 1.0 bruger en ret utraditionel implementeringstilgang baseret på trinær repræsentation: hvert element i IOTA er beskrevet ved hjælp af trits = -1, 0, 1 i stedet for bits og trytes på 3 trits i stedet for bytes. En tryte er repræsenteret som et heltal fra -13 til 13, kodet ved hjælp af bogstaver (AZ) og nummer 9.
IOTA 1.5 (Chrysalis) erstatter det trinære transaktionslayout med en binær struktur.
IOTA-netværket omfatter noder og klienter. En node er forbundet til peers i netværket og gemmer en kopi af virvaren. En klient er en enhed med et frø, der skal bruges til at oprette adresser og signaturer.
Klienten opretter og underskriver transaktioner og sender dem til noden, så netværket kan validere og gemme dem. Udbetalinger skal indeholde en gyldig underskrift. Når en transaktion anses for at være gyldig, tilføjer noden den til sin hovedbog, opdaterer saldi på de berørte adresser og udsender transaktionen til sine naboer.
IOTA 1.5 – Chrysalis
Formålet med IOTA Foundation er at optimere IOTA-hovednettet før Coordicide og at tilbyde en virksomhedsklar løsning til IOTA-økosystemet. Dette opnås ved en mellemliggende opdatering kaldet Chrysalis. De vigtigste opgraderinger introduceret af Chrysalis er:
- Genanvendelige adresser: Indførelsen af Ed25519 signaturordningen, der erstatter Winternitz engangssignaturordningen (W-OTS), giver brugerne mulighed for sikkert at sende tokens fra den samme adresse flere gange;
- Ikke flere bundter: IOTA 1.0 bruger konceptet bundter til at oprette overførsler. Bundles er et sæt transaktioner, der er forbundet med deres rodreference (trunk). Med IOTA 1.5-opdateringen fjernes den gamle bundle-konstruktion og erstattes af de mere simple Atomic-transaktioner. Tangle-vertexet er repræsenteret af meddelelsen, som er en slags container, der kan have vilkårlige nyttelaster (dvs. Token-nyttelast eller indekserings-nyttelast);
- UTXO-model: oprindeligt brugte IOTA 1.0 en kontobaseret model til at spore individuelle IOTA-tokens: hver IOTA-adresse havde et antal tokens, og det samlede antal tokens fra alle IOTA-adresser var lig med det samlede udbud. I stedet bruger IOTA 1.5 den ubrugte transaktionsoutputmodel, eller UTXO, baseret på ideen om at spore ubrugte mængder af tokens via en datastruktur kaldet output;
- Op til 8 forældre: med IOTA 1.0 skulle du altid referere til 2 overordnede transaktioner. Med Chrysalis introduceres et større antal refererede forældreknuder (op til 8). For at opnå de bedste resultater anbefales mindst 2 unikke forældre ad gangen.
RELATEREDE LINKS
For mere information om Chrysalis, se venligst denne dokumentationsside
Proof-of-Work
IOTA-protokollen bruger Proof-of-Work som et middel til at hastighedsbegrænse netværket.
IOTA 1.0 brugte Curl-P-81 trinær hash-funktion og krævede en hash med det matchende antal efterfølgende nul trits for at udstede en transaktion til Tangle.
Med Chrysalis er det muligt at udstede binære meddelelser af vilkårlig størrelse. Denne RFC beskriver, hvordan man tilpasser den eksisterende PoW-mekanisme til de nye krav. Det sigter mod at være så mindre forstyrrende som muligt for den nuværende PoW-mekanisme.
Arkitektur
Denne STM32Cube-udvidelse muliggør udvikling af applikationer, der tilgår og bruger IOTA DLT-middleware.
Den er baseret på STM32CubeHAL-hardwareabstraktionslaget til STM32-mikrocontrolleren og udvider STM32Cube med en specifik bordstøttepakke (BSP) til mikrofonudvidelseskortet og middleware-komponenter til lydbehandling og USB-kommunikation med en pc.
Softwarelagene, der bruges af applikationssoftwaren til at få adgang til og bruge mikrofonudvidelseskortet er:
- STM32Cube HAL-lag: giver et generisk, multi-instans sæt af API'er til at interagere med de øverste lag (applikationen, biblioteker og stakke). Det består af generiske API'er og udvidelses-API'er baseret på en fælles arkitektur, som tillader andre lag som middleware-laget at fungere uden specifikke Microcontroller Unit (MCU)-hardwarekonfigurationer. Denne struktur forbedrer genbrugbarheden af bibliotekskode og garanterer nem enhedsportabilitet.
- Board Support Package (BSP) lag: er et sæt API'er, som giver en programmeringsgrænseflade til visse kortspecifikke perifere enheder (LED, brugerknap osv.). Denne grænseflade hjælper også med at identificere den specifikke kortversion og giver support til initialisering af nødvendige MCU-ydre enheder og læsning af data.
Figur 1. X-CUBE-IOTA1 softwarearkitektur
Mappestruktur
Figur 2. X-CUBE-IOTA1 mappestruktur
Følgende mapper er inkluderet i softwarepakken:
- Dokumentation: indeholder en kompileret HTML file genereret ud fra kildekoden og detaljeret dokumentation af softwarekomponenterne og API'er
- Drivere: indeholder HAL-driverne og de kortspecifikke drivere til understøttede kort- og hardwareplatforme, inklusive dem til de indbyggede komponenter og det CMSIS-leverandøruafhængige hardwareabstraktionslag til ARM® Cortex®-M-processorserien
- Mellemvarer: indeholder biblioteker med FreeRTOS; Wi-Fi-styring; kryptering, hashing, meddelelsesgodkendelse og digital signering (Cryptolib); sikkerhed på transportniveau (MbedTLS); IOTA Client API til at interagere med Tangle
- Projekter: indeholder examples til at hjælpe dig med at udvikle en IOTA DLT Client-applikation til den understøttede STM32-baserede platform (B-L4S5I-IOT01A), med tre udviklingsmiljøer, IAR Embedded Workbench for ARM (EWARM), RealView Microcontroller Development Kit (MDK-ARM) og STM32CubeIDE
API
Detaljeret teknisk information med fuld bruger API-funktion og parameterbeskrivelse er i en kompileret HTML file i mappen "Dokumentation".
Beskrivelse af IOTA-klientapplikation
Projektet files for IOTA-Client-applikationen kan findes i: $BASE_DIR\Projects\B-L4S5IIOT01A\Applications\IOTA-Client.
Byggeklare projekter er tilgængelige for flere IDE'er.
Brugergrænsefladen leveres via seriel port og skal konfigureres med følgende indstillinger:
Figur 3. Tera Term – Terminalopsætning
Figur 4. Tera Term – Opsætning af seriel port
Følg nedenstående procedure for at køre programmet.
Trin 1. Åbn en seriel terminal for at visualisere loggen over meddelelser.
Trin 2. Indtast din Wi-Fi-netværkskonfiguration (SSID, sikkerhedstilstand og adgangskode).
Trin 3. Indstil TLS root CA-certifikater.
Trin 4. Kopiér og indsæt indholdet af Projects\B-L4S5I-IOT01A\Applications\IOTAClient\usertrust_thetangle.pem. Enheden bruger dem til at godkende fjernværterne gennem TLS.
Note: Efter konfiguration af parametrene kan du ændre dem ved at genstarte kortet og trykke på brugerknappen (blå knap) inden for 5 sekunder. Disse data vil blive gemt i Flash-hukommelsen.
Figur 5. Wi-Fi-parameterindstillinger
Trin 5. Vent på, at meddelelsen "Tryk på en vilkårlig tast for at fortsætte" vises. Skærmen opdateres derefter med listen over hovedfunktionerne:
- Send en generisk indekseringsmeddelelse
- Send en indekseringssensormeddelelse (inklusive timestamp, temperatur og luftfugtighed)
- Få balance
- Send transaktion
- Andre funktioner
Figur 6. Hovedmenu
Trin 6. Vælg mulighed 3 for at teste en af følgende funktioner:
Få node info | Få tips |
Få output | Output fra adresse |
Få balance | Svarfejl |
Få besked | Send besked |
Find besked | Test tegnebog |
Budskabsbygger | Test krypto |
Figur 7. Andre funktioner
RELATEREDE LINKS
For yderligere detaljer om IOTA 1.5-funktioner henvises til IOTA C Client-dokumentationen
Vejledning til opsætning af systemet
Hardware beskrivelse
STM32L4+ Discovery kit IoT node
B-L4S5I-IOT01A Discovery kit til IoT node giver dig mulighed for at udvikle applikationer til direkte forbindelse til cloud-servere.
Discovery-sættet muliggør en bred vifte af applikationer ved at udnytte lav-effekt kommunikation, multi-way sensing og ARM®Cortex® -M4+ kerne-baserede STM32L4+ serie funktioner.
Den understøtter Arduino Uno R3 og PMOD-forbindelse og giver ubegrænsede udvidelsesmuligheder med et stort udvalg af dedikerede tilføjelseskort.
Figur 8. B-L4S5I-IOT01A Discovery kit
Hardware opsætning
Følgende hardwarekomponenter er nødvendige:
- et STM32L4+ Discovery-kit til IoT-node udstyret med Wi-Fi-interface (bestillingskode: B-L4S5I-IOT01A)
- et USB type A til Mini-B USB Type B-kabel til at forbinde STM32-opdagelseskortet til pc'en
Software opsætning
Følgende softwarekomponenter er nødvendige for at konfigurere udviklingsmiljøet til oprettelse af IOTA DLT-applikationer til B-L4S5I-IOT01A:
- X-CUBE-IOTA1: Firmware og relateret dokumentation er tilgængelig på st.com
- udviklingsværktøjskæde og compiler: STM32Cube-udvidelsessoftwaren understøtter følgende miljøer:
– IAR Embedded Workbench til ARM ® (EWARM) værktøjskæde + ST-LINK/V2
– VirkeligView Microcontroller Development Kit (MDK-ARM) værktøjskæde + ST-LINK/V2
– STM32CubeIDE + ST-LINK/V2
Systemopsætning
B-L4S5I-IOT01A Discovery-kortet gør det muligt at udnytte IOTA DLT-funktionerne. Kortet integrerer ST-LINK/V2-1 debugger/programmør. Du kan downloade den relevante version af ST-LINK/V2-1 USB-driveren på STSW-LINK009.
Revisionshistorie
Tabel 2. Dokumentrevisionshistorik
Dato | Revision | Ændringer |
13-jun-19 | 1 | Første udgivelse |
18-jun-19 | 2 | Opdateret afsnit 3.4.8.1 TX_IN og TX_OUT, afsnit 3.4.8.3 Afsendelse af data gennem nul-værdi transaktioner og afsnit 3.4.8.4 Afsendelse af midler gennem overførselstransaktioner. |
6-maj-21 | 3 | Opdateret introduktion, afsnit 1 Akronymer og forkortelser, afsnit 2.1 Overview, Afsnit 2.1.1 IOTA 1.0, Afsnit 2.1.3 Proof-of-Work, Afsnit 2.2 Arkitektur, Afsnit 2.3 Mappestruktur, Afsnit 3.2 Hardwareopsætning, Afsnit 3.3 Softwareopsætning og Afsnit 3.4 Systemopsætning. Fjernet afsnit 2 og erstattet af et link i introduktionen. Fjernet afsnit 3.1.2 Transaktioner og bundter, afsnit 3.1.3 Konto og signaturer, afsnit 3.1.5 Hashing. Afsnit 3.4 Sådan skriver du ansøgninger og relaterede underafsnit, Afsnit 3.5 IOTALightNode-applikationsbeskrivelse og relaterede underafsnit og Afsnit 4.1.1 STM32 Nucleo platform tilføjet afsnit 2.1.2IOTA 1.5 – Chrysalis, afsnit 2.5 IOTA-klient applikationsbeskrivelse, afsnit 2.4 API og afsnit 3.1.1 STM32L4+ Discovery kit IoT node. |
VIGTIG BEMÆRKNING - LÆS VENLIGST NU
STMicroelectronics NV og dets datterselskaber (“ST”) forbeholder sig ret til at foretage ændringer, rettelser, forbedringer, ændringer og forbedringer af ST-produkter og / eller til dette dokument til enhver tid uden varsel. Købere skal indhente de seneste relevante oplysninger om ST-produkter, inden de afgiver ordrer. ST-produkter sælges i henhold til STs salgs- og salgsbetingelser på plads på tidspunktet for ordrebekræftelse.
Købere er eneansvarlige for valg, udvælgelse og brug af ST-produkter, og ST påtager sig intet ansvar for applikationshjælp eller design af købers produkter.
Ingen licens, hverken udtrykkelig eller underforstået, til nogen intellektuel ejendomsret er givet af ST heri.
Videresalg af ST-produkter med andre bestemmelser end de oplysninger, der er angivet heri, annullerer enhver garanti givet af ST for et sådant produkt.
ST og ST-logoet er varemærker tilhørende ST. For yderligere information om ST-varemærker henvises til www.st.com/trademarks. Alle andre produkt- eller tjenestenavne tilhører deres respektive ejere.
Oplysningerne i dette dokument erstatter og erstatter oplysninger, der tidligere er leveret i alle tidligere versioner af dette dokument.
© 2021 STMicroelectronics – Alle rettigheder forbeholdes
Dokumenter/ressourcer
![]() |
ST X-CUBE-IOTA1 Udvidelsessoftwarepakke til STM32Cube [pdfBrugermanual ST, X-CUBE-IOTA1, Udvidelse, Softwarepakke, til, STM32Cube |