Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Программируемый логический контроллер ОВЕН ПЛК150

Конструктивное исполнение Унифицированный корпус для крепления на DIN-рейку, длина 105 мм (6U), шаг клемм 7,5 мм
Степень защиты корпуса IP20
Напряжение питания ~90…264В, 47…63 Гц (номин. 220В)
Потребляемая мощность 6 Вт
Индикация передней панели Светодиодная индикация питания и состояния дискретных входов и выходов
Центральный процессор 32-разрядный RISC-процессор 200 МГц на базе ядра ARM9
Объем оперативной памяти 8 Мбайт
Объем энергозависимой памяти хранения программ и архивов 3 Мбайт (Flash-память, специализированная файловая система)
Размер Retain-памяти 4 кбайт (настраивается пользователем)
Количество дискретных входов 6
Гальваническая изоляция дискретных входов На 1,5кВ, групповая.
Максимальная частота сигнала, подаваемого на дискретный вход 10 кГц (в режиме энкодера1кГц)
Количество аналоговых входов 4
Предел основной приведенной погрешности
0,5%
ТСМ(CU50) −50…+200°С
ТСМ50М −190…+200°С
ТСМ(CU100) −50. ..+200°С
ТСМ100М −190…+200°С
ТСМ(CU500) −50…+200°С
ТСМ500М −190…+200°С
ТСМ(CU1000) −50…+200°С
ТСМ1000М −190…+200°С
ТСП(Pt50) −200. ..+750°С
ТСП50П −200…+750°С
ТСП(Pt100)
−200…+750°С
ТСП100П −200…+750°С
ТСП(Pt500) −200…+750°С
ТСП500П −200…+750°С
ТСП(Pt1000) −200. ..+750°С
ТСП1000П
−200…+750°С
ТСН100Н −60…+180°С
ТСН500Н −60…+180°С
ТСН1000Н −60…+180°С
ТХК(L) −200…+800°С
ТЖК(J) −200. ..+1200°С
ТНН(N) −200…+1300°С
ТХА(К) −200…+1300°С
ТПП(S) 0…+1600°С
ТПП(R) 0…+1600°С
ТПР(В) +200…+1800°С
ТВР(А-1) 0.
..2500°С
ТВР(А-2) 0…1800°С
ТВР(А-3) 0…1600°С
ТМК(Т) −200…+400°С
Сигнал тока 0…5мА; 0…20мА; 4…20мА 0…100%
Сигнал напряжения −50…+50мВ; 0…1В; 0…10В 0…100%
Датчики сопротивления 0. ..5000 Ом
0…100%
Время опроса одного аналогового входа 1,5 с
Количество дискретных выходов 4 электромагнитных реле (4А при 220В, 50 Гц и cos φ ≥ 0,4)
Гальваническая развязка дискретных выходов На 1,5кВ, индивидуальная
Количество аналоговых выходов 2
Тип выходного сигнала
  • ПЛК150-И — 4…20мА

  • ПЛК150-У — 0. ..10В

  • ПЛК150-А — универсальный: 4…20мА или 0…10В (программное переключение типа выходного сигнала)

И – цифроаналоговый преобразователь «параметр – ток 4…20мА» Сопротивление нагрузки 0…900 Ом
У – цифроаналоговый преобразователь «параметр – напряжение 0…10В» Сопротивление нагрузки не менее 2 кОм
А – цифроаналоговый преобразователь «параметр – ток 4…20мА или напряжение 0…10В» Сопротивление нагрузки 150…900 Ом для токового сигнала и не менее 10 кОм для сигнала напряжения
Разрядность ЦАП 16 бит
Наличие встроенного источника питания Общий, гальванически изолированный (1,5кВ)
Интерфейсы
  • Ethernet 10/100 Mbps
  • RS-485
  • RS-232
Скорость обмена по протоколам RS Настраиваемая, до 115 200 бит/с
Протоколы
  • Овен
  • Mobdus-RTU
  • Mobdus-ASCII
  • DCON
  • Mobdus-TCP
  • GateWay (протокол CoDeSys)
Среда программирования CoDeSys 2, 3
Языки программирования IL; ST; LD; SFC; FBD + дополнительный язык CFC
Размер пользовательской программы Ограничен только размерами свободной памяти (около 1 млн. инструкций)
Интерфейс для программирования и отладки RS-232; Ethernet
Подключение при программировании Cтандартным кабелем или кабелем, входящим в комплект поставки
ПЛК150-220 суммарное сопротивление контакта и линии подключения не более 100 Ом Cигнал, подаваемый на дискретный вход посредством «сухого» контакта или ключа, коммутирующего общую клемму дискретных входов и клемму конкретного входа

Условия эксплуатации:
– температура окружающего воздуха
– атмосферное давление
– относительная влажность воздуха (при +25°С и ниже б/конд. влаги)

−20…+70°С
84…106,7 кПа
Не более 80%

Умный Дом на контроллере ОВЕН ПЛК

   Контроллеры ОВЕН ПЛК позволяют реализовывать систему Умный Дом EasyHome cо всеми базовыми функциями, но с сокращённым количеством групп освещения и климата. Список поддерживаемых драйверов интеграции тоже сокращён (надо уточнять для каждой модели и серии прошивок). Но контроллер имеет множество встроенных входов-выходов и может расширятся модулями ОВЕН Мх-110 , диммерами от RazumDom и беспроводными модулями ZigBee.
   Контроллеры ОВЕН ПЛК имеют, в зависимости от модели:
– аналоговые входы ( для датчиков ТЕМПЕРАТУРЫ, ОСВЕЩЁННОСТИ и т.д.)
– аналоговые выходы 0-10в (для ДИММЕРОВ, РЕГУЛЯТОРОВ)
– встроенные бинарные входы ( для ВЫКЛЮЧАТЕЛЕЙ, ДАТЧИКОВ ДВИЖЕНИЯ и т.д.)
– релейные или транзисторные выходы (для управления СВЕТОМ, ПРИВОДАМИ и т.д.)
Имеется встроенный блок питания с выходом 24в для периферийных устройств или модулей расширения.
Поддерживает до 15ти одновременных подключений пользователей по Ethernet.
Имеет два интерфейса RS232 и один-два RS485, которые могут использоваться для GSM модема и других расширений.

Документация Сравнить с другими
   Для работы системы EasyHome контроллер ОВЕН ПЛК должен иметь:
1) Для СТАРОГО образца контроллера, без ” [M02] ” в названии модели, должно быть обозначение “-М” – без искуственных ограничений размера.
2) Для новой серии контроллеров, с обозначением ” [M02] ” в названии модели, может использоваться любая модификация.

   Контроллер ОВЕН ПЛК может использоваться инсталлятором или оконечным пользователем самостоятельно с БЕСПЛАТНОЙ версией ПО EasyHome из раздела Документация на условии:
1) Самостоятельной установки прошивки EasyHome на ПЛК, настройки встроенных функций и интерфейса пользователя
2) Извещения производителя ПО EasyHome о выполняемом проекте по адресу [email protected] (фото щитка, скриншоты интерфейса, всё, что “не жалко”)
3) Письмо производителю ОВЕН
 с заявлением на размещение проекта в галерее выполненых обьектов, c указанием ссылки на ПО EasyHome: owen.ru/projects
4) Желательно заранее обратится в тех.поддержку EasyHome для получения обновлённой прошивки для Вашего ОВЕН ПЛК и сведений об её ограничениях (из-за ограничений памяти/производительности контроллеров ОВЕН).  


ПОПРОБУЙ
БЕСПЛАТНЫЙ УМНЫЙ ДОМ
С ПО EasyHome
НА ОВЕН ПЛК !! 

 Контроллеры ОВЕН ПЛК для работы с Умным Домом EasyHome и сравнительные характристики:

   
Модель
  Количество встроенных портов   Примечания
                RS232   RS485    DI     DO     AI     AO         
 
ПЛК100.Х.Р-М
Цена от: 18 000 ₱
 

2

 

1

 

8

 

6(12)

           
                                 
 

ПЛК110-30. Х.x-М

 

2

 

2

 

18

 

12

          сняты с производства 
                                 
 

ПЛК110-60.Х.x-М

 

2

 

2

 

36

 

24

          сняты с производства 
                                 
 

ПЛК160. Х.x-М

 

2

 

1

 

16

 

12

 

8

 

4

  сняты с производства 
                                 
  ПЛК110-30.Х.x-x[M02]
Цена от: 25 000 ₱
  2   2   18   12            
                                 
 
ПЛК110-60. Х.x-x[M02]
Цена от: 31 000 ₱
 

2

 

2

 

36

 

24

           
                                 
  ПЛК160.Х.x-x[M02]
Цена от: 35 000 ₱
  2   1   16   12   8   4    
                                 

  Загрузка ЦП / RAM / Flash у всех одинаковая –  80% / 100% / 70%.
Х – Питание ПЛК может быть выбрано в модификации 24В или 220В (на ПО не влияет) :
24В – удобно при применении ИБП с АКБ на 24В.
220В – может питаться прямо от сети и имеет встроенный БП24В на 0.4А для питания модулей расширения и датчиков.

Дополнительно расширяется с помощью модулей ввода-вывода по RS485:

УСЛУГИ – Смарт АТОМ

Наши инженеры имеют богатый опыт успешно реализованных объектов.

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

Объем и условия выполнения пусконаладочных работ по отдельным системам или их частям определяются в программе, разработанной наладочной организацией и утвержденной Заказчиком. В программу включают виды автономных наладок или комплексных опробований в соответствии с программами и методиками, предусмотренными в составе рабочей документации по ГОСТ 34. 201. Виды испытаний и порядок их проведения принимают по ГОСТ 34.603.

При отсутствии в рабочей документации конкретных требований к показателям работы автоматизированных систем управления определение таких требований осуществляется наладочной организаций по согласованию с Заказчиком.

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

Пусконаладочные работы осуществляются в три стадии:

  1. подготовительные работы;
  2. автономная наладка автоматизированных систем управления;
  3. комплексное опробование автоматизированных систем управления.

В период автономной наладки и комплексного опробования инженерного оборудования наладочная организация обеспечивает ввод в действие автоматизированных систем управления в соответствии с рабочей документацией и техническими условиями предприятий-изготовителей.

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

Сдача автоматизированных систем в эксплуатацию производится по согласованию с Заказчиком как по отдельно налаженным системам, так и комплексно по автоматизированным установкам, узлам технологического оборудования.

При сдаче автоматизированных систем управления в эксплуатацию в полном объеме оформляется акт сдачи-приемки автоматизированных систем в эксплуатацию.

К акту сдачи-приемки в эксплуатацию автоматизированных систем управления прилагается следующая документация:

  • перечень уставок устройств, приборов и средств автоматизации и значений
  • параметров настройки автоматизированных систем локального управления;
  • программы и протоколы испытаний автоматизированных систем локального управления;
  • принципиальные схемы автоматизации из комплекта рабочей документации со всеми изменениями, внесенными и согласованными с Заказчиком в процессе выполнения пусконаладочных работ;
  • паспорта и инструкции предприятий − изготовителей приборов и средств автоматизации, дополнительная техническая документация, полученная от Заказчика в процессе выполнения пусконаладочных работ
Сервопривод

/ Контроллеры – Контроллер Aries от Parker Hannifin

Краткое руководство по контроллеру0 @ 1-330-335-67400 @ support. parker.com
Каталог и технические характеристики
  • Брошюра о контроллере Aries
  • Рекомендуемая замена – IPA App Note
  • Рекомендуемая замена – Информация о продукте IPA
    Руководства пользователя
  • Aries
  • Руководство пользователя контроллера Aries
  • Выбор кабеля и чертежи, выводы двигателя
  • Часто задаваемые вопросы: абсолютные энкодеры и совместимость с приводами
    Программное обеспечение
  • Программа ACRView
  • Операционная система контроллера Aries
    Загрузка – файлы примеров
  • Образец кода и примечания к применению
    Загрузить – Чертежи и файлы САПР
  • Овен Контроллер 3D. stp файлы
  • Контроллер Aries Файлы .dxf
  • Контроллер Aries .pdf файлы
    Поддержка
  • Дистрибьюторская и заводская поддержка
    Инструменты для проектирования
  • Limit – Домашние электрические схемы
    Запасные части и принадлежности
  • Часто задаваемые вопросы: VM25 Breakout
    Свяжитесь с нами
    Приводы, контроллеры, приводы и линейные двигатели
    emn. [email protected]
    + 1-707-584-7558 или (800) 358 9070
    920000 Серводвигатели и вращающиеся двигатели Редукторы
    + 1-937-644-3915
    [email protected]
    9000ders5 @ parkercom
    Конструкционный алюминий IPS
    + 1-330-335-6740

    Контроллер ARIES LYNX

    ARIES / LYNX принял Motionnet и актуализировал управление до 32 осей, подключив
    LYNX (2-осевой подчиненный контроллер) максимум 15 устройств.
    Используя удобный терминал “PYXIS” с сенсорной панелью, продаваемый отдельно, такие операции, как пробный запуск, настройка
    и т. Д., Можно легко выполнять без ПК.

    [Характеристики]

    Принято Motionnet
    Принято Motionnet, управление сценой максимум для 32 осей возможно с главного контроллера (ПК и т. Д.) Через порт связи.
    Количество управляющих осей может быть увеличено с помощью 2-х осевого блока путем подключения нескольких блоков LYNX к одному ARIES.

    Дискретный тип драйвера двигателя
    Поскольку драйвер двигателя является отдельным типом, он может быть подключен к различным драйверам двигателя с типами необработанных импульсных команд, как показано ниже.
    · Драйвер 5-фазного шагового двигателя
    · Драйвер 2-фазного шагового двигателя
    · Драйвер серводвигателя
    · Драйвер двигателя α STEP
    Доступны коробки привода серии “TITAN”, которые можно легко подключить с помощью кабеля.

    Функция линейной интерполяции
    Привод линейной интерполяции возможен с дополнительными 2 или 3 осями.
    Если необходима функция интерполяции дуги окружности (опция), обратитесь в наш отдел продаж.

    Триггерный выход
    Пусковой сигнал, синхронизированный либо с импульсом двигателя, либо с импульсом энкодера по 2 осям внутри ОВЕНА, может выводиться для внешнего измерительного оборудования.
    .
    Также может выводиться сигнал запуска с синхронизированным сигналом запуска с сигналом BUSY (управление), постоянный сигнал, при запуске и в конце возбуждения,
    и необязательная синхронизация (выдача команды).

    Общие входы / выходы
    Есть 8 точек на общем выходном сигнале, которые могут опционально управлять ВКЛ / ВЫКЛ и на входном сигнале, которые могут контролировать состояние ВКЛ / ВЫКЛ
    соответственно, и каждая из них изолирована оптопарой.

    RS-232C, Ethernet 2 типа порта связи
    ОВЕН управляется командой от хост-контроллера (ПК и т. Д.) Через порт связи. Имеются два выбираемых порта связи
    , RS-232C и Ethernet.

    Управление автомобилем с ручным терминалом “PYXIS”
    При использовании ручного терминала с сенсорной панелью “PYXIS” (продается отдельно) возможна ступенчатая работа с ручным управлением
    . Возможны возврат в исходное положение, привод абсолютного положения, привод относительного положения, выбор таблицы скорости
    , изменение настроек различных параметров системы, изменение настройки каждой таблицы скорости,
    и аварийный останов с помощью переключателя аварийной остановки.

    * Прилагаемый кабель питания предназначен для использования в Японии.Пожалуйста, предоставьте его клиентом, если потребуется другой кабель питания. (~ 125 В)

    Кабель TITAN-AⅡ / DⅡF для контроллера (импульсный / сенсорный кабель)

    Кабель для соединения контроллера (ARIES, LYNX) и драйвера (TITAN).

    Parker представляет контроллер движения сервопривода Aries

    • 18 марта 2008 г.
    • Паркер Автоматизация
    Parker выпускает контроллер движения сервопривода Aries

    Rohnert Park, Калифорния, 18 марта 2008 г. – Подразделение электромеханической автоматизации компании Parker выпустило одноосный сервопривод / контроллер Aries Controller.Контроллер Aries сочетает в себе универсальную и экономичную платформу цифрового сервопривода Aries с расширенными возможностями управления сервоконтроллером ACR. Контроллер Aries конфигурируется, настраивается и программируется с использованием комплексной программной среды ACRView компании Parker. Среда ACRView также поддерживает традиционные аналоговые многокоординатные элементы управления и приводы Parker, а также систему управления движением ETHERNET Powerlink. «Эта универсальность теперь позволяет конструкторам станков и конечным пользователям использовать преимущества высокопроизводительного сервоуправления ACR как для одно-, так и для многоосных проектов без переключения между разными языками управления и программными средами и их повторного изучения», – говорит Марк Фей, менеджер по продукту. для подразделения электромеханической автоматизации Parker.Преимущества общего языка управления и программного обеспечения включают сокращение времени вывода на рынок и снижение общих затрат на систему управления движением. Возможности управления движением Aries Controller включают абсолютное и относительное движение, толчковый режим, переключение передач и кулачок. Вход вторичного энкодера включен для 1½-осевых и двухконтурных приложений, а абсолютные энкодеры EnDat также поддерживаются в дополнение к стандартным квадратурным энкодерам и интеллектуальным энкодерам Parker. Возможности подключения привода включают порт Ethernet для связи, настройки, программирования и диагностики, а также возможность подключения HMI.Разработка приложений дополнительно улучшена за счет использования недавно выпущенного Parker инструментария ACR MotionCOMponents Tool Kit. Набор инструментов ACR MotionCOMponents Tool Kit – это обширный набор компонентов и элементов управления, позволяющий разработчику программного обеспечения быстро и легко создавать настраиваемый пользовательский интерфейс для приложений управления движением на базе ПК. Инструменты включают в себя полный набор вызовов функций ACR, что позволяет полностью управлять контроллером Aries из программы на ПК. О Parker Electromechanical Automation Подразделение группы автоматизации Parker Hannifin Corporation с 1987 года, компания Electromechanical Automation является пионером, разработчиком и производителем компьютерных контроллеров движения полного спектра, сервоприводов / шаговых двигателей, серводвигателей и человеко-машинных интерфейсов. системы позиционирования, редукторы и мотор-редукторы.Эти продукты автоматизируют производство значительной части мировых товаров и услуг. Продукция электромеханической автоматизации продается через независимые авторизованные центры технологий автоматизации. О Parker Hannifin Компания Parker Hannifin с годовым объемом продаж, превышающим 10 миллиардов долларов, является ведущим в мире многопрофильным производителем технологий и систем управления движением и перемещением, предлагая высокоточные решения для широкого спектра коммерческих, мобильных, промышленных и аэрокосмических рынков. В компании работает более 57 000 человек в 43 странах мира. Parker увеличивал свои годовые дивиденды, выплачиваемые акционерам, в течение 51 года подряд, входя в пятерку самых продолжительных рекордов по увеличению дивидендов в индексе S&P 500.

    Перейти на веб-сайт Parker Automation
    Узнать больше


    Овен-контроллер NPM | npm.io

    1.0.77 • Опубликовано 22 дня назад

    Общий пакет

    Контроллер Aries

    Это общий код, который можно использовать во всех реализациях контроллера. Это опубликовано как пакет npm. Затем конкретные контроллеры могут подключать каждый модуль по мере необходимости. Каждый контроллер может быть настроен как один или несколько контроллеров, отдельные контроллеры обычно имеют собственный код или дополнительные ограничения безопасности. которые требуют их разделения. Контроллеры Mutli проще настроить, поскольку новый контроллер можно добавить и настроить через API без развертывания. любые новые сервера.Каждый контроллер также может взаимодействовать с одним или несколькими агентами (например, с несколькими арендаторами). Одиночные агенты полезны, если есть только один агент, который контролирует необходимо контролировать, или есть дополнительные проблемы с безопасностью. Несколько агентов полезны, когда контроллеру необходимо управлять несколькими агентами (например, агентством). Может существовать любая комбинация одного / нескольких контроллеров / агентов, каждый со своими вариантами использования. Единый агент Единый контроллер – например, крупный государственный эмитент, который обрабатывает Один контроллер с несколькими агентами – например, агентство, которое управляет множеством агентов. Один агент с несколькими контроллерами – например, FSP или эмитенты, которым нужна безопасность автономного агента, но не хотят настраивать собственный контроллер Мультиагентный мульти-контроллер – например, FSP, которым нужен самый простой способ взаимодействия с системой без какой-либо дополнительной настройки

    Примечания

    • Ожидается, что разработчик удалит пакет. json для каждого PR. Когда PR объединяется в master, он автоматически публикует новый пакет в npm
    • . Для локальной разработки вы можете не захотеть публиковать пакет npm, пока не убедитесь, что все работает. Вы можете использовать ссылку npm для этого:
        npm run build
      cp package.json dist / package.json
      npm link  
      А затем в папку, которую вы хотите загрузить, последний локальный код
        npm link aries-controller  
      Это свяжет код зависимости aries-controller с node_modules в другом репо.Когда вы закончите тестирование, запустите npm unlink
    • Для локальной разработки с использованием контейнеров докеров ссылка npm не будет работать, поскольку символические ссылки на Mac не будут работать в контейнере докеров. Вместо этого вам нужно сопоставить папку dist с вашего Mac с node_modules в контейнере. Примерно так (относительный путь может отличаться)
        томов:
        - ../aries-controller/dist:/www/node_modules/aries-controller  

    Контроллеры машин | ONExia Inc.

    Parker ACR7000 – многоосевая шаговая система

    Семейство интегрированных многоосевых контроллеров движения, ACR7000 продолжает успех моделей 9000 и IPA, предлагая новые оптимизированные аппаратные решения с низким энергопотреблением.

    • Процессор ARM (R) Cortex (R) -A8, 800 МГц
    • Связь Ethernet поддерживает связь с ПК и вводом / выводом
    • Высокопроизводительные варианты сервопривода и шагового привода
    • Входная мощность 24-48 В постоянного тока
    • Использует проверенное мощное средство управления движением AcroBasic
    • Сервоприводы рассчитаны на постоянный ток 8 А, шаговые приводы на 4 А

    Delta Tau Motion Machine ПК

    Компьютер Motion Machine состоит из ПК под управлением Linux или Windows с ядром Power PMAC.Это предлагает весь интеллект, мощность и возможности нашего контроллера Power PMAC с удобством работы на знакомом аппаратном обеспечении ПК, обеспечивая большую гибкость при разработке приложений.

    Контроллеры Parker Aries

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

    Omron NJ1

    NJ1 – это ЦП Sysmac начального уровня, предназначенный для работы с основными приложениями промышленных контроллеров, с одновременным сокращением времени инженерной интеграции, гибкости системы и общей производительности.

    Omron NJ3

    NJ3 расширяет платформу контроллера автоматизации станков (MAC) Omron Sysmac серии NJ до 4 и 8 осей.

    Omron NJ5

    Аппаратное обеспечение серии NJ было разработано для адаптации к быстро меняющимся требованиям контроллера автоматизации станка.

    Omron NX1P

    NX1P – это мощный универсальный контроллер на платформе sysmac, предназначенный для управления расширенным движением, сетью, вводом-выводом и локальным IoT в компактной модели начального уровня.

    Omron NX7

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

    Стать разработчиком Hyperledger Aries – начало работы

    Вы хотите начать разработку с помощью Hyperledger Aries и облачного агента Aries Python (ACA-py), но думаете, что документация разрознена, а примеры неясны.Тогда это руководство для вас. Мы начинаем с шага 0. В этом пошаговом руководстве я объясню, как настроить локальную среду разработки, запустить два экземпляра ACA-py, которые создают соединение между ними, и передать учетные данные от одного к другому. .

    VON-сеть

    Прежде чем мы сможем выдать учетные данные, нам нужно создать определение учетных данных, а прежде чем мы сможем создать определение учетных данных, нам понадобится схема. И схема, и определение учетных данных записываются в реестр Hyperledger Indy. Вы можете подключить ACA-py к существующему размещенному реестру, но в этом руководстве мы собираемся подключиться к локально работающему реестру. Преимущество локально работающей бухгалтерской книги состоит в том, что вы полностью контролируете происходящее, что значительно упрощает отладку.

    Репозиторий von-network упрощает запуск сети Hyperledger Indy на вашем компьютере. Чтобы запустить сеть VON на вашем компьютере, вам необходимо, чтобы на вашем компьютере были доступны команды docker и docker-compose .

    Оформить кассу в VON-сети:

      1
      
      $ git clone https://github.com/bcgov/von-network
      

    Запуск VON-сети:

      1
    2
      
      $ cd von-network
    $ ./manage start --logs
      

    Это запустит 4 узла Indy и один веб-сервер. Он покажет вывод журнала всех из них.Вы можете прекратить просмотр журналов, нажав Ctrl-C , но это не остановит узлы и веб-сервер. Вы можете увидеть, что они все еще работают, запустив docker ps . Чтобы остановить VON-сеть, вы можете запустить:

    Веб-сервер VON-network доступен в вашем браузере по адресу localhost: 9000. Он должен быть похож на test.bcovrin.vonx.io.

    О леджере Indy нужно знать две важные вещи. Во-первых, чтобы подключиться к бухгалтерской книге, вам необходимо получить файл / транзакцию его происхождения.С VON-network вы можете использовать URL-адрес файла genesis напрямую localhost: 9000 / genesis. С другими реестрами это может работать иначе. Второе, что нужно знать, это то, что для создания схемы и определения учетных данных вам необходимо зарегистрировать DID в реестре. Здесь вы можете использовать часть «Аутентифицировать новый DID».

    Теперь, когда сеть VON запущена, пора настроить ACA-py.

    ACA-py

    Есть разные способы запуска ACA-py. Вы можете запустить его как отдельное приложение или в контейнере докера.

    Автономный

    ACA-py – это приложение Python (да!), Которое можно запустить как приложение командной строки. Он доступен как пакет Python:

      1
      
      $ pip3 установить aries-cloudagent
      

    Либо можно установить последнюю версию из репозитория:

      1
    2
    3
    4
      
      $ git clone https: // github.com / hyperledger / Овен-облачный агент-питон
    $ cd Овен-облачный агент-питон
    $ pip3 install -r requirements.txt -r requirements.dev.txt -r requirements.indy.txt
    $ pip3 install --no-cache-dir -e.
      

    В любом случае, оба они зависят от зависимости python3-indy . python3-indy – это клиентская библиотека для связи с libindy . libindy – это пакет Ubuntu (написанный на Rust), который может создавать кошелек и управлять им. В кошельке будет храниться такая информация, как записи подключений, записи обмена учетными данными и сами учетные данные.

    В Ubuntu 18.04 вы можете установить libindy , используя:

      1
    2
    3
    4
      
      $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68DB5E88
    $ sudo add-apt-repository "deb https://repo.sovrin.org/sdk/deb bionic master"
    $ sudo apt-get update
    $ sudo apt-get install -y libindy
      

    Если установка ACA-py и libindy прошла успешно, вы сможете запустить:

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
      
      $ aca-py --help
    использование: aca-py [-h] [-v] {Provision, start}. ..
    
    позиционные аргументы:
      {Provision, start}
        Положение Предоставить агента
        start Начать новый процесс агента
    
    необязательные аргументы:
      -h, --help показать это справочное сообщение и выйти
      -v, --version распечатать версию приложения и выйти
      

    Докер

    Если вы не хотите устанавливать все это на свой компьютер, вы также можете запустить ACA-py в контейнере докера. По адресу hub.docker.com/r/bcgovimages/aries-cloudagent доступны готовые образы, содержащие ACA-py и все необходимые зависимости.Вы можете запустить его так:

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
      
      $ docker run --net = host bcgovimages / aries-cloudagent: py36-1.16-0_0.6.0 --help
    использование: aca-py [-h] [-v] {Provision, start} ...
    
    позиционные аргументы:
      {Provision, start}
        Положение Предоставить агента
        start Начать новый процесс агента
    
    необязательные аргументы:
      -h, --help показать это справочное сообщение и выйти
      -v, --version распечатать версию приложения и выйти
      

    Как видите, команды, добавленные в конец, передаются непосредственно в ACA-py. В приведенных ниже примерах предполагается, что у вас есть команда aca-py , но вы также можете заменить ее на docker run --net = host bcgovimages / aries-cloudagent: py36-1.16-0_0.6.0 .

    Запуск двух экземпляров ACA-py

    В этом примере я собираюсь запустить два экземпляра ACA-py, один с именем Алиса, а другой с именем Боб. Алиса будет выступать в качестве эмитента. Вы можете представить Алису стороной, которая выдаст вам учетные данные, такие как водительские права, сертификат Padi или учетные данные для вашего варианта использования.Боб будет получателем и держателем учетных данных. Как конечный пользователь вы, вероятно, не будете запускать экземпляр ACA-py для хранения учетных данных для вас, вместо этого вы будете использовать приложение Wallet, например приложение Trinsic.id. Однако, когда вы разрабатываете локально, проще использовать экземпляр ACA-py, чтобы сделать это за вас.

    А как насчет демонстрации?

    Репозиторий aries-cloudagent-python содержит папку с именем demo . Вы можете запустить демонстрацию, которая демонстрирует, как два экземпляра могут подключаться, выдавать учетные данные и многое другое.В чем разница между демонстрацией и примерами, которые я здесь показываю?

    В демонстрации вы запускаете то, что они называют «бегуном». Бегун состоит из «агента» и «контроллера». Все эти термины действительно сбивают с толку и не помогают вам понять, что это такое. «Агент» в этом случае является экземпляром ACA-py. «Контроллер» в данном случае – это код, который взаимодействует с конечными точками HTTP-администратора ACA-py. Если вы посмотрите на код, вы увидите, что здесь запускается ACA-py:

      1
    2
    3
    4
    5
    6
      
      def get_process_args (самостоятельно):
            список возврата (
                сплющить (
                    ([PYTHON, "-m", "aries_cloudagent", "start"], self.get_agent_args ())
                )
            )
      

    Вместо запуска ACA-py в терминале, как мы делаем здесь, они используют python -m . .. , чтобы сделать то же самое.

    «Контроллер» – это часть, которая взаимодействует с конечными точками администратора ACA-py. Например, вы можете найти код, который вызывает конечную точку для создания приглашения прямо здесь:

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
      
      async def get_invite (self, use_did_exchange: bool, auto_accept: bool = True):
            себя.connection_id = Нет
            если use_did_exchange:
                # TODO можно ли использовать посредничество с соединениями обмена DID?
                invi_rec = ждать self.admin_POST (
                    "/ вне диапазона / создать-приглашение",
                    {"handshake_protocols": ["rfc23"]},
                    params = {"auto_accept": json.dumps (auto_accept)},
                )
            еще:
                если self.mediation:
                    invi_rec = ждать self.admin_POST (
                        "/ подключения / создать-приглашение",
                        {"mediation_id": сам. mediator_request_id},
                        params = {"auto_accept": json.dumps (auto_accept)},
                    )
                еще:
                    invi_rec = ждать self.admin_POST ("/ подключения / создать-приглашение")
    
            вернуть invi_rec
      

    Чтобы облегчить вам жизнь, демонстрация объединяет запуск экземпляра ACA-py и часть контроллера и называет это «бегуном». Итак, всякий раз, когда вы запускаете бегуна, для вас запускается ACA-py.

    В примерах, которые я привожу ниже, мы не собираемся использовать демонстрационные бегуны, поскольку это то, что вы, вероятно, не хотите запускать для своего приложения.Вместо этого мы сами запустим ACA-py. «Контроллерные» части будут выполняться с помощью команд curl . Это в основном то же самое, что и использование документации Swagger / OpenAPI, поставляемой с ACA-py.

    Приложение, которое вы разрабатываете, которое взаимодействует с конечными точками администратора ACA-py, называется контроллером . В этих примерах контроллер – это всего лишь curl команд, но, конечно, вы можете разработать свой контроллер на любом языке, например Python, JavaScript или Go.

    Демонстрационные исполнители проверяют создание правильных параметров командной строки при запуске ACA-py. Это означает, что если вы хотите запустить ACA-py самостоятельно, вам нужно понимать, какие параметры командной строки требуются и что они означают.

    Запуск Алисы

    Алиса – наш эмитент. Эмитент создаст схему и определение учетных данных, которые будут зарегистрированы в реестре. Чтобы эмитент мог зарегистрировать их в реестре, требуется общедоступный DID.Публичный DID – это DID, который зарегистрирован в реестре. ACA-py сам по себе не регистрирует DID в реестре, вам нужно сделать это самостоятельно. В производственных регистрах регистрация DID в регистре стоит денег. Вам как владельцу не нужен общедоступный DID.

    DID получен из открытого ключа. Открытый ключ является частью пары открытого и закрытого ключей. Пара ключей создается на основе начального значения. Во-первых, мы собираемся зарегистрировать DID в реестре с помощью seed.

    Пример начального числа: Алиса000000000000000000000000001 .В производственной книге для вас будет зарегистрирован DID, и вы получите начальное значение.

    Вы можете зарегистрировать DID на основе начального значения, используя веб-сервер von-network по адресу localhost: 9000, используя раздел «Аутентифицировать новый DID». Введите начальное число, оставьте DID пустым, а в качестве «Псевдонима» вы можете использовать «Алиса».

    Вы можете сделать то же самое с помощью команды curl :

    Алиса

      1
    2
    3
    4
    5
    6
    7
      
      $ curl -X POST "http: // localhost: 9000 / register" \
    -d '{"seed": "Alice000000000000000000000000001", "role": "TRUST_ANCHOR", "alias": "Alice"}'
    > {
      "сделал": "PLEVLDPJQMJvPLyX3LgB6S",
      "seed": "Алиса000000000000000000000000001",
      "verkey": "DAwrZwgMwkTVHUQ8ZYAmuvzwprDmX8vFNXzFioxrWpCA"
    }
      

    Чтобы запустить ACA-py, необходимо указать аргументы командной строки. Помните упомянутый ранее URL-адрес генезиса [localhost: 9000 / генезис]? Вот где это нам нужно. Попробуйте запустить эту команду, чтобы увидеть, сможете ли вы запустить Алису:

    Алиса

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21 год
    22
    23
    24
    25
    26 год
    27
    28 год
    29
    30
    31 год
    32
    33
    34
    35 год
    36
    37
    38
    39
    40
      
      $ aca-py start \
    --label Алиса \
    -it http 0.0.0.0 8000 \
    -ot http \
    --admin 0.0.0.0 11000 \
    --admin-insecure-mode \
    --genesis-url http: // localhost: 9000 / genesis \
    --seed Алиса000000000000000000000000001 \
    - конечная точка http: // localhost: 8000 / \
    --debug-connections \
    --auto-provision \
    - indy типа кошелька \
    --wallet-name Алиса1 \
    - секрет ключа кошелька
    
    ::::::::::::::::::::::::::::::::::::::::::::::
    :: Алиса ::
    :: ::
    :: ::
    :: Входящие перевозки: ::
    :: ::
    :: - http: // 0.0.0.0: 8000 ::
    :: ::
    :: Исходящие перевозки: ::
    :: ::
    :: - http ::
    :: - https ::
    :: ::
    :: Общедоступная информация DID: ::
    :: ::
    :: - DID: PLEVLDPJQMJvPLyX3LgB6S ::
    :: ::
    :: API администрирования: ::
    :: ::
    :: - http: // 0. 0.0.0: 11000 ::
    :: ::
    :: версия: 0.6.0 ::
    ::::::::::::::::::::::::::::::::::::::::::::::
    
    Слушаю ...
      

    Давайте рассмотрим параметры командной строки, чтобы увидеть, что они означают:

    • --label Alice Это метка или имя, которое вы даете своему экземпляру. Это имя, которое, например, будет видеть приложение Wallet, когда вы попытаетесь установить соединение или когда вы получите учетные данные.
    • -it http 0.0.0.0 8000 и -ot http – это методы входящего и исходящего транспорта, которые ACA-py использует для связи с другими экземплярами ACA-py. Помните здесь порт 8000 , он вам нужен для конечной точки .
    • --admin 0.0.0.0 11000 и --admin-insecure-mode – это параметры, которые настраивают способ взаимодействия приложения контроллера с ACA-py. В этом случае конечные точки администратора доступны на порте 11000 и небезопасны, что означает, что аутентификация не требуется. Вперед, откройте localhost: 11000. Вы должны увидеть документацию Swagger, и вы должны увидеть предоставленную метку, в данном случае Алису. Это конечные точки, с которыми ваше приложение контроллера будет взаимодействовать с
    • .
    • --genesis-url http: // localhost: 9000 / genesis Это URL-адрес файла Genesis. Когда вы создаете схему и определение учетных данных, вы создаете транзакции в леджере Indy. Чтобы иметь возможность создавать эти транзакции, ACA-py необходимо знать о транзакции генезиса, это часто встречается в блокчейнах и распределенных реестрах.
    • --seed Alice000000000000000000000000001 Это начальное значение, которое мы использовали для регистрации DID. Это начальное значение доказывает, что вы являетесь владельцем общедоступного DID.
    • --endpoint http: // localhost: 8000/ Это URL-адрес, который ACA-py отправит в реестр, чтобы зарегистрировать, где можно получить доступ к экземпляру ACA-py для вашего DID. Если вы запустили aca-py без ошибок, вы сможете найти эту конечную точку на своем веб-сервере von-network. Проверьте localhost: 9000 / browse / domain, вы должны увидеть что-то вроде:
    • --debug-connections Этот параметр гарантирует, что дополнительная информация о соединениях будет напечатана, когда мы начнем устанавливать соединение между Алисой и Бобом в следующем разделе.
    • --auto-provision Этот параметр гарантирует, что ACA-py создаст для вас кошелек, когда он не существует. Обычно кошелек следует создавать только один раз, используя команду aca-py provision , но это выходит за рамки данной статьи.
    • --wallet-type indy , --wallet-name Alice и --wallet-key secret – это параметры, которые используются для создания кошелька. В этой настройке кошелек хранится в файлах в вашей системе.Вы можете найти кошельки в ~ / .indy_client / wallet / . Ключ требуется для записи и чтения в кошелек.

    Если вы успешно запустили Алису, вы можете остановить ее, запустить снова с теми же параметрами, и она просто продолжится с того места, где остановилась. Если вы запустите Алису с другим именем кошелька , будет создан новый кошелек, поэтому у вас не будет доступа ко всем предыдущим данным, хранящимся в кошельке. Если вы измените здесь значение seed , не зарегистрировав его сначала в бухгалтерской книге, вы получите сообщение с ошибкой, например:

      1
      
      Ledger отклонил запрос транзакции: запрос клиента недействителен: не удалось пройти аутентификацию, не удалось найти verkey для xxxx
      

    Запуск Боба

    Мы можем запустить Боба так же, как и с Алисой.Однако Боб будет нашим держателем. Боб не собирается создавать схему или определение учетных данных, поэтому ему не требуется общедоступный DID. Фактически, если вы используете приложение-кошелек, у вас вообще не будет публичного DID. Помните, регистрация DID стоит денег? Это означает, что за регистрацию своего DID платит только эмитент, а не держатель.

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

    Боб

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21 год
    22
    23
    24
    25
    26 год
    27
    28 год
    29
    30
    31 год
    32
    33
    34
    35 год
    36
      
      $ aca-py start \
      --label Bob \
      -это http 0.0,0.0 8001 \
      -ot http \
      --admin 0.0.0.0 11001 \
      --admin-insecure-mode \
      - конечная точка http: // localhost: 8001 / \
      --genesis-url http: // localhost: 9000 / genesis \
      --debug-connections \
      --auto-provision \
      --wallet-local-did \
      - indy типа кошелька \
      - имя-кошелька Bob1 \
      - секрет ключа кошелька
    
    ::::::::::::::::::::::::::::::::::::::::::::::
    :: Боб ::
    :: ::
    :: ::
    :: Входящие перевозки: ::
    :: ::
    :: - http: // 0.0.0.0: 8001 ::
    :: ::
    :: Исходящие перевозки: ::
    :: ::
    :: - http ::
    :: - https ::
    :: ::
    :: API администрирования: ::
    :: ::
    :: - http://0. 0.0.0:11001 ::
    :: ::
    :: вер: 0.6.0 ::
    ::::::::::::::::::::::::::::::::::::::::::::::
    
    Слушаю ...
      

    Есть один новый параметр: --wallet-local-did . У Боба нет общедоступного DID, но ему нужен локальный DID. Локальный DID будет использоваться Алисой для создания учетных данных, подробнее об этом позже.

    Экземпляр Bob ACA-py также имеет API администратора, вы обращаетесь к нему localhost: 11001.

    Теперь у вас должно быть два экземпляра ACA-py, работающих рядом друг с другом. Один для Алисы (эмитент) и один для Боба (держатель).Когда два агента работают, пришло время поиграть в контроллер для них обоих!

    Подключение

    Давайте пройдемся по этапам подключения Алисы и Боба.

    1

    Алиса создает приглашение

    Алиса может создать приглашение, например:

    Алиса

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21 год
    22
    23
    24
    25
    26 год
    27
    28 год
    29
    30
    31 год
    32
      
      $ curl -X POST "http: // localhost: 11000 / внеполосный / создать-приглашение" \
       -H 'Content-Type: application / json' \
       -d '{
      "handshake_protocols": [
        "сделал: сов: BzCbsNYhMrjHiqZDTUASHg; spec / didexchange / 1. 0 "
      ],
      "use_public_did": ложь
    } '
    > {
      "приглашение": {
        "@type": "сделал: sov: BzCbsNYhMrjHiqZDTUASHg; spec / вне диапазона / 1.0 / приглашение",
        "@id": "e20d3d8f-8958-4201-89eb-e74d28b5806a",
        "handshake_protocols": [
          "сделал: sov: BzCbsNYhMrjHiqZDTUASHg; spec / didexchange / 1.0"
        ],
        "label": "Алиса",
        "услуга": [
          {
            "id": "#inline",
            "type": "did-общение",
            "recipientKeys": [
              "сделал: ключ: z6MkecMK1KjwHv9W7SvF3jhzBzhkAiuYHqADzvAKHu2wS6E6"
            ],
            "serviceEndpoint": "http: // localhost: 8000 /"
          }
        ]
      },
      "след": ложь,
      "invi_msg_id": "e20d3d8f-8958-4201-89eb-e74d28b5806a",
      "URL-приглашения": "http: // localhost: 8000 /? oob = eyJAdHl... ",
      "состояние": "начальное"
    }
      

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

    Общедоступные и частные приглашения

    Общедоступные приглашения содержат DID, с которым могут связаться другие агенты. Для публичного приглашения бухгалтерская книга должна знать, в какой конечной точке можно связаться с агентом. Это означает, что приглашенный агент должен выполнить поиск в бухгалтерской книге. Непубличное приглашение не использует общедоступный DID, вместо этого оно содержит URL-адрес конечной точки службы, поэтому приглашенный агент может напрямую подключиться к приглашающему.

    Пример публичного приглашения:

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
      
      {
      "@type": "сделал: sov: BzCbsNYhMrjHiqZDTUASHg; spec / вне диапазона / 1.0 / приглашение",
      "@id": "c927b4a7-1901-433e-ac3f-16158431fd0a",
      "handshake_protocols": [
        "сделал: sov: BzCbsNYhMrjHiqZDTUASHg; spec / didexchange / 1.0"
      ],
      "label": "Алиса",
      "услуга": [
        "сделал: sov: UpFt248WuA5djSFThNjBhq"
      ]
    }
      

    Пример непубличного приглашения:

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
      
      {
      "@type": "сделал: sov: BzCbsNYhMrjHiqZDTUASHg; spec / out-of-band / 1.0 / приглашение »,
      "@id": "e20d3d8f-8958-4201-89eb-e74d28b5806a",
      "handshake_protocols": [
        "сделал: sov: BzCbsNYhMrjHiqZDTUASHg; spec / didexchange / 1.0"
      ],
      "label": "Алиса",
      "услуга": [
        {
          "id": "#inline",
          "type": "did-общение",
          "recipientKeys": [
            "сделал: ключ: z6MkecMK1KjwHv9W7SvF3jhzBzhkAiuYHqADzvAKHu2wS6E6"
          ],
          "serviceEndpoint": "http: // localhost: 8000 /"
        }
      ]
    }
      

    serviceEndpoint имеет значение, которое вы установили с --endpoint .

    Когда Алиса создает приглашение, экземпляр ACA-py регистрирует создание приглашения:

    Алиса

      1
    2
    3
    4
    5
      
      Создано новое соединение
        соединение: {'routing_state': 'none', 'Invision_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'accept': 'manual', 'updated_at': '2021-03-11 08: 01: 16.546248Z', 'created_ created 2021-03-11 08: 01: 16.546248Z ',' connection_id ':' 9ebac177-a3d4-4a74-be42-82f4e0cafefa ',' state ':' приглашение ',' invit_mode ':' once ',' their_role ':' приглашенный ',' rfc23_state ':' приглашение-отправлено '}
    
    Добавлено приглашение
        соединение: {'routing_state': 'none', 'Invision_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'accept': 'manual', 'updated_at': '2021-03-11 08:01:16.550301Z ',' created_at ':' 2021-03-11 08: 01: 16.546248Z ',' connection_id ':' 9ebac177-a3d4-4a74-be42-82f4e0cafefa ',' invit_msg_id ':' 638728b4-63b1-4a9a-82b8- c07d72925196 ',' состояние ':' приглашение ',' режим приглашения ':' один раз ',' их_роль ':' приглашенный ',' rfc23_state ':' приглашение отправлено '}
      
    2

    Боб получает приглашение

    Приглашение, которое Боб должен получить, – это объект приглашения в ответе на вызов / out-of-band / create-приглашение , сделанный Алисой.Боб может получить это приглашение, например:

    Боб

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21 год
    22
    23
    24
    25
    26 год
    27
    28 год
    29
    30
    31 год
    32
    33
    34
      
      $ curl -X POST "http: // localhost: 11001 / вне диапазона / получить-приглашение" \
       -H 'Content-Type: application / json' \
       -d '{
      "@type": "сделал: sov: BzCbsNYhMrjHiqZDTUASHg; spec / вне диапазона / 1.0 / приглашение",
      "@id": "638728b4-63b1-4a9a-82b8-c07d72925196",
      "label": "Алиса",
      "handshake_protocols": [
        "сделал: сов: BzCbsNYhMrjHiqZDTUASHg; spec / didexchange / 1.0 "
      ],
      "услуга": [
        {
          "id": "#inline",
          "type": "did-общение",
          "recipientKeys": [
            "сделал: ключ: z6Mkf3KhZvnLoUV6ZQrDzcXnFzYczi9xZZrYiWy2jVSzyJJa"
          ],
          "serviceEndpoint": "http: // localhost: 8000 /"
        }
      ]
    } '
    > {
      "created_at": "2021-03-11 08: 02: 52.641290Z",
      "состояние": "приглашение",
      "updated_at": "2021-03-11 08: 02: 52.641290Z",
      "их_роль": "приглашающий",
      "приглашение_msg_id": "638728b4-63b1-4a9a-82b8-c07d72925196",
      "accept": "manual",
      "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
      "приглашение_моде": "один раз",
      "routing_state": "нет",
      "приглашение_key": "b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC",
      "rfc23_state": "приглашение получено",
      "their_label": "Алиса"
    }
      

    Если вы запускаете два экземпляра ACA-py рядом друг с другом, вы можете просто скопировать и вставить приглашение.В реальном мире приглашение Алисы обычно отправляется Бобу либо в виде QR-кода, либо в виде ссылки. Приложение-кошелек Боба просканирует QR-код и получит приглашение.

    Когда Боб получит приглашение, экземпляр ACA-py зарегистрирует его:

    Боб

      1
    2
    3
    4
      
      Создана новая запись подключения из приглашения
        соединение: {'created_at': '2021-03-11 08: 02: 52.641290Z', 'state': 'приглашение', 'updated_at': '2021-03-11 08:02:52.641290Z ',' their_role ':' inviter ',' inviter_msg_id ':' 638728b4-63b1-4a9a-82b8-c07d72925196 ',' accept ':' manual ',' connection_id ':' 6c770a37-64ad-43f4-99c6-12c467c58dba ' , 'application_mode': 'once', 'routing_state': 'none', 'invit_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'rfc23_state': 'приглашение-получено', 'их_ метка'}:
        приглашение: , label = 'Alice', handshake_Hprotocols = ['did: / 1.0 '], request_attach = [], service_blocks = [], service_dids = [])>
        их_роль: ответчик
      
    3

    Боб принимает приглашение

    Теперь, когда Боб получил приглашение, он может принять приглашение. Для этого ему нужен connection_id из ответа / out-of-band / receive-приглашения , который в данном случае 6c770a37-64ad-43f4-99c6-12c467c58dba , но для вас он будет другим.

    Боб

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
      
      $ curl -X POST "http: // localhost: 11001 / didexchange / 6c770a37-64ad-43f4-99c6-12c467c58dba / accept-приглашение" -H 'Content-Type: application / json'
    > {
      "created_at": "2021-03-11 08: 02: 52.641290Z",
      "состояние": "запрос",
      "updated_at": "2021-03-11 08:03: 52.760366Z",
      "их_роль": "приглашающий",
      "приглашение_msg_id": "638728b4-63b1-4a9a-82b8-c07d72925196",
      "accept": "manual",
      "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
      "request_id": "e598b0dc-9582-4979-9104-00c35ebf2c32",
      "приглашение_моде": "один раз",
      "routing_state": "нет",
      "приглашение_key": "b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC",
      "my_did": "HzWWzUg5hnjycPCAm8ko2X",
      "rfc23_state": "запрос отправлен",
      "their_label": "Алиса"
    }
      

    ACA-py Боба зарегистрирует это как

    Боб

      1
    2
      
      Создан запрос на подключение
        соединение: {'created_at': '2021-03-11 08:02:52.641290Z ',' state ':' request ',' updated_at ':' 2021-03-11 08: 03: 52.760366Z ',' their_role ':' inviter ',' inviter_msg_id ':' 638728b4-63b1-4a9a-82b8- c07d72925196 ',' accept ':' manual ',' connection_id ':' 6c770a37-64ad-43f4-99c6-12c467c58dba ',' request_id ':' e598b0dc-9582-4979-9104-00c35ebf2c32 ',' once 'selection_mode': 'once' , 'routing_state': 'none', 'приглашения_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'my_did': 'HzWWzUg5hnjycPCAm8ko2X', 'rfc23_strek'
      

    Алиса должна была получить запрос на соединение, который будет зарегистрирован как:

    Алиса

      1
    2
    3
    4
    5
      
      Получение запроса на подключение
        request: }>, label = 'Bob', did = 'HzWWzUg5hnjycPCAm8ko2X', did_doc_attachrator = , защищенный =' eyJhbGciOiAiRWREU0EiLCAia2lkIjogImRpZDprZXk6ejJEWmdDaWYyaGhQWHA5RnlZS1JEeDk0VlpHVHJ0b0Z6WE1RVlppUXliNzFxRnoiLCAiandrIjogeyJrdHkiOiAiT0tQIiwgImNydiI6ICJFZDI1NTE5IiwgIngiOiAiaVpuTjB2ZWhoSFlFdjh2cEVzeEVPTE1zdjUyanc1ZnFHOGRzdnZaeUtFVSIsICJraWQiOiAiZGlkOmtleTp6MkRaZ0NpZjJoaFBYcDlGeVlLUkR4OTRWWkdUcnRvRnpYTVFWWmlReWI3MX FGeiJ9fQ», подпись = 'SI5Rc-0pjCclpQbeSnjqKFALoG4q296xDkZN8rW0dOc1dClQDDM_UlYMAaHaAP00yp-Rp-5yC6HnOb4Q4_WAAw', подписи = None)>, base64 _ = 'eyJAY29udGV4dCI6ICJodHRwczovL3czaWQub3JnL2RpZC92MSIsICJpZCI6ICJkaWQ6c292Okh6V1d6VWc1aG5qeWNQQ0FtOGtvMlgiLCAicHVibGljS2V5IjogW3siaWQiOiAiZGlkOnNvdjpIeldXelVnNWhuanljUENBbThrbzJYIzEiLCAidHlwZSI6ICJFZDI1NTE5VmVyaWZpY2F0aW9uS2V5MjAxOCIsICJjb250cm9sbGVyIjogImRpZDpzb3Y6SHpXV3pVZzVobmp5Y1BDQW04a28yWCIsICJwdWJsaWNLZXlCYXNlNTgiOiAiQUc4dDI1WVhFTTQyNVJ4S2Fkc3REQlRmRXBQQ2hmbnduUlZlUmZQQ2Q1dmMifV0sICJhdXRoZW50aWNhdGlvbiI6IFt7InR5cGUiOiAiRWQyNTUxOVNpZ25hdHVyZUF1dGhlbnRpY2F0aW9uMjAxOCIsICJwdWJsaWNLZXkiOiAiZGlkOnNvdjpIeldXelVnNWhuanljUENBbThrbzJYIzEifV0sICJzZXJ2aWNlIjogW3siaWQiOiAiZGlkOnNvdjpIeldXelVnNWhuanljUENBbThrbzJYO2luZHkiLCAidHlwZSI6ICJJbmR5QWdlbnQiLCAicHJpb3JpdHkiOiAwLCAicmVjaXBpZW50S2V5cyI6IFsiQUc4dDI1WVhFTTQyNVJ4S2Fkc3REQlRmRXBQQ2hmbnduUlZlUmZQQ2Q1dmMiXSwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwOi8vbG9jYWxob3N0OjgwMDEvIn1dfQ ==')>)>)>
    
    Получен запрос на подключение из приглашения
        соединение: {'their_did': 'HzWWzUg5hnjycPCAm8ko2X', 'their_label': 'Bob', 'routing_state': 'none', 'Invitation_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gczC2W46uD:' обновлено '' accept ' 03-11 08:03:52.794628Z ',' created_at ':' 2021-03-11 08: 01: 16.546248Z ',' request_id ':' e598b0dc-9582-4979-9104-00c35ebf2c32 ',' connection_id ':' 9ebac177-a3d4-4a74-be42- 82f4e0cafefa ',' invive_msg_id ':' 638728b4-63b1-4a9a-82b8-c07d72925196 ',' state ':' request ',' selection_mode ':' once ',' their_role ':' Invitee ',' rfc23_state ':' request- полученный'}
      

    Принимая приглашение, Боб отправляет Алисе запрос на соединение. Это происходит автоматически, когда Боб принимает приглашение.Запрос будет идти напрямую от экземпляра ACA-py Боба к экземпляру ACA-py Алисы.

    Несмотря на то, что Алиса начала это взаимодействие с создания приглашения, на самом деле именно Боб отправляет запрос на соединение Алисе, поэтому Боб называется инициатором запроса . Алиса называется ответчиком .

    Алиса автоматически получает запрос на соединение.

    4

    Алиса принимает запрос на подключение

    Алиса теперь может принять запрос Боба на соединение.Для этого ей нужен connection_id для подключения на ее стороне. В данном случае это 9ebac177-a3d4-4a74-be42-82f4e0cafefa . Обратите внимание, что connection_id различается как для Алисы, так и для Боба. Оба они создают свой собственный уникальный идентификатор для соединения.

    Алиса принимает запрос:

    Алиса

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
      
      $ curl -X POST "http: // localhost: 11000 / didexchange / 9ebac177-a3d4-4a74-be42-82f4e0cafefa / accept-request" -H 'Content-Type: application / json'
    > {
      "their_did": "HzWWzUg5hnjycPCAm8ko2X",
      "their_label": "Боб",
      "my_did": "D8mvHXoPsYE17ma3KgTRre",
      "routing_state": "нет",
      "приглашение_key": "b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC",
      "accept": "manual",
      «updated_at»: «2021-03-11 08:10:19.754596Z ",
      "created_at": "2021-03-11 08: 01: 16.546248Z",
      "request_id": "e598b0dc-9582-4979-9104-00c35ebf2c32",
      "connection_id": "9ebac177-a3d4-4a74-be42-82f4e0cafefa",
      "приглашение_msg_id": "638728b4-63b1-4a9a-82b8-c07d72925196",
      "состояние": "ответ",
      "приглашение_моде": "один раз",
      "их_роль": "приглашенный",
      "rfc23_state": "ответ отправлен"
    }
      

    ACA-py Алисы будет записывать это как:

    Алиса

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
      
      Создание ответа на соединение
        connection_id: 9ebac177-a3d4-4a74-be42-82f4e0cafefa
    
    Создан ответ о подключении
        соединение: {'their_did': 'HzWWzUg5hnjycPCAm8ko2X', 'their_label': 'Bob', 'my_did': 'D8mvHXoPsYE17ma3KgTRre', 'routing_state': 'none', 'invit_key': 'bXzcd2gXuQ,' accept_key ':' bXzcd2gXuq , 'updated_at': '2021-03-11 08:10:19.754596Z ',' created_at ':' 2021-03-11 08: 01: 16.546248Z ',' request_id ':' e598b0dc-9582-4979-9104-00c35ebf2c32 ',' connection_id ':' 9ebac177-a3d4-4a74-be42- 82f4e0cafefa ',' invive_msg_id ':' 638728b4-63b1-4a9a-82b8-c07d72925196 ',' state ':' response ','ission_mode': 'once', 'their_role': 'Invitee', 'rfc23_state': 'response- послал'}
        ответ: }>, did = 'D8mvHXoPsYE17ma3KgTRre', did_doc_attach =  Защитить = 'подписи = None z2DR18Vcdh5d7kkdTbX9deCGD6EQBPhi1Lbea8AtXgtSpra eyJhbGciOiAiRWREU0EiLCAia2lkIjogImRpZDprZXk6ejJEUjE4VmNkaDVkN2trZFRiWDlkZUNHRDZFUUJQaGkxTGJlYThBdFhndFNwcmEiLCAiandrIjogeyJrdHkiOiAiT0tQIiwgImNydiI6ICJFZDI1NTE5IiwgIngiOiAiQ0xuaFJvQzFQWUM1WWJ0NTBuYkZ5MnZpNVUtVlpuS2pNOWx3U2RUQVprOCIsICJraWQiOiAiZGlkOmtleTp6MkRSMThWY2RoNWQ3a2tkVGJYOWRlQ0dENkVRQlBoaTFMYmVhOEF0WGd0U3ByYSJ9fQ', подпись = 'DwBrn7ecFD8xVnUgJPOP_m_p1mU23aguLMv3qXjRJGxp-Q2dN6sGFse6b1rY1l_5XjmDiiSiEKYmaX92SYuRBQ': ключ)>)>) >)>
    
    Подключение повышено до активного
        соединение: {'their_did': 'HzWWzUg5hnjycPCAm8ko2X', 'their_label': 'Bob', 'my_did': 'D8mvHXoPsYE17ma3KgTRre', 'routing_state': 'none', 'invit_key': 'bXzcd2gXuQ,' accept_key ':' bXzcd2gXuq , 'updated_at': '2021-03-11 08:10:19.808614Z ',' created_at ':' 2021-03-11 08: 01: 16.546248Z ',' request_id ':' e598b0dc-9582-4979-9104-00c35ebf2c32 ',' connection_id ':' 9ebac177-a3d4-4a74-be42- 82f4e0cafefa ',' invive_msg_id ':' 638728b4-63b1-4a9a-82b8-c07d72925196 ',' state ':' active ','ission_mode': 'once', 'their_role': 'administrator', 'rfc23_state': 'completed' }
    
    Полученное соединение завершено
        соединение: {'their_did': 'HzWWzUg5hnjycPCAm8ko2X', 'their_label': 'Bob', 'my_did': 'D8mvHXoPsYE17ma3KgTRre', 'routing_state': 'none', 'invit_key': 'bXzcd2gXuQ,' accept_key ':' bXzcd2gXuq , 'updated_at': '2021-03-11 08:10:19.814402Z ',' created_at ':' 2021-03-11 08: 01: 16.546248Z ',' request_id ':' e598b0dc-9582-4979-9104-00c35ebf2c32 ',' connection_id ':' 9ebac177-a3d4-4a74-be42- 82f4e0cafefa ',' invive_msg_id ':' 638728b4-63b1-4a9a-82b8-c07d72925196 ',' state ':' completed ','ission_mode': 'once', 'their_role': 'Invitee', 'rfc23_state': 'completed' }
      

    ACA-py Боба запишет это как:

    Боб

      1
    2
    3
    4
    5
      
      Принято ответ на соединение
        соединение: {'created_at': '2021-03-11 08:02:52.641290Z ',' state ':' response ',' updated_at ':' 2021-03-11 08: 10: 19.783479Z ',' their_role ':' inviter ',' inviter_msg_id ':' 638728b4-63b1-4a9a-82b8- c07d72925196 ',' accept ':' руководство ',' connection_id ':' 6c770a37-64ad-43f4-99c6-12c467c58dba ',' request_id ':' e598b0dc-9582-4979-9104-00c35ebf2c32 ',' once ' , 'routing_state': 'none', 'their_did': 'D8mvHXoPsYE17ma3KgTRre', 'invive_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'my_dice2c3': 'my_djc2': }
    
    Отправленное соединение завершено
        соединение: {'created_at': '2021-03-11 08:02:52.641290Z ',' state ':' completed ',' updated_at ':' 2021-03-11 08: 10: 19.795287Z ',' their_role ':' inviter ',' inviter_msg_id ':' 638728b4-63b1-4a9a-82b8- c07d72925196 ',' accept ':' руководство ',' connection_id ':' 6c770a37-64ad-43f4-99c6-12c467c58dba ',' request_id ':' e598b0dc-9582-4979-9104-00c35ebf2c32 ',' once ' , 'routing_state': 'none', 'their_did': 'D8mvHXoPsYE17ma3KgTRre', 'application_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'my_dice_did': ',' Hz_dyc2 ':'
      

    Поздравляем! Между Алисой и Бобом установлена ​​связь.Теперь вы можете сделать перерыв, не забывайте пить.

    Автоматический прием

    ACA-py поддерживает параметры командной строки для автоматического приема приглашений и запросов при их поступлении. Это позволяет пропустить шаги 3 и 4. Флаги командной строки: --auto-accept-invites и --auto-accept -запросы .

    Создание схемы и определения учетных данных

    Алиса выдаст Бобу учетные данные. Прежде чем она сможет это сделать, ей нужно создать схему и определение учетных данных.

    Создать схему очень просто, отправив ее в конечную точку / schemas :

    Алиса

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21 год
    22
    23
    24
      
      $ curl -X POST http: // localhost: 11000 / schemas \
      -H 'Content-Type: application / json' \
      -d '{
        "атрибуты": [
          "имя",
          "возраст"
        ],
        "schema_name": "моя-схема",
        "schema_version": "1.0"
    } '
    > {
      "schema_id": "M6HJ1MQHKr98nuxobuzJJg: 2: my-schema: 1.0 ",
      "schema": {
        "ver": "1.0",
        "id": "M6HJ1MQHKr98nuxobuzJJg: 2: my-schema: 1.0",
        "имя": "моя-схема",
        "версия": "1.0",
        "attrNames": [
          "имя",
          "возраст"
        ],
        «seqNo»: 1006
      }
    }
      

    Теперь давайте создадим определение учетных данных на основе только что созданной схемы:

    Алиса

      1
    2
    3
    4
    5
    6
    7
      
      $ curl -X POST http: // localhost: 11000 / credential-definitions \
      -H 'Content-Type: application / json' \
      -d '{
        "schema_id": "M6HJ1MQHKr98nuxobuzJJg: 2: my-schema: 1.0 ",
        "тег": "по умолчанию"
      } '
    > {"credential_definition_id": "M6HJ1MQHKr98nuxobuzJJg: 3: CL: 1006: по умолчанию"}
      

    The Issue Credential dance

    Как и в случае с танго, при выдаче учетных данных участвуют две стороны. Есть эмитент (Алиса) и держатель (Боб.

    ).

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

    Процесс выдачи учетных данных:

    1. Держатель направляет эмитенту предложение (эмитент получает предложение)
    2. Эмитент направляет оферту держателю на основании оферты (держатель получает оферту)
    3. Держатель отправляет запрос эмитенту (эмитент получает запрос)
    4. Эмитент отправляет учетные данные держателю (держатель получает учетные данные)
    5. Держатель хранит учетные данные (держатель отправляет подтверждение эмитенту)
    6. Эмитент получил подтверждение

    Выдача учетных данных

    1

    Боб начинает с отправки предложения

    Когда Боб начинает с отправки предложения, он может использовать / issue-credential-2.0 / send-предложение конечная точка. Обратите внимание, что Боб использует connection_id своего соединения с Алисой. Предложение отправляется через только что установленное соединение.

    Боб

      1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21 год
    22
    23
    24
    25
    26 год
    27
    28 год
    29
    30
    31 год
    32
    33
    34
    35 год
    36
    37
    38
    39
    40
    41 год
    42
    43 год
    44 год
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57 год
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81 год
    82
    83
    84
    85
    86
      
      $ curl -X POST http: // localhost: 11001 / issue-credential-2.0 / отправить-предложение \
     -H "Content-Type: application / json" -d '{
      "comment": "Я хочу это",
      "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
      "credential_preview": {
        "@type": "issue-credential / 2.0 / credential-preview",
        "атрибуты": [
          {
            "пантомима": "обычный / текст",
            "name": "name",
            "значение": "Боб"
          },
          {
            "пантомима": "обычный / текст",
            "Назовите возраст",
            "значение": "30"
          }
        ]
      },
      "filter": {
        "dif": {},
        "Инди": {}
      }
    } '
    > {
      "роль": "держатель",
      "auto_offer": ложь,
      "auto_issue": ложь,
      "auto_remove": правда,
      "cred_preview": {
        "@type": "сделал: сов: BzCbsNYhMrjHiqZDTUASHg; spec / issue-credential / 2.0 / credential-preview ",
        "атрибуты": [
          {
            "name": "name",
            "значение": "Боб"
          }
        ]
      },
      "cred_ex_id": "0ea86878-4369-41e8-8212-e4af42304f3d",
      "conn_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
      "состояние": "предложение отправлено",
      "updated_at": "2021-02-24 06: 13: 35.921424Z",
      "created_at": "2021-02-24 06: 13: 35.921424Z",
      "инициатор": "сам",
      "cred_proposal": {
        "@type": "did: sov: BzCbsNYhMrjHiqZDTUASHg; spec / issue-credential / 2.0 / propose-credential",
        "@id": "d263c3a9-95b7-42ce-bfce-58d10b256809",
        "comment": "Я хочу это",
        "фильтры ~ прикрепить": [
          {
            "@id": "0",
            "mime-type": "application / json",
            "данные": {
              "base64": "e30 ="
            }
          },
          {
            "@id": "1",
            "mime-type": "application / json",
            "данные": {
              "base64": "e30 ="
            }
          }
        ],
        "credential_preview": {
          "@type": "сделал: сов: BzCbsNYhMrjHiqZDTUASHg; spec / issue-credential / 2.0 / credential-preview ",
          "атрибуты": [
            {
              "name": "name",
              "значение": "Боб"
            }
          ]
        },
        "форматы": [
          {
            "attach_id": "0",
            "формат": "dif/[email protected]"
          },
          {
            "attach_id": "1",
            "формат": "hlindy-zkp-v1.0"
          }
        ]
      },
      "thread_id": "d263c3a9-95b7-42ce-bfce-58d10b256809"
    }
      

    В результате вы получите запись обмена учетными данными. Это запись, которая содержит состояние аттестата.Эти записи хранятся в ACA-py и могут быть получены с помощью конечной точки /issue-credentials-2.0/records/{id} , где id – это cred_ex_id в результате.

    2

    Алиса отвечает предложением

    Алиса получает предложение и может ответить предложением, используя конечную точку /issue-credential-2.0/records/{id}/send-offer . Обратите внимание, что идентификатор id , который использует эмитент, отличается от cred_ex_id , полученного владельцем.Каждый экземпляр ACA-py создает свои собственные идентификаторы.

    Алиса

      1
    2
    3
      
      $ curl -X POST http: // localhost: 11000 / issue-credential-2.0 / records / bac31f8c-660d-4ac4-b9a1-4ed7de47746a / send-offer \
     -H "Content-Type: application / json"
    > {<Запись обмена учетными данными>}
      
    2

    Боб запрашивает учетные данные

    После того, как предложение было получено Бобом, он может отправить запрос учетных данных Алисе.

    Боб

      1
    2
      
      $ curl -X POST http: // localhost: 11001 / issue-credential-2.0 / records / 0ea86878-4369-41e8-8212-e4af42304f3d / send-request
    > {<Запись обмена учетными данными>}
      
    3

    Алиса выдает учетные данные

    Алиса

      1
    2
    3
      
      $ curl -X POST http: // localhost: 11000 / issue-credential-2.0 / записи / bac31f8c-660d-4ac4-b9a1-4ed7de47746a / issue \
      -H "Content-Type: application / json" -d '{"comment": "Пожалуйста, получите это"}'
    > {<Запись обмена учетными данными>}
      
    4

    Боб сохраняет полученные учетные данные

    Боб

      1
    2
    3
      
      $ curl -X POST http: // localhost: 11001 / issue-credential-2.0 / records / 0ea86878-4369-41e8-8212-e4af42304f3d / store \
      -H "Content-Type: application / json" -d '{}'
    > {<Запись обмена учетными данными>}
      

    Автоматизация потока учетных данных для задач

    Есть еще одна конечная точка, которую мы не обсуждали, это / issue-credential-2.0 / отправить . Это то же самое, что и /issue-credential-2.0/send-offer с точки зрения эмитента, но которое устанавливает для флагов auto_offer и auto_issue значение true. Если держатель автоматически принимает предложения и превращает их в запросы, то это полностью автоматизирует выдачу учетных данных.

    Разработка и отладка

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

    Процесс выдачи учетных данных можно автоматизировать с помощью:

    • - предложение-автоответчик-учетных данных
    • - предложение-автоответчик-учетных данных
    • --авто-ответ-запрос учетных данных
    • - учетные данные авто-магазина

    Если вы читали это сообщение в блоге, эти параметры командной строки должны говорить сами за себя. Конечно, они предназначены для разработки и отладки, поэтому никогда не включайте их для производственного использования.

    Когда вы создаете предложение по учетным данным или предложение по учетным данным, запись обмена учетными данными будет автоматически удалена после завершения выдачи учетных данных. Автоматическое удаление можно отключить, указав --preserve-exchange-records в ACA-py.

    Заключение

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

    Пожалуйста, дайте мне знать, было ли это руководство полезным и если у вас возникнут вопросы!

    Hyperledger Aries Passport Identity Wallet

    Идентификационный кошелек IdRamp Passport и служба управления учетными данными построены на основе Hyperledger Aries Framework с открытым исходным кодом. Эта статья представляет собой введение в Aries Framework, предоставляемое Hyperledger Foundation, и список ресурсов, чтобы узнать больше об этой трансформирующей технологии. Вы можете попробовать идентификационный кошелек IdRamp Passport Hyperledger Aries, посетив любой общедоступный магазин приложений сегодня.

    Идентичность часто называют одним из наиболее многообещающих вариантов использования технологии распределенного реестра. Инициативы и решения, направленные на создание, передачу и хранение поддающихся проверке цифровых учетных данных, выиграют от общего, многоразового и функционально совместимого набора инструментов. Hyperledger Aries, новейший проект Hyperledger (13-й!), Представляет собой общую инфраструктуру инструментов, которая позволяет обмениваться данными на основе блокчейна, поддерживает одноранговый обмен сообщениями в различных сценариях и облегчает взаимодействие между различными блокчейнами и другим распределенным реестром. технологии (DLT).

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

    Что такое Овен?
    Hyperledger Aries – это инфраструктура для одноранговых взаимодействий на основе блокчейна.Это не блокчейн и не приложение.

    Включает:

    • Уровень интерфейса цепочки блоков (известный как преобразователь) для создания и подписания транзакций цепочки блоков.
    • Криптографический кошелек для безопасного хранения (технология безопасного хранения, а не пользовательский интерфейс) криптографических секретов и другой информации, используемой для создания клиентов цепочки блоков.
    • Система обмена зашифрованными сообщениями для внепланового взаимодействия между клиентами с использованием нескольких транспортных протоколов.
    • Реализация проверяемых учетных данных W3C с поддержкой ZKP с использованием примитивов ZKP, найденных в Ursa.
    • Реализация спецификации децентрализованной системы управления ключами (DKMS), которая в настоящее время инкубируется в Hyperledger Indy.
    • Механизм для создания протоколов более высокого уровня и сценариев использования, подобных API, на основе функций безопасного обмена сообщениями, описанных ранее.

    Общий интерфейс Aries изначально будет поддерживать преобразователь Hyperledger Indy, но достаточно гибкий, чтобы кто-то мог создать подключаемый метод, используя другие преобразователи методов DID, такие как Hyperledger Fabric, Ethereum или другой преобразователь методов DID, который они пожелают.Эти типы преобразователей будут поддерживать разрешение транзакций и других данных в других регистрах.

    Кроме того, Hyperledger Aries будет предоставлять функции и функции, выходящие за рамки реестра Indy, которые должны быть запланированы и полностью поддерживаться. Мы обратились к другим группам, в том числе к децентрализованной идентификации на основе Ethereum и другим участникам W3C, чтобы внести свой вклад в эту кодовую базу.

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

    Откуда появился Овен?
    Hyperledger Aries связан как с Hyperledger Indy, который обеспечивает реализацию преобразователя, так и с Hyperledger Ursa, который он использует для криптографических функций. Овен будет использовать криптографическую поддержку, предоставляемую Ursa, для обеспечения как безопасного управления секретами, так и поддержки аппаратных модулей безопасности.

    Одна из основных целей этого проекта – изменить клиентские уровни в Hyperledger Indy, чтобы они могли взаимодействовать с другими проектами идентификации.Hyperledger Indy уже некоторое время инкубирует работу протокола для однорангового взаимодействия между владельцами удостоверений, но по мере роста сообщества разработчиков стало ясно, что объем этой работы выходит за рамки функций, предоставляемых Indy для поддержки других систем и сетей.

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

    Что ждет Овна дальше?
    Конечная цель Hyperledger Aries – предоставить динамический набор возможностей для хранения и обмена данными, связанными с идентификацией на основе блокчейна. Эти возможности будут варьироваться от защищенного секретного хранилища данных, таких как закрытые ключи, до возможности получения глобально доступных данных, которые могут быть просмотрены и доступны любому. Примером такой поддержки является создание решения для безопасного хранения, аналогичного кошельку, доступному сегодня в Hyperledger Indy.

    Другая функциональность Aries, которая будет входить в объем выпуска проекта 1.0, будет представлять собой децентрализованное решение для управления ключами (DKMS), которое добавит функции восстановления ключей, социального восстановления и резервного копирования и восстановления кошелька. Используя DKMS, клиентам потребуется способ взаимодействия друг с другом одноранговым узлом, который в настоящее время находится в разработке в Hyperledger Indy. Большая часть этой работы будет основана на документах DKMS, изложенных в папке проекта Indy-HIPE dkms. Это будет способно хранить проверяемые учетные данные, закрытые ключи, данные о состоянии отношений и функции, которые могут выполнять операции с этими данными без необходимости извлекать эти данные.

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

    Проект Aries содержит ряд репозиториев, которые можно сгруппировать в несколько важных категорий.

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

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *