UM2606
Руководство пользователя
Начало работы с распределенным реестром IOTA
Расширение технологического программного обеспечения для STM32Cube
Введение
The X-КУБ-IOTA1 программный пакет расширения для STM32Куб работает на STM32 и включает промежуточное ПО для включения функций IOTA Distributed Ledger Technology (DLT).
IOTA DLT - это уровень расчета транзакций и передачи данных для Интернета вещей (IoT). IOTA позволяет людям и машинам передавать деньги и / или данные без каких-либо комиссий за транзакции в не требующей доверия, не требующей разрешения и децентрализованной среде. Эта технология даже делает возможными микроплатежи без необходимости в каком-либо доверенном посреднике. Расширение построено на программной технологии STM32Cube, чтобы упростить переносимость между различными микроконтроллерами STM32. Текущая версия программного обеспечения работает на B-L4S5I-IOT01A Комплект обнаружения для узла IoT и подключается к Интернету через подключенный интерфейс Wi-Fi.
ССЫЛКИ ПО ТЕМЕ
Посетите экосистему STM32Cube web страницу на www.st.com для получения дополнительной информации
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
Акронимы и Аббревиатуры
Таблица 1. Список сокращений
Акроним | Описание |
ДЛТ | Технология распределенного реестра |
ИДЕ | Интегрированная среда развития |
Интернет вещей | Интернет вещей |
PoW | Доказательство работы |
Расширение программного обеспечения X-CUBE-IOTA1 для STM32Cube
Надview
The X-КУБ-IOTA1 программный пакет расширяется STM32Куб функциональность со следующими ключевыми особенностями:
- Полная прошивка для создания приложений IOTA DLT для плат на базе STM32
- Библиотеки промежуточного программного обеспечения, включающие:
- FreeRTOS
- Управление Wi-Fi
- шифрование, хеширование, аутентификация сообщений и цифровая подпись (Cryptolib)
- безопасность на транспортном уровне (MbedTLS)
- IOTA Client API для взаимодействия с Tangle - Полный драйвер для создания приложений, использующих датчики движения и окружающей среды
- Exampфайлы, которые помогут понять, как разработать клиентское приложение IOTA DLT.
- Простая переносимость между различными семействами микроконтроллеров благодаря STM32Cube
- Бесплатные, удобные условия лицензии
Расширение программного обеспечения предоставляет промежуточное программное обеспечение для включения IOTA DLT на микроконтроллере STM32. IOTA DLT - это уровень расчета транзакций и передачи данных для Интернета вещей (IoT). IOTA позволяет людям и машинам передавать деньги и / или данные без каких-либо комиссий за транзакции в не требующей доверия, не требующей разрешения и децентрализованной среде. Эта технология даже делает возможными микроплатежи без необходимости в каком-либо доверенном посреднике.
ИОТА 1.0
Технологии распределенного реестра (DLT) построены на сети узлов, которая поддерживает распределенный реестр, который является криптографически защищенной распределенной базой данных для записи транзакций. Узлы выдают транзакции через протокол консенсуса.
IOTA - это технология распределенного реестра, специально разработанная для Интернета вещей.
Распределенный реестр IOTA называется клубком и создается транзакциями, выпущенными узлами в сети IOTA.
Чтобы опубликовать транзакцию в клубке, узел должен:
- проверить две неутвержденные транзакции, называемые подсказками
- создать и подписать новую транзакцию
- выполнить достаточное подтверждение работы
- транслировать новую транзакцию в сеть IOTA
Транзакция присоединяется к путанице вместе с двумя ссылками, указывающими на подтвержденные транзакции.
Эту структуру можно смоделировать как направленный ациклический граф, где вершины представляют отдельные транзакции, а ребра представляют собой ссылки между парами транзакций.
Генезисная транзакция находится в корне клубка и включает в себя все доступные токены IOTA, называемые йотами.
IOTA 1.0 использует довольно нетрадиционный подход к реализации, основанный на троичном представлении: каждый элемент в IOTA описывается с использованием trits = -1, 0, 1 вместо битов и trytes из 3 trits вместо байтов. Трите представляется целым числом от -13 до 13, закодированным с помощью букв (AZ) и числа 9.
IOTA 1.5 (Chrysalis) заменяет макет тройной транзакции двоичной структурой.
Сеть IOTA включает узлы и клиенты. Узел подключен к одноранговым узлам в сети и хранит копию клубка. Клиент - это устройство с семенем, которое будет использоваться для создания адресов и подписей.
Клиент создает и подписывает транзакции и отправляет их на узел, чтобы сеть могла их проверить и сохранить. Транзакции вывода должны содержать действительную подпись. Когда транзакция считается действительной, узел добавляет ее в свою бухгалтерскую книгу, обновляет балансы затронутых адресов и транслирует транзакцию своим соседям.
IOTA 1.5 - Хризалис
Цель IOTA Foundation - оптимизировать основную сеть IOTA до Coordicide и предложить готовое решение для экосистемы IOTA. Это достигается промежуточным обновлением под названием Chrysalis. Основные улучшения, представленные Chrysalis:
- Многоразовые адреса: принятие схемы подписи Ed25519, заменяющей схему однократной подписи Winternitz (W-OTS), позволяет пользователям безопасно отправлять токены с одного и того же адреса несколько раз;
- Нет больше пакетов: IOTA 1.0 использует концепцию пакетов для создания переводов. Пакеты - это набор транзакций, связанных вместе их корневой ссылкой (стволом). С обновлением IOTA 1.5 старая конструкция пакета удалена и заменена более простыми атомарными транзакциями. Вершина Tangle представлена сообщением, которое является своего рода контейнером, который может иметь произвольные полезные данные (например, полезные данные токена или полезные данные индексации);
- Модель UTXO: изначально IOTA 1.0 использовала модель на основе учетной записи для отслеживания отдельных токенов IOTA: каждый адрес IOTA содержал определенное количество токенов, а совокупное количество токенов со всех адресов IOTA было равно общему количеству токенов. Вместо этого IOTA 1.5 использует модель вывода неизрасходованной транзакции или UTXO, основанную на идее отслеживания неизрасходованного количества токенов через структуру данных, называемую выводом;
- До 8 родительских транзакций: с IOTA 1.0 вам всегда приходилось ссылаться на 2 родительские транзакции. В Chrysalis добавлено большее количество родительских узлов, на которые есть ссылки (до 8). Для достижения наилучших результатов рекомендуется одновременное использование как минимум 2 уникальных родителей.
ССЫЛКИ ПО ТЕМЕ
Для получения дополнительной информации о куколке Хризалис, пожалуйста, обратитесь к этой странице документации.
Доказательство работы
Протокол IOTA использует Proof-of-Work как средство ограничения скорости сети.
IOTA 1.0 использовал Curl-P-81, и требовал хеш-функции с соответствующим числом завершающих нулевых тритов для выполнения транзакции в Tangle.
С помощью Chrysalis можно отправлять двоичные сообщения произвольного размера. В этом RFC описывается, как адаптировать существующий механизм PoW к новым требованиям. Он нацелен на то, чтобы быть как можно менее разрушительным для текущего механизма PoW.
Архитектура
Это расширение STM32Cube позволяет разрабатывать приложения, обращающиеся к промежуточному программному обеспечению IOTA DLT и использующие его.
Он основан на уровне аппаратной абстракции STM32CubeHAL для микроконтроллера STM32 и расширяет STM32Cube специальным пакетом поддержки платы (BSP) для платы расширения микрофона и компонентов промежуточного программного обеспечения для обработки звука и USB-связи с ПК.
Программные уровни, используемые прикладным программным обеспечением для доступа и использования платы расширения микрофона, следующие:
- Уровень STM32Cube HAL: предоставляет общий набор API с несколькими экземплярами для взаимодействия с верхними уровнями (приложением, библиотеками и стеками). Он состоит из общих и расширенных API-интерфейсов, основанных на общей архитектуре, которая позволяет другим уровням, таким как уровень промежуточного программного обеспечения, работать без определенных аппаратных конфигураций микроконтроллера (MCU). Такая структура улучшает возможность повторного использования кода библиотеки и гарантирует легкую переносимость устройства.
- Уровень пакета поддержки платы (BSP): представляет собой набор API-интерфейсов, который предоставляет программный интерфейс для определенных периферийных устройств платы (светодиод, пользовательская кнопка и т. Д.). Этот интерфейс также помогает идентифицировать конкретную версию платы и обеспечивает поддержку для инициализации необходимых периферийных устройств MCU и чтения данных.
Рисунок 1. Архитектура программного обеспечения X-CUBE-IOTA1.
Структура папок
Рисунок 2. Структура папок X-CUBE-IOTA1
В программный пакет входят следующие папки:
- Документация: содержит скомпилированный HTML file генерируется из исходного кода и подробной документации программных компонентов и API
- Водители: содержит драйверы HAL и драйверы для конкретных плат для поддерживаемых плат и аппаратных платформ, включая драйверы для встроенных компонентов и независимый от поставщика уровень аппаратной абстракции CMSIS для процессоров серии ARM® Cortex®-M
- Промежуточное ПО: содержит библиотеки с FreeRTOS; Управление Wi-Fi; шифрование, хеширование, аутентификация сообщений и цифровая подпись (Cryptolib); безопасность на транспортном уровне (MbedTLS); IOTA Client API для взаимодействия с Tangle
- Проекты: содержит бывшийampфайлы, которые помогут вам разработать клиентское приложение IOTA DLT для поддерживаемой платформы на основе STM32 (B-L4S5I-IOT01A) с тремя средами разработки: IAR Embedded Workbench for ARM (EWARM), RealView Комплект для разработки микроконтроллеров (MDK-ARM) и STM32CubeIDE
API
Подробная техническая информация с полной пользовательской функцией API и описанием параметров находится в скомпилированном HTML. file в папке «Документация».
Описание приложения IOTA-Client
Проект files для приложения IOTA-Client можно найти в: $ BASE_DIR \ Projects \ B-L4S5IIOT01A \ Applications \ IOTA-Client.
Готовые к сборке проекты доступны для нескольких IDE.
Пользовательский интерфейс предоставляется через последовательный порт и должен быть настроен со следующими параметрами:
Рисунок 3. Tera Term - Настройка терминала
Рисунок 4. Tera Term - Настройка последовательного порта.
Чтобы запустить приложение, выполните описанную ниже процедуру.
Шаг 1. Откройте последовательный терминал, чтобы просмотреть журнал сообщений.
Шаг 2. Введите конфигурацию вашей сети Wi-Fi (SSID, режим безопасности и пароль).
Шаг 3. Установите сертификаты корневого CA TLS.
Шаг 4. Скопируйте и вставьте содержимое Projects \ B-L4S5I-IOT01A \ Applications \ IOTAClient \ usertrust_thetangle.pem. Устройство использует их для аутентификации удаленных хостов через TLS.
Примечание: После настройки параметров вы можете изменить их, перезапустив плату и нажав кнопку User (синяя кнопка) в течение 5 секунд. Эти данные будут сохранены во флэш-памяти.
Рисунок 5. Настройки параметров Wi-Fi.
Шаг 5. Дождитесь появления сообщения «Нажмите любую клавишу, чтобы продолжить». Затем экран обновляется со списком основных функций:
- Отправить общее сообщение об индексации
- Отправить сообщение датчика индексации (включаяamp, Температура и влажность)
- Получите баланс
- Отправить транзакцию
- Другие функции
Рисунок 6. Главное меню
Шаг 6. Выберите вариант 3, чтобы проверить одну из следующих функций:
Получить информацию об узле | Получите советы |
Получить вывод | Выходы с адреса |
Получите баланс | Ошибка ответа |
Получить сообщение | Отправить сообщение |
Найти сообщение | Тестовый кошелек |
Построитель сообщений | Тестовая криптовалюта |
Рисунок 7. Другие функции
ССЫЛКИ ПО ТЕМЕ
Дополнительные сведения о функциях IOTA 1.5 см. В документации клиента IOTA C.
Руководство по настройке системы
Описание оборудования
STM32L4 + Discovery Kit IoT узел
Комплект B-L4S5I-IOT01A Discovery для узла IoT позволяет разрабатывать приложения для прямого подключения к облачным серверам.
Комплект Discovery позволяет использовать широкий спектр приложений за счет использования маломощной связи, многостороннего зондирования и функций серии STM4L32 + на базе ядра ARM®Cortex® -M4 +.
Он поддерживает подключение к Arduino Uno R3 и PMOD, обеспечивая неограниченные возможности расширения с большим выбором специализированных дополнительных плат.
Рисунок 8. Комплект B-L4S5I-IOT01A Discovery.
Настройка оборудования
Необходимы следующие аппаратные компоненты:
- один комплект обнаружения STM32L4 + для узла IoT, оснащенного интерфейсом Wi-Fi (код заказа: B-L4S5I-IOT01A)
- кабель USB типа A - Mini-B USB типа B для подключения платы обнаружения STM32 к ПК.
Настройка программного обеспечения
Следующие программные компоненты необходимы для настройки среды разработки для создания приложений IOTA DLT для B-L4S5I-IOT01A:
- X-CUBE-IOTA1: прошивка и сопутствующая документация доступны на st.com
- Цепочка инструментов разработки и компилятор: программное обеспечение расширения STM32Cube поддерживает следующие среды:
- Набор инструментов IAR Embedded Workbench для ARM ® (EWARM) + ST-LINK / V2
- НастоящийView Набор инструментов для разработки микроконтроллеров (MDK-ARM) + ST-LINK / V2
- STM32CubeIDE + ST-LINK / V2
Настройка системы
Плата B-L4S5I-IOT01A Discovery позволяет использовать функции IOTA DLT. Плата объединяет отладчик / программатор ST-LINK / V2-1. Вы можете загрузить соответствующую версию драйвера USB ST-LINK / V2-1 по адресу STSW-LINK009.
История изменений
Таблица 2. История изменений документа
Дата | Пересмотр | Изменения |
13-июн-19 | 1 | Первоначальный выпуск |
18-июн-19 | 2 | Обновлен раздел 3.4.8.1 TX_IN и TX_OUT, раздел 3.4.8.3 Отправка данных через нулевое значение. транзакции и Раздел 3.4.8.4 Отправка средств посредством транзакций перевода. |
6-мая-21 | 3 | Обновлено Введение, Раздел 1 Аббревиатуры и сокращения, Раздел 2.1 Сверхview, Раздел 2.1.1 IOTA 1.0, Раздел 2.1.3 Proof-of-Work, Раздел 2.2 Архитектура, Раздел 2.3 Структура папок, Раздел 3.2 Настройка оборудования, Раздел 3.3 Настройка программного обеспечения и Раздел 3.4 Настройка системы. Раздел 2 удален и заменен ссылкой во Введении. Удален Раздел 3.1.2 Транзакции и пакеты, Раздел 3.1.3 Учетная запись и подписи, Раздел 3.1.5 Хеширование. Раздел 3.4 Как писать приложения и связанные подразделы, Раздел 3.5 Описание приложения IOTALightNode и связанные подразделы и Раздел 4.1.1 STM32 Платформа Nucleo Добавлен раздел 2.1.2 IOTA 1.5 - Chrysalis, раздел 2.5 Описание приложения IOTA-Client, раздел 2.4 API и раздел 3.1.1 Узел IoT комплекта STM32L4 + Discovery. |
ВАЖНОЕ ПРИМЕЧАНИЕ - ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ
STMicroelectronics NV и ее дочерние компании («ST») оставляют за собой право вносить изменения, исправления, улучшения, модификации и улучшения в продукты ST и / или в этот документ в любое время без предварительного уведомления. Перед размещением заказов покупатели должны получить самую последнюю актуальную информацию о продукции ST. Продукция ST продается в соответствии с условиями продажи ST, действующими на момент подтверждения заказа.
Покупатели несут исключительную ответственность за выбор, выбор и использование продуктов ST, и ST не несет ответственности за помощь в применении или разработку продуктов Покупателей.
Компания ST не предоставляет никаких лицензий, явных или подразумеваемых, на какие-либо права интеллектуальной собственности.
Перепродажа продукции ST с условиями, отличными от изложенных в настоящем документе, аннулирует любую гарантию, предоставленную ST на такую продукцию.
ST и логотип ST являются товарными знаками ST. Для получения дополнительной информации о товарных знаках ST посетите сайт www.st.com/trademarks. Все остальные названия продуктов или услуг являются собственностью их владельцев.
Информация в этом документе заменяет информацию, ранее предоставленную в предыдущих версиях этого документа.
© 2021 STMicroelectronics – Все права защищены
Документы/Ресурсы
![]() |
Пакет программного обеспечения расширения ST X-CUBE-IOTA1 для STM32Cube [pdf] Руководство пользователя ST, X-CUBE-IOTA1, расширение, программный пакет, для, STM32Cube |