29 декабря 2020

Robonomics, RWS, Robonomics в Polkadot: что есть что и как это работает

Сегодня я хочу рассказать больше о том, как связаны платформы Robonomics, парачейн Robonomics в экосистеме Polkadot и Robonomics Web Services (RWS).

Платформа Robonomics Network состоит из множества различных репозиториев программного кода, которые могут быть использованы для реализации отдельных участков полноценной цепочки IoT-приложения. Разработать само мобильное приложение или веб-сервис или подключить датчик – еще не достаточно, если вы хотите получить доступ к умному устройству с телефона. Для этого нужно выполнить целую цепочку действий, в результате чего у вас появится весь набор взаимосвязанных элементов инфраструктуры – и только тогда сигнал от самого устройства дойдет до вас в том виде, в котором вы хотите.

Хронология развития проекта Robonomics Network

Начну с того, как мы решили создать парачейн Robonomics и платформу Robonomics Network. В 2015–2017 гг. мы начали с создания достаточно сложного решения и назвали его “Экономика роботов” (Economy of Robots). Сейчас об этой идее не говорят в том контексте, который сразу всплывает в наших головах. Но мы точно знаем, что все концепты умных городов, Индустрии 4.0 и вообще направление развития IoT-приложений двигаются в сторону этой самой экономики роботов.

Первая из поставленных нами целей заключалась в том, чтобы сделать киберфизические или автоматизированные системы управления чем-либо автономными и самостоятельными в плане проведения технико-экономических транзакций. Мы решили показать, как сгенерировать технико-экономическую транзакцию, чтобы после этого можно было реализовывать сложные комплексные процессы.

Например, один из моих любимых сценариев такого IoT-приложения экономики роботов называется Smart Building Offsetting. Этот сервис позволяет умному зданию выступать в роли автономного агента, собирать данные со счетчиков всего дома, агрегировать информацию о потреблении электроэнергии, обращаться к другому агенту внутри Robonomics Network и запрашивать у него услуги по углеродной нейтральности. Этот агент видит, из какой географической точки поступило обращение и каковым будет коэффициент потребления угля и газа (выбросов СО2). Затем с помощью нашего партнерского проекта DAO IPCI он определяет количество сохраненных углеродных единиц с настоящего рынка “зеленых” финансов, которые необходимы для погашения углеродного следа. Мы перевели все это на блокчейн Ethereum.

На сегодняшний день “экономика роботов” представляет собой крайне сложную цепочку, которую можно назвать “конечным пунктом” развития IoT-индустрии. В 2017 году нам удалось ее выстроить в кооперации с нашими коллегами. Однако самая большая проблема заключалась в том, что мы собирали знания и реализовывали наши идеи, но никому не могли их передать. Когда мы занимались разработкой Robonomics Network как платформы, показывая сценарии экономики роботов, мы оказались в ситуации, когда продукт становился все сложнее для понимания со стороны. Нужно обладать достаточным количеством компетенций и потратить годы, чтобы понимать идеи на пересечении множества дисциплин и видеть, как будут работать концепции экономического вмешательства машин.

Когда ты только начинаешь понимать все нюансы построения IoT-приложения, нужно также помнить, что на завершенный и работающий продукт уйдут годы работы технических специалистов.
Поэтому сейчас мы сфокусированы на том, чтобы обучить потенциальных пользователей нашей платформы и превратить их в со-разработчиков. Условно говоря, вырастить инженеров-профессионалов, начиная с базового уровня разработки IoT решений. Именно поэтому мы решили создать свой Robonomics парачейн и Robonomics Web Services.

Как работает Robonomics Web Services?

Как правило, добравшись до темы экономики роботов, пользователь ею заинтересовывается. Но проблема состоит в том, что после этого он уходит на Amazon Web Services для IoT, наблюдает там за своим датчиком и не вникает в преимущества, которые может дать Robonomics Network в сравнении с IT-гигантами. Так мы пришли к выводу, что нельзя обещать что-то на будущее, не предлагая того, что можно использовать прямо сейчас.

Мы решили, что должны дать нашим потенциальным пользователям набор сервисов, аналогичный тому, который сегодня предлагают облачные платформы – но только лучше. Следствием такого решения стал запуск Robonomics Web Services. Для их построения мы использовали наш протокол и платформу с использованием открытого фреймворка робототехники (ROS). В течение последних двух лет мы реализовали необходимый набор функций – и на нем я остановлюсь подробнее.

Какие функции мы выделили для работы RWS:

1) Subscription.

При стандартном подходе к реализации блокчейн-решений оплата происходит за совершенную транзакцию (transaction fee или transaction gas). Но возьмем более сложную модель с газом в Ethereum компьютере, где вы сами можете назначить размер вознаграждения за единицу вычислений, и от этого будет зависеть ваша приоритетность в очереди на исполнение. Такая модель не подходит системам, которым нужно иметь гарантированную пропускную способность. Вы должны быть уверены в том, что ваше устройство в определенный период времени гарантированно отправит свою транзакцию и ее стоимость будет предсказуема – а не так, как это происходит на пиках во время колебания курса и стоимость одной транзакции достигает $50.

Именно поэтому мы создали альтернативную модель в парачейне Robonomics для Polkadot — подписку. Она дает вам гарантированную возможность проводить оплаченное количество транзакций в блоке, и все они будут идти в приоритете относительно транзакций с оплатой fee. Разницу между XRT токенами и ежемесячной подпиской я объясняю в статье “Гетерогенная токеномика”, а в новом материале, который выйдет в конце декабря, также опишу конечную архитектуру и взаимосвязь двух моделей.

С помощью подписки мы решили проблему гарантированной отправки транзакции. Это будет выгодно для пользователя и стоить $10 в месяц за устройство. Благодаря этому можно быть уверенным, что получишь стабильную пропускную способность в сотни тысяч транзакций в месяц – что довольно крутой показатель.

2) Launch.

Очень простая функция – экономичная с точки зрения использования вычислений и блокчейна. Она позволяет включить или выключить устройство по запросу в виде транзакции, а также изменить его бинарное состояние с 1 на 0 или обратно. Каких-либо сложностей здесь не предполагается, поэтому останавливаться на этом пункте большой необходимости нет.

3) Datalog.

Эта функция позволит работать с телеметрией, поэтому ее я рассмотрю детальнее. Она может работать в двух режимах: вы можете сохранять хэши из IPFS или записывать данные в чейн.

Как эти режимы использовать? Функция datalog записи в чейн нужна, когда объем данных невелик (до четырех переменных). Сохранять их в IPFS и заморачиваться над их хранением вне чейна не имеет смысла, так как по байтам получится не намного больше, чем сохранить хэш IPFS. Мы предлагаем писать одной функцией весь сырой поток данных или записывать хэш IPFS. А Robonomics, уже как платформа для разработчика, будет обрабатывать то, что вы туда пишете – сырые данные или хэш IPFS, – а потом быстро определять, куда их записать. В самом приложении обработка будет скрыта от пользователя и он даже не заметит разницы, где именно хранятся данные.

Четвертая функция – Liability – пока ждет своего часа. Ее реализация зависит от того, какие цели будут сформулированы будущими глобальными проектами в сфере экономики роботов. Нам еще предстоит реализовать то, что мы назвали “контрактным обязательством робота” в Ethereum или, другими словами, Robot as a service. Полную цепочку мы уже описывали в наших материалах, где рассказывали о пользователе, расплачивающимся исключительно токенами сервиса и не думающем о необходимости расплатиться XRT или другим токеном за использование парачейна.

Как взаимосвязаны RWS и экономика роботов

Ранее я упомянул о том, что Robonomics Web Services позволят “обучить” пользователя и сделать его нашим со-разработчиком, понимающим экономику роботов. Это вовсе не так сложно, как может показаться на первый взгляд. Пользователю нужно лишь разобраться с простым функционалом, описанным мною выше.

Следующий шаг использования инструментария Robonomics Web Services — научиться создавать цифрового двойника (Digital Twin), или цифровую тень (Digital Shadow) для приложения. Цифровой двойник — это цифровое представление физического объекта, которое копирует его технические характеристики.

Что это значит? Если взять сложную систему – например, датчики для оценки качества воздуха, – вы не сможете опрашивать их каждые пять секунд, потому что только на внутреннюю калибровку и стабилизацию показателей у системы уйдет две минуты. Чтобы разгрузить устройство и сделать приложение быстро реагирующим на команды пользователя — появилось понятие цифрового двойника.

Согласно последнему отчету Gartner о трендах рынка IoT, 85% вошедших в исследование компаний уже внедрили, внедряют или планируют использовать цифровых двойников в течение следующего года. Большинство компаний имеют свою команду разработки подобных решений, но для масштабирования и быстрой адаптации к условиям меняющегося рынка IoT приоритет нужно отдавать готовым решениям, которые можно быстро адаптировать к своим сервисам.

Поэтому сейчас в Robonomics Network появляется не только собственный парачейн, который мы создали для реализации описанных выше функций и недоступных в эфириуме IPFS, но и возможность создания цифровых двойников устройств.

Мы работаем над тем, чтобы вы могли конструировать своих цифровых двойников, сохранять их как модель, которая будет заполнять datalog, работать с их запуском и интерпретироваться на веб-сервисах и в приложениях IoT. В нашей wiki мы активно разрабатываем раздел создания своих цифровых двойников и вскоре дадим базовую информацию, необходимую для их построения.

После того, как модель обработки данных уже реализована и вы спроектировали цифрового двойника, нужно определить, что будет собой представлять веб-сервис или IoT-приложение по отношению к нему.

Чаще всего таким цифровым сервисом является аналитика. Датчик отправляет вам данные (точнее, обновляет свою цифровую копию) с заданной периодичностью. Скорее всего, эти данные будут проходить через некий процесс пост-обработки для того, чтобы вы получили их в виде полезной информации. К примеру, вряд ли вы хотите знать, в скольких Паскалях выражается давление в котле вашего загородного дома. Скорее вам интересно знать, холодно ли у вас дома, или же процесс нагрева уже завершился. Вы должны понять, как примерить цифрового двойника тех данных, которые вы в нем сохранили – и для этого можно связать его с дополнительным сервисом.

Обратимся к сложному сценарию Smart Building Offsetting, где цифровым двойником может выступать копия данных о потреблении электроэнергии дома. Допустим, вы хотите сохранить показания определенной квартиры. Для этого вы воспользуетесь datalog, чтобы записать весь реестр в IPFS. Если вы хотите получить суммирующий баланс по электроэнергии, то вы просто сохраните его в чейн. Если же у вас есть цифровой двойник умного здания по энергопотреблению, сервис по оффсеттингу с некоторой периодичностью будет опрашивать цифрового двойника и собирать данные, на основании которых уже выполнять дополнительные оффчейн вычисления, аналитику и дальше обращаться в Robonomics для того, чтобы оказать некоторые услуги.

Для подобных сервисов мы сделали marketplace, который можно назвать App Store для роботов.

Зачем он нужен? Для реализации модели взаимосвязанных цифровых двойников и сервисов необходима система доставки – приложение на вашем телефоне. С помощью децентрализованных реестров и того, что можно на них построить в виде децентрализованных приложений, мы можем предоставить такой маркетплейс для дублирования (вернее, создания по шаблону) индивидуальных копий и цифрового двойника для конкретного случая, делать это без посредников или внешнего хранилища. Это все можно построить на базе децентрализованной сети, чтобы маркетплейс IoT-сервисов не имел цензора и централизующего звена.

И последнее: пользовательский интерфейс. Пользователям нужно предлагать современные интернет-технологии, а значит, давать им пользоваться децентрализованными приложениями. Самая главная фишка, которую вы получаете, когда начинаете конструировать Dapp — это отсутствие уязвимостей на вашей стороне. Ваше приложение лежит в IPFS, связано c ENS реестром или регистром экосистемы Polkadot, и пользователь не получает ситуаций подмены приложения или запроса при открытии гиперссылки. Это очень удобно с точки зрения разработки пользовательского приложения и его обслуживания.

Второе: децентрализованные приложения позволяют наладить пиринговую коммуникацию. Иными словам, вы сможете сделать такое приложение, которое будет связывать устройство и с цифровым двойником, и с IoT-сервисом, и с пользовательским приложением без единой точки отказа, тем самым избавляя вас от посредника для выполнения задач. Для этого мы уже имеем robonomics.js, с помощью которого написан Dapp Robonomics. Сейчас он проходит новые итерации улучшений: вскоре появится style book по Robonomics (так называемый гайд по уже готовым интерфейсам, связанный с функциями web3.js, функциями polkadot.js) и вам останется просто структурировать приложение.
Таким образом мы и приходим к реализации полной цепочке экономики роботов.

В качестве заключения

  • Наша цель состоит в том, чтобы роботы участвовали в экономике. Но для этого нам надо научить и подготовить пользователя, чтобы он понимал, как все работает и как это настроить.
  • Для этого мы создали Robonomics Web Services с простым сервисом, позволяющим пользователю строить решения вместе с нами (subscription, launch, datalog) .
  • Подписка в RWS решает проблему платы за транзакцию. Также добавлены функции запуска устройства и телеметрии (хранение состояния цифрового двойника).
  • После создания цифрового двойника по предложенным нами шаблонам можно разработать IoT-сервис и добавить его в наш маркетплейс. В качестве системы доставки пользователю используется спроектированный набор интерфейсов в Dapp.
  • Dapp — отличный способ наладить пиринговую (прямую) коммуникацию с цифровым двойником, даже если сервис перестал работать. Маркетплейс же работает всегда, независимо от внешних обстоятельств.
  • Именно по такой цепочке мы и придем к экономике роботов в том виде, который я описал выше.