October 16, 2022

Успішно реалізовано договір відповідальності Robonomics Network на Neon EVM

Нещодавно Neon Labs співпрацювала з Robonomics Network для перевірки готовності платформи Neon до виробництва за допомогою складного робочого процесу. Вправа включала розгортання та тестування смарт-контрактів Robonomics на Neon EVM. Розгорнуті контракти дозволяють кіберфізичним системам (роботам) виконувати певні дії на основі техніко-економічних транзакцій.

У мережі Robonomics взаємодія формується між двома сторонами: Promisee, який замовляє послугу, надає опис технічного завдання і кошти на його виконання, і Promisor, який фактично виконує послугу. Взаємодію координує спеціальний вузол, який називається Провайдером. Провайдер постійно спостерігає за мережею на предмет наявності сигналів від Одержувача та Обіцяльника.

Під час вправи розглядався типовий сценарій використання:

1. Було укладено договір між Одержувачем та Обіцяльником.

2. Результуюча "робота/дія" була виконана Промісором і підтверджена третьою стороною.

3. Вузол, який сприяв укладанню контракту між двома сторонами (Одержувачем та Обіцяльником), отримав комісійну винагороду.

Для виконання замовленої роботи/дії симуляція роботизованої руки виконувала послідовність дій на підставі договору між Поручителем та Поручителем. Телеметричні дані, що відображають дії робота, були записані роботом та збережені з метою перевірки виконання робіт.

Хто такий Робономікс?

Robonomics Network - це прикладна платформа IoT з відкритим вихідним кодом, яка спрямована на використання децентралізованої архітектури шляхом атомарної передачі технічних і фінансових даних між додатками користувача, сервісами IoT і складною робототехнікою. Запуск безпечних, безсерверних додатків, які ставлять конфіденційність даних користувачів і безпеку пристроїв на перше місце на кожному рівні зв'язку, спрощується завдяки Robonomics.

Наша мета

Метою розгортання і тестування смарт-контрактів Robonomics через Neon EVM була перевірка ефективності мережі Neon зі складними робочими процесами. Цей робочий процес включає в себе:

1. Успішне виконання зобов'язань між Обіцянкою та Обіцянцем, як визначено в договорі про зобов'язання. Договір про зобов'язання - це смарт-контракт, який відтворює звичайний зв'язок між Одержувачем послуги (споживачем) та Обіцяльником (постачальником послуг). Він також включає в себе технічні та фінансові умови їх обміну. Одержувач та Обіцяльник можуть бути автономними агентами або людьми.

2. Платіж Обіцяльнику (постачальнику послуг) з боку Одержувача після успішного виконання узгодженої "роботи/дії".

3. Перевірка виконання Обіцяльником узгодженої "роботи/дії" третьою стороною, яка спостерігає за мережею Neon.

Методологія тестування

Для моделювання сценарію використання повністю автоматизованого бізнесу та послуг, що надаються кіберфізичними системами (КФС), ми обрали сценарій з двома автономними агентами, які виступають в ролі Одержувача та Обіцяльщика. Цей приклад використання ілюструє, як майбутні "розумні міста" або підприємства можуть використовувати мережі блокчейн. Успіх Neon EVM в цьому сценарії використання продемонструє його життєздатність як передового продукту.

Тестування оцінить життєвий цикл контракту відповідальності в мережі робототехніки, як показано нижче:

На ілюстрації показані дії, які виконуються для побудови контракту відповідальності. Спочатку провайдер мережі Robonomics викликає контракт Lighthouse, спеціальний смарт-контракт, який виконує транзакцію, коли вузол провайдера встановлює ринкову відповідність між парою Promisee і Promisor. Контракт Lighthouse в свою чергу викликає контракт Factory. Інформація щодо транзакції, включаючи технічне завдання, оплату за послугу, адресу валідатора і термін виконання, міститься в контракті Liability.

Команда реалізувала сценарій запуску робота за допомогою контракту відповідальності, подібного до цього прикладу, щоб відтворити інфраструктуру робототехніки в мережі Neon. Якщо ви зацікавлені в інших потенційних варіантах використання робототехніки, відвідайте сторінку Robonomics R&D.

Обсяг тестування

Обсяг тестування був зосереджений на розгорнутих контрактах:

Виконання тестування

Команда Robonomics розпочала симуляцію зі створення повідомлення-оферти та повідомлення-вимоги від Обіцянки. На цьому етапі команда очікувала, що повідомлення про відкриту оферту та повідомлення про вимогу призведуть до створення зобов'язального договору за допомогою функції createLiability контракту Lighthouse.

Після створення договору зобов'язання було проведено спостереження за контрактом XRT для перевірки коректності передачі токенів з адреси Обіцяючого на адресу договору зобов'язання.

Після того, як новий договір зобов'язання був виявлений в мережі Neon devnet, агент Обіцяльщика (імітований робот) почав працювати відповідно до інструкцій, зазначених в договорі зобов'язання. Телеметричні дані, що відображають результати роботи імітаційного робота, записувалися у файл і відправлялися в IPFS. В результаті було збережено хеш файлу телеметричних даних.

Потім договір про відповідальність був доопрацьований за допомогою функції finalizeLiability() контракту Lighthouse. На завершальному етапі команда Robonomics підтвердила, що токени були переведені з адреси договору відповідальності на адреси Обіцяльника і Валідатора.

Запис процесу можна подивитися тут. Нижче наведена діаграма зі сценарієм тестування на Neon EVM.

Результати проекту включають вихідний код для контрактів з робототехніки та вихідний код для реалізації тестового сценарію. Всі контракти написані для Solidity 0.5.0. Таким чином, жодних змін при розгортанні та використанні контрактів на Neon EVM не було потрібно. Покрокові інструкції для запуску тестової вправи також можна знайти у файлі README.md

Висновки

Всі контракти функціонували як очікувалося. Змодельований робот виконав своє зобов'язання перед стороною Обіцянкою та доставив файл з телеметричними даними, що документують його дії. Вузол Провайдера також коректно сприяв взаємодії між Обіцяльником (змодельованим роботом) та Одержувачем, і отримав точну компенсацію за свою участь. Результати роботи також були перевірені третьою стороною.

Що стосується недоліків платформи Neon, команда Robonomics відзначила цікаву мережеву особливість, яку має дослідити Neon Labs:

Neon EVM не має кінцевої точки WS/WSS. На відміну від Ethereum, Neon EVM не має кінцевої точки WS/WSS, що унеможливлює підписку на події з мережі. Як наслідок, під час тестування команда робототехніків відстежувала події вручну.

Висновок

Тепер ваша черга розгорнути свої смарт-контракти на Neon EVM. Обов'язково дайте нам знати, що ви думаєте. Якщо у вас виникли проблеми або вам потрібні додаткові вказівки, ознайомтеся з нашими документами по Neon Docs або зв'яжіться з членом команди на Discord. Ми знаємо, що ви створите щось велике!