Введение 3
Глоссарий 6
Формирование технического задания к приложению 7
Разработка смарт-контрактов (серверная часть) 9
Особенности разработки смарт-контрактов 10
Ownable - идентификатор владельца. 10
SensorStruct - хранилище структур организации. 10
SensorUser - хранилище и модификаторы доступа 11
SensorFactory - логика управления сущностями организации 12
SensorOperation - доступ к записям контракта 12
Особенности сохранения и выгрузки данных в сети блокчейн 12
Стоимость транзакций 13
Выгрузка данных 14
Клиентская часть 15
Авторизация и аутентификация 16
Основные страницы приложения 17
Страница Администратора 17
Управление датчиками 18
Информация о конкретном датчике 19
Показания по всем датчикам организации 20
Съем показаний датчиков по расписанию 21
Съем показаний 21
Сохранение данных в блокчейн 22
Хранение в локальных и общих сетях 23
Заключение 25
Обзор литературы 26
Список использованной литературы 31
Приложение 32
Листинг смарт-контрактов 32
Взаимодействие со смарт-контрактом со стороны клиента
В современном мире, взаимосвязанном и объединенном глобальной сетью, экономическая деятельность осуществляется посредством коммерческих сетей, которые стирают национальные, географические границы и границы юрисдикций. Как правило, такие сети переплетаются на торговых площадках, где производители, потребители и прочие заинтересованные лица владеют, управляют ценностями, известными под названием активы, а также реализуют свои права и привилегии на них.
Как правило, участниками транзакций (передачи активов) являются различные покупатели, продавцы и посредники, коммерческие соглашения и контракты между которыми вносятся в разнообразные реестры. Реестры являются системами учета экономической деятельности и интересов предприятий.
Реестры, использующиеся сегодня в предпринимательской деятельности, во многом несовершенны. Они неэффективны, дорогостоящи, а их функционирование непрозрачно и подвержено мошенническим манипуляциям и неправомерным действиям. Эти проблемы являются следствием использования сторонних централизованных систем, основанных на доверии. Такие централизованные системы реестров создают своего рода помехи и препятствия, растягивающие время выполнения транзакций.
В настоящее время мы являемся свидетелями разработки и внедрения совершенно новых технологий, способствующих улучшению экономической инфраструктуры. Одной из таких технологий является технология распределенного реестра.
Данная технология предоставляет возможность участникам сети совершать операции, основанные на договорных основах, при этом не прибегая к услугам сторонних лиц. Все участники сети могут иметь свою собственную, идентичную копию реестра, при этом любые изменения в реестре отражаются во всех копиях. Безопасность и достоверность хранимых обеспечена технологией блокчейн (от англ. blockchain - цепочка блоков), заложенной в основу распределенных реестров (подробнее о технологии блокчейн изложено в обзоре литературы).
Благодаря представленной технологии блокчейн появилась возможность хранить полученную информацию в распределенной базе данных взамен имеющихся централизованных систем.
Необходимая для записи и хранения показаний датчиков логика реализована в смарт-контрактах - алгоритмах, для заключения и поддержания контрактов в сети блокчейн. Смарт-контракт позволяет описать выполнение транзакций на программном языке.
На текущий момент наиболее распространенным инструментом для работы со смарт-контрактами является система Ethereum [1], предоставляющая возможность разработки на Тьюринг-полных языках.
Целью данной работы является разработка системы записи и хранения показаний датчиков организаций в сети блокчейн. В рамках данной цели будут рассмотрены возможные способы хранения показаний и управления ими как в общей сети блокчейн, так и в приватной сети отдельно взятой организации.
Конечное приложение будет выполнять следующие задачи:
1) Авторизация, аутентификация пользователей для записи и съема показателей
2) Непосредственная запись данных в блокчейн приватный и общий
3) Интеграция системы с api-датчиков показаний счетчиков
Разработка контрактов системы будет вестись на языке Solidity. В связи с тем, что не все возможности ООП языков реализованы реализованы в данном языке, будет проведен поиск возможных решений для выполнения вышеуказанных задач.
Таким образом, в данной работе выделены следующие задачи:
1) Изучение имеющегося стека технологий и их возможностей для разработки смарт-контрактов
2) Разработка системы смарт-контрактов для сети Ethereum
3) Публикация смарт контрактов в сети Ethereum, в том числе в публичном и приватном блокчейне
4) Разработка веб-приложения для взаимодействия со смарт- контрактом
В результате выполнения данной работы были выполнены следующие задачи:
1) Была проведена аналитическая работа по изучению необходимого стека технологий, необходимых для разработки децентрализованного приложения.
2) Разработана и опубликована в тестовой сети Ropsten система смарт- контрактов по сохранению показаний датчиков в распределенном реестре (блокчейн-сеть)
3) Разработана клиентская часть децентрализованного веб-приложения с использованием инструмента Node.js и JavaScript-фреймворков.
4) Успешно протестирована работоспособность приложения на тестовой сети Ropsten Network.
Конечная цель - децентрализованное приложение, взаимодействующее с сетью блокчейн - была успешно достигнута. Также имеются перспективы для дальнейшего совершенствования функционала, например, переход с технологий Ethereum на Telegram Open Network в случае, если в последней будет реализован механизм шардчейнов.
1. Ethereum Project. Документация по работе с Ethereum [Электронный ресурс]https: //www.ethereum.org/
2. Marco lansiti, Karim R. Lakhani. Harvard Business Review//The Truth About Blockchain [Электронный ресурс]https://hbr. org/2017/01 /the-truth-about-blockchain
3. Habrahabr. TON: Telegram Open Network. Часть 2: Блокчейны, шардирование [Электронный ресурс]https://habr.com/post/354568/
4. Don Tapscott. MCKinsey&Company//How blockchains could change the world [Электронный ресурс]https: //www. mckinsey.com/industries/high-tech/our-insights/how-blockchains-could-change-the-world
5. Jeff Desjardins. VisualCapitalist//The Power of Smart Contracts on the Blockchain [Электронный ресурс]http://www.visualcapitalist.com/smart-contracts-blockchain
6. NASDAQ//Smart Contracts and the Future of Banking [Электронный
ресурс] http://www.nasdaq.com/article/smart-contracts-and-the-future-of-
banking-cm849118
7. Habrahabr^^ умные контракты изменят нашу жизнь [Электронный ресурс]https://habrahabr.ru/company/exante/blog/321548
8. Lukas K. Medium//This is How Smart Contracts and Ethereum Work.
[Электронный ресурс] https://medium.com/startup-grind/gentle-intro-to-
blockchain-and-smart-contracts-part-2-30a6c9a40946