Nym расшифровка и применение: расшифровка маркировки, технические характеристики, описание

Содержание

область применения, расшифровка, технические характеристики.

В промышленных и бытовых целях для создания силовых и осветительных энергосетей все чаще применяется кабель NYM. Это качественное немецкое изделие, которое поставляется из Европы, а также производится в России. Ближайшим отечественным аналогом является кабель ВВГ.

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

Расшифровка

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

  1. N — это знак немецкого стандарта (Normenleitung), свидетельствующий о том, что изделие прошло ряд проверок и по своим параметрам соответствует заявленным характеристикам. В комплекте с силовым кабелем NYM всегда присутствует сертификат соответствия международным стандартам качества.
  2. Y означает, что для изготовления изоляции применяется поливинилхлорид (ПВХ). Особенностью этого материала является влагостойкость и отсутствие реакции с кислотами, спиртами, бензином, различными газами.
  3. М означает наличие защитной оболочки, рассчитанной на небольшие деформации. Что делает электрический кабель NYM подходящим для монтажных работ.

На оболочке может присутствовать надпись VDE. Это аббревиатура Союза немецких электротехников (Verband Deutscher Elektrotechniker). Маркировка VDE информирует о том, что оболочка не поддерживает горение, допустимо применение в пожароопасных помещениях и изделие соответствует всем международным стандартам.

Маркировка электрического кабеля NYM зависит от наличия заземления и может содержать символ J или O. При этом символ O в маркировке может и не указываться, так как он информирует лишь об отсутствии провода, предназначенного для подключения заземления. Символ J свидетельствует о наличии такого проводника, поэтому указывается всегда.

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

К маркировке может добавляться приписка ОЖ. Она означает, что используемые жилы однопроволочные, а значит менее гибкие, чем многопроволочные.

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

Например, маркировка NYM-J 3х3,5-0,88 означает, что это стандартный электрокабель с наружной оболочкой из ПВХ, тремя жилами сечением 3,5 мм² на напряжение 0,88 кВ и заземлением.

Области применения

Согласно маркировке, провода НУМ рекомендуется применять исключительно для внутренней одиночной стационарной прокладки. Без дополнительной защиты прокладка в пучке запрещена.

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

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

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

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

Конструкция кабеля NYM

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

Возможное число жил — от 1 до 5. Количество зависит от сечения проводников.

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

Внешняя оболочка изготавливается из прочного ПВХ-пластика светло-серого цвета, не поддерживающего горение.

Технические характеристики кабеля NYM

Международные стандарты определяют следующие технические характеристики:

  1. Температурный диапазон: -50…+50°C.
  2. Температура укладки: не ниже -5°C.
  3. Ограничение радиуса изгиба: минимум 4 диаметра.
  4. Гарантийный срок: 5 лет.
  5. Срок службы: до 30 лет.
  6. Диапазон сечения медных жил: 1,5 — 35 мм².

Электрокабель может изготавливаться: по немецким стандартам, ГОСТу, ТУ. Технические условия изготовитель определяет сам. По этой причине у некоторых производителей кабеля NYM технические характеристики могут отличаться от стандартных.

Кабель NYM-J — технические характеристики, описание, расшифровка

Расшифровка кабеля NYM-J:

N — Кабель изготовлен согласно немецкому стандарту VDE
Y — Материал изготовления изоляции ПВХ
M — Указывает на назначение кабеля — монтажный
J — Наличие в кабеле желто-зеленой жилы

Элементы конструкции кабеля NYM-J:

1. Жила: однопроволочный или многопроволочный медный проводник.
2. Изоляция: поливинилхлоридный (ПВХ) пластикат.
Количество жилNUM-J NUM-O
2Черная , синяя
3Зелено-желтая, черная, синяяЧерная , синяя, коричневая
4Зелено-желтая, черная, синяя, коричневаяЧерная , синяя, коричневая, черная
5Зелено-желтая, черная, синяя, коричневая, чернаяЧерная , синяя, коричневая, черная, черная

3. Внутренние заполнение: невулканизированная резина, высоконаполненный пластикат или термоэластопласт.
4. Наружная оболочка: поливинилхлоридный пластикат серого, черного или белого цвета.

У кабеля NYM-J используется внутренние заполнение из невулканизированной резины, высоконаполненного пластиката или термоэластопласта, что:
* предотвращает опасность образования трещин при эксплуатации в неблагоприятных условиях,
* позволяет легко и удобно “разделывать” кабель при монтаже,
* увеличивает гибкость кабеля,
* придает кабелю круглую форму.

Область применения кабеля NYM-J:

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

Срок службы кабеля NYM-J — 30 лет.

Силовой кабель NYM — характеристики и расшифровка обозначения

Отредактировано: 30.08.2021


Силовой кабель NYM должен соответствовать немецкому стандарту VDE 088253 и VDE 0250 часть 204, поэтому большинство российских заводов выпускает его клон под аббревиатурой NUM. Часто применяемый в строительных проектах, он используется как в бытовых, так и в коммерческих и промышленных целях. 

Конструкция


Кабель NYM предназначен для стационарной проводки. Как и многие другие кабели такого типа, в качестве проводника он может иметь как одножильный, так и многожильный медный провод (класс 1 и 2 по ГОСТУ 22483). Количество проводников может варьироваться от одного до пяти. Имеет круглую форму, которую придает специальный наполнитель (мелонаполненная резина)  между проводниками и оболочкой.
Этот кабель, с изоляцией и оболочкой из ПВХ не распространяющего горение, рассчитан на номинальное переменное напряжение до 0,66 и 1 кВ частотой 50 Гц. Изоляция из ПВХ имеет максимальную рабочей температуры проводника +50 C, но может использоваться в установках, где температура опускается до -30 C.

Применение

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

Расшифровка условного обозначения

Спецификации кабелей в контексте NYM представляют собой аббревиатуры, состоящие из букв и цифр, которые предоставляют информацию о конструкции и предполагаемом использовании кабелей и проводов. «N» означает, что это кабель произведен в соответствии с немецким стандартом VDE 0250-204, «Y» означает, что изоляционным материалом, используемым для жил и оболочки, является ПВХ, а «M» означает кабель с оболочкой. Если за спецификацией NYM следует аббревиатура «J», это означает, что это многожильный экранированный кабель с зелено-желтым защитным проводником. С другой стороны, «O» указывает на отсутствие защитного проводника. Кабель имеет дополнительные характеристики, например в кабеле NYM 4×1,5, первая цифра, в данном случае цифра 4, указывает на количество жил кабеля в оболочке. Число после «x» указывает поперечное сечение кабеля в квадратных миллиметрах, в этом случае 1,5 мм².

Пример спецификации: Кабель NYM-J / -0 4×1,5

  • N: кабель соответствует стандарту VDE 0250-204
  • Y: изоляция из ПВХ
  • M: кабель в оболочке
  • J: с желто-зеленым защитным проводом
  • O: без защитного проводника
  • 4: количество жил
  • x: умноженное на
  • 1,5: поперечное сечение проводника в квадрате миллиметры

Аналоги

Российским аналогом является кабель стандарта ВВГнг, но у него нет заполнителя между изоляцией проводников и наружной оболочкой кабеля. Кроме того, кабели ВВГнг имеют более широкий диапазон рабочих температур и не поддерживают горение при групповой прокладке (у NYM только при одиночной).

Если стоит выбор, где купить силовой кабель, выбирайте надёжного поставщика. Компания «АнЛан» занимает лидирующие позиции на рынке РФ с 2007 года. Разумная цена и европейское качество — то, что отличает продукцию компании от других организаций.

Копирование контента с сайта Anlan.ru возможно только при указании ссылки на источник.
© Все права защищены.

Кабель NYM: технические характеристики, применение, назначение

Медный кабель NYM используется во время стационарной прокладки силовых и осветительных сетей с номинальным напряжением 660 Вольт и частотой в 50 Гц. Изготавливается данный кабель по немецкому стандарту VDE 0250, что лучшим образом говорит за его надежность. Кабель NYM является современным аналогом кабеля ВВГ. NYM получился улучшенные характеристики, повышенную пластичность, современную изоляцию, неподверженность горению.

Конструкция кабеля NYM

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

  1. Количество жил: от одной до пяти, здесь все зависит от сечения.
  2. Изоляция жил стандартная, она выполнена из поливинилхлорида.
  3. Между оболочками и проводами используется негорючая герметизация, которая делает кабель по-настоящему стойким к огню.
  4. Цветовая маркировка проводов таблица соответствует всем стандартам.
  5. Жилы выполнены из меди, в зависимости от сечения они могут быть многопроволочные и однопроволочные.

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

Кабель NYM расшифровка

  • N – означает, что используется немецкий стандарт классификации кабелей.
  • Y – ПВХ изоляция.
  • M – можно использовать в различных условиях во время монтажа.

Также вы сможете встретить дополнительные приставки к кабелю НУМ, это может быть: «J» либо «O». Такие приставки означают, что в проводе есть заземление. Помимо этого можно встретить аббревиатуру VDE, она означает, что кабель можно использовать в пожароопасных помещениях.

Технические характеристики кабеля NYM

  1. Напряжение кабеля 660 Вольт (максимальное).
  2. Частота работы 50 Герц.
  3. Температура использования -50: +50.
  4. Нельзя укладывать кабель при температуре -5 и ниже.
  5. Минимально допустимый радиус изгиба кабеля составляет 4 наружных диаметра.
  6. Гарантия от производителя пять лет.
  7. Кабель способен прослужить 30 лет.

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

Технические характеристики NYM-J

Характеристики NYM-O

Сечение кабеля NYM

Применения

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

Кабель NYM или ВВГнг

Часто люди спрашивают, какой кабель выбрать NYM или ВВГнг. Каждый из них обладает определенными преимуществами и недостатками. Мы рекомендуем использовать кабель NYM во время прокладки проводки в доме – это будет лучшее решение. Ведь кабель NYM стоит на порядок выше ВВГнг, плюс он не может похвастаться такой пожаростойкостью. Смотрите видео сравнение этих кабелей:

Как видите, NYM показал результаты гораздо хуже, чем ВВГ. Также НУМ имеет очень высокую стоимость по сравнению с нашим аналогом. Однако вы же не будете использовать ВВГнг во время укладки проводки в частном доме? Поэтому такое сравнение можно назвать даже немного бессмысленным.

Статья по теме: Технические характеристики кабеля АСБ.

Кабель NYM: технические характеристики, расшифровка, производители

Медный провод NYM — распространённый проводник, применяется при прокладке внутренней проводки жилых и промышленных помещений. Его можно использовать внутри многих других объектов. В этой статье подробно рассмотрено, что такое кабель NYM и где его используют.

Что такое кабель NYM

Расшифровка аббревиатуры NYM:

N — провод стандартного вида;

Y — жилы изолированы при помощи ПВХ материалов;

M — имеет наружный слой.

Как выглядит изделие

Если перед названием нет символа «А», это означает, что жилы провода выполнены из меди. Кроме основных символов через тире могут указываться J или О — с светло-зеленым проводом или без него, это означает различие в заземлении.

После букв указываются цифровые значения, которые обозначают число жил и площадь их сечения. Например, кабель NYM-J 3×3,5 — 0,66 расшифровывается как:

  • классический провод, выполненный с ПВХ изоляцией и наружной оболочкой;
  • имеет три жилы с площадью сечения 3,5 кв. мм в каждой;
  • применяется при напряжении не выше 660 В.

Расшифровать маркировку на проводах смогут, к сожалению, не все электрики. Поэтому желательно работать с профессионалами.

Основные характеристики провода

Технические параметры изделия

Основные технические характеристики провода NYM:

  • оптимальное напряжение не выше 660 Вольт;
  • стандартная частота — 50 Гц;
  • площадь сечения жил от 2 до 35 мм2;
  • рабочая температура от −50 до +50 градусов;
  • допустимая температура прокладки не ниже −4 градусов;
  • разрешенный радиус загиба — 4 наружных диаметра;
  • срок эксплуатации не более 30 лет;
  • гарантия на изделие 5 лет.

Внимание! Остальные характеристики можно узнать из спецификации кабельной продукции.

Сфера применения кабеля

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

Маркировка кабеля

Довольно часто его применяют для монтажа снаружи помещений, но при условии, что прямые ультрафиолетовые лучи не будут попадать на провод. Для прокладки в жилом помещении провод многожильного вида NYM обычно монтируют скрытым способом.Этот кабель используется при подключении осветительных групп или розеток. Одно из преимуществ провода — проводник можно использовать и для монтажа в почве, но рекомендуется помещать изделие в гофру, тем самым делая его безопасным.

Конструкция кабеля NYM

Основные элементы провода NYM:

  • В нем находятся токоведущие жилы, которые изготавливают из алюминия или меди, их число зависит от вида изделия и может быть от 1 до 5. Некоторые производители выпускают кабели с 7 проводниками. Площадь сечения бывает от 2 мм2 до 35 мм2, каждая из жил одинаковая по размерам.
Из чего состоит изделие
  • Изоляция провода изготавливается из ПВХ материалов и имеет свой цвет, чтобы не путаться при прокладке.

Ниже указана цветовая маркировка:

Цвет внешней оболочки проводникаОбозначение
ГолубойНейтраль (N)
Светло-зелёныйИмеет заземление
Чёрный, коричневый, серыйФазные провода.
  • Провод также имеет герметизирующую оболочку, изготовленную из невулканизированного маслонаполненного каучука, и дает высокую защитную изоляцию, а также не впитывает воду. Из-за каучука провод удерживает круглый вид и не распространяет огонь.
  • Внешняя изоляция изготавливается из листового пластика и необходима для защиты от механических повреждений и агрессивных химикатов.
Жилы разных цветов

Как выбрать провод маркировки NYM

При покупке провода NYM желательно обращать внимание на массу бухты изделия — в основном именно она служит степенью того, что изделие произведено в соответствии с правилами ГОСТа.

Опытные мастера рекомендуют отдавать предпочтение только тем производителям, которые находятся на рынке больше 10 лет.

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

Правила прокладки провода NYM

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

Прокладка в стене

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

Какие возникают ошибки при применении NYM кабеля

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

Внимание! Необходимо помнить, что провод не распространяет огонь только лишь при индивидуальной прокладке.

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

Разные сечения

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

Как хранить и перевозить кабель NYM

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

Правильное хранение

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

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

Производители кабеля NYM

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

Кабельная продукция на катушках

HelukabelНемецкий завод, открывший свой филиал в России с 1998 года, отлично зарекомендовал себя на рынке за это время. В наличии имеется более 30000 маркоразмеров кабелей. Производитель доставляет продукцию в любую точку мира. Минимальная длина провода под заказ 100 метров.

LappKabel

Международная фирма, основанная еще в 60 годах прошлого века. Имеет более 100 зарубежных партнеров и филиалов, которые производят изделия для промышленности, атомных и нефтяных станций, осуществляют доставку продукции в короткие сроки по воздуху или железной дороге. Фабрика имеет множество наград и побед в конкурсах.

TKD Kabel

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

Процесс изготовления

Кабель NYM отлично себя зарекомендовал при прокладке не только в промышленности, но и в повседневной жизни. Чтобы правильно выбрать изделие, рекомендуется ориентироваться на описание вышеприведенных фабрик.

Кабель NYM 3х6

NYM 3х6 — кабель силовой с 3 медными жилами, сечением 6 миллиметров квадратных, в изоляции и оболочке из ПВХ пластиката и заполнением из невулканизированной резины.

Характеристики кабеля NYM 3х6

Климатическое исполнение кабеля NYM 3*6: УХЛ, первая и пятая категории размещения по ГОСТ 15150-69.
Минимальная температура эксплуатации кабеля NYM 3х6: -30°С.
Максимальная температура эксплуатации: +50°С.
Влажность воздуха при эксплуатации силового кабеля NYM 3х6 не должна превышать 98%, при более высокой влажности рекомендовано применять тропическое исполнение кабелей.
Монтаж кабеля NYM 3*6 производится при температуре не ниже -15 градусов, при более низких температурах требуется предварительный прогрев кабелей.
Минимальный радиус изгиба при прокладке кабеля NYM 3х6: 106,4 миллиметров.
Масса кабеля NYM 3х6: 0,363 килограмм в метре.
Срок службы силового медного кабеля NYM 3*6 не мене 40 лет с даты изготовления.
Наружный диаметр кабеля NYM 3х6: 13,3 миллиметров.

Токовые нагрузки кабеля NYM 3х6

Допустимый ток кабеля NYM 3*6: 43 ампер.
Номинальное переменное напряжение: 500 Вольт.
Активное сопротивление жилы: 3,06 Ом в километре.

Расшифровка маркировки NYM 3х6

N — соответствует немецкому стандарту VDE.
Y — изоляция и оболочка из ПВХ пластиката.
M — монтажный кабель.
3 — количество медных жил.
6 — сечение жилы в квадратных миллиметрах.

Конструкция кабеля NYM 3х6

1) Жила — медная круглой формы первого и второго класса по ГОСТ 22483-77.
2) Изоляция — из ПВХ пластиката.
3) Заполнение — из невулканизированной резины.
4) Оболочка — из ПВХ пластиката серого цвета.

Применение кабеля NYM 3*6

Кабель медный силовой NYM 3х6 предназначен для питания электроприборов напряжением до 500 Вольт переменного тока, для стационарной установки в зданиях и сооружениях и в местах где требуется герметизация кабельных вводов.

  • Марка?

    Аббревиатура (маркировка), как правило каждая заглавная буква имеет значение свойства или конструкции.

    NYM
  • Количество жил?

    Силовой кабель имеет от 1 до 5 жил. Кабель с 1 жилой применяется в зависимости от цвета жилы: ж\з — заземление., голубой(синий) — ноль. белый, красный, черный — фазные цвета. Кабель с 2 жилами применяют для ноля и фазы, 3 жилы — ноль, фаза, земля, при токах до 1КВ, при 10КВ — 3 фазы, 4 жилы — ноль и 3 фазы. 5 жил — ноль, земля и 3 фазы. У не силовых кабелей и проводов обозначения индивидуальны.

    3
  • Сечение жилы (мм/кв)?

    Сечение или площадь среза, измеряется в квадратных миллиметрах.
    От сечения зависит пропускная способность жилы, проще говоря сколько ампер сможет пропустить жила.
    Чем больше сечение тем меньше сопротивление (Ом).
    На напряжение сечение жилы влияем в меньшей степени.

    6
  • Материал жилы?

    Медь — первый по значимости материал жил, это обусловлено:
    1)Высокой электрической проводимостью.
    2)Достаточная механическая прочность.
    3)Удовлетворительная устойчивость к коррозии.
    Алюминий — второй по значимости материал жил по следующим причинам:
    1)Проводимость в 1.63 раза меньше чем у меди.
    2)Более низкая прочность.
    3)Легко окисляется, оксидная пленка имеет более высокое сопротивление.

    Медь
  • Материал изоляции?

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

    ПВХ
  • Материал оболочки?

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

    ПВХ
  • Максимальный вес (кг/м)?

    Вес является расчетной величиной, реальные показатели могут отличаться.

    0.363
  • Максимальный наружный диаметр (мм) 13.3
  • Электрическое сопротивление жилы (ом/км) 3.06
  • Допустимый радиус изгиба (мм) 106.4
  • Допустимая токовая нагрузка при прокладке на воздухе (А) 43
  • Допустимая токовая нагрузка при прокладке в земле (А) 43
  • Номинальное переменное напряжение (кВ) 0.5
  • Диапазон температур эксплуатации (°С) от -30 до +40
  • Срок службы 40 лет
  • Код ОКП 352 122
  • Максимальная мощность при прокладке в воздухе, 220V (кВт) 12.61
  • Максимальная мощность при прокладке в земле, 220V (кВт) 12.61
  • Максимальная мощность при прокладке в воздухе, 380V (кВт) 28.29
  • Максимальная мощность при прокладке в земле, 380V (кВт) 28.29
  • Вес 0.293
  • Срок службы, лет 30
  • Наружный диаметр, мм 13.3
  • Номинальная частота, Гц 50
  • Расчетная масса(вес), кг\км 363
  • Минимальный радиус изгиба, мм 53.2
  • Максимальная длина в бухте(смотке), м 137
  • Испытательное переменное напряжение 2000 В частотой 50 Гц
  • Сопротивление изоляции при 20°С, Мом\км 20
  • Номинальное переменное напряжение, Вольт 300..500
  • Минимальный радиус изгиба, наружных диаметров 4
  • Допустимая температура нагрева жил, С 70
  • Максимальная температура нагрева жил, °C при токе КЗ 160

Кабель NYM – характеристики, описание, расшифровка

Сегодня промышленность дает миру много продукции, наименование которой ровным счетом ничего не говорит простому обывателю. Например, среди различных видов кабелей известен кабель NYM. Что это такое?

Кабель NYM считается высококачественным, надежным и многофункциональным видом провода. Его активно используют как на промышленных и других объектах, так и в быту для решения широкого спектра задач. В силу многочисленных преимуществ потребители все чаще изъявляют желание купить кабель НИМ для своих целей.

Аббревиатура NYM расшифровывается так:

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

Чтобы понять, почему кабель NYM так популярен, изучите хотя бы кратко его основные технические характеристики:

1. Наличие медных жил. В зависимости от сечения распознается многожильный кабель NYM или одножильный провод. Разные модификации имеют до 5 жил.
2. Жилы, по которым движется электрический ток, снабжены ПВХ-изоляцией.
3. Цветовая маркировка выполнена согласно мировым стандартам, что позволяет не запутаться в ходе монтажа.
4. 0,66 кВ составляет максимальное значение напряжения.
5. Кабель можно применять в сетях, имеющих частоту тока, равную 50 Гц.
6. Медные жилы могут иметь площадь своего поперечного сечения от 1,5 до 35 мм.
7. Разрешена эксплуатация кабеля в диапазоне температур -50…+50С, а монтаж – при -5С максимум.

Диаметр и масса зависят от конкретной модели. Специалисты давно выделили такие плюсы кабеля, как:

1. Прекрасная эластичность. Во многом гибкость обеспечивает специальная резиновая промежуточная прослойка. Благодаря этой отличительной черте кабель может применяться в труднодоступных местах.
2. Изоляция из ПВХ не горит (медь тоже), поэтому применения кабеля NYM разрешено в пожароопасных условиях, включая любые деревянные строения.
3. Качество – кабель соответствует всем актуальным мировым стандартам, так что он надежен, безопасен и долговечен в эксплуатации.

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

Изображение: Mer.by

Читайте также:

Криптоним | Encyclopedia.com

Криптоним или кодовые имена — это слова, символы или числа, используемые вместо фактического имени человека, предмета или запланированного события. Этот термин образован от двух латинских корней: crypto , что означает секрет, и nym , что означает имя. Мера безопасности и контрразведки, кодовые названия облегчают скрытую связь и повышают секретность.

Криптоним уже давно существует во многих формах, каждая из которых адаптирована к обстоятельствам, в которых они используются.Для обеспечения безопасности кодовые названия военных и разведывательных операций чаще всего имеют меньшее или никакое отношение к засекреченным предметам, лицам или событиям, которые они представляют. Иногда такие криптонимы намеренно вводят в заблуждение. Во время Второй мировой войны американские военные использовали кодовое имя «Хаски» для обозначения запланированного вторжения в Северную Африку в 1943 году.

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

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

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

СМОТРИ ТАКЖЕ

Кодовое слово

Nebulous Notions

Причудливый научно-фантастический подкаст аудиодрамы о заговорах, контексте и поспешных выводах.


Ним «Туманные понятия» — это научно-фантастический подкаст, в котором мы следим за нашим бесстрашным исследователем заговоров Ним, ищущим правду о таинственном сигнале, который она перехватила.

NNN перенесет вас на таинственный корабль, брошенный в мертвой тупике космоса, а затем спросит, что именно вы ожидали там найти.


Слушайте

Вы можете слушать Nebulous Notions Нима через ваше любимое приложение для подкастов или с полными субтитрами на YouTube!

Примечания к содержанию

«Туманные понятия Нима» содержат:

Язык курса
Ссылки на насильственную смерть (не графически)
Ссылки на вскрытие (не графически)
Ссылки на употребление алкоголя и психоактивных веществ
Ссылки на правительственные заговоры и прикрытия
Doxxing

Несколько эпизодов содержат резкий статический шум.


Эпизоды

Эпизод 1 — Правда о сигнале

Ним начинает расследование источника странной передачи.

(стенограмма)

Эпизод 2 — Правда об искусственной гравитации

Теперь на борту корабля Ним начинает исследовать и делает ряд открытий, некоторые из которых довольно тревожные.

(стенограмма)

Эпизод 3 — Правда о сверхсветовом двигателе

Продолжая свои исследования, Ним начинает больше узнавать о бывшей команде корабля.

(стенограмма)

Эпизод 4 — Правда о хороших манерах

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

(стенограмма)

Эпизод 5 — Правда о предупреждениях

Ним ведет неприятный разговор.

(стенограмма)

Эпизод 6 — Правда о Ниме

Ним обращается к своей аудитории и, в частности, к одному человеку.

(стенограмма)

Эпизод 7 — Правда о шутках о тук-тук-тук

Ним слушает архивный журнал с предупреждением, пытаясь спровоцировать реакцию Ал.

(стенограмма)

Эпизод 8 — Правда о садовых инструментах

Недоразумение между Нимом и Алом вызывает некоторые трения. Ним узнает судьбу Кэсси.

(стенограмма)

Эпизод 9 — Правда о деградации почвы

Ним помогает Алу решить некоторые вопросы поддержки, и тем самым узнает место последнего упокоения команды.

(стенограмма)

Эпизод 10 — Правда о Brollaboration

Ним отвлекается от расследования, чтобы противостоять кому-то.

(стенограмма)

Эпизод 11 — Правда о Паркер Лоусон

Ним стал жертвой своей решительной позиции.

(стенограмма)

Эпизод 12 — Вся правда о Fellitus Narridae

Ним заканчивает свое расследование и делает приглашение.

(стенограмма)


Актеры и экипаж

«Небесные понятия» Нима производится Passer Vulpes Productions совместно с А.Л. Рейнольдсом и Джейми Дрейком.

«Туманные понятия Нима» написаны Джейми Дрейком, А.Л. Рейнольдсом, Морганом Джунор и Эрин Киан.

Нима озвучивает Сара Роуч
Эла озвучивает Миллс Росс
Тайлер Ричардс озвучивает Кевин К. Гомес
Беа Джорган озвучивает Кэти Сиретт
Каллум Риггс-Джорган озвучивает Аллен Винтер
Кэти Риггс-Джорган озвучивает Элисса Парк
Эмери Риггс-Джорган озвучивает Матти Мали
Марк Риггс-Джорган озвучивает Эндрю Консолино
Кэсси Риггс-Джорган озвучивает Кэти Дентон
Джиан Маккиннон озвучивает Симанда Лоури
NNN озвучивает Эрин Киан


900 Пресс-кит

Загрузите наш пресс-кит здесь:


Мы хотели бы отметить, что «Туманные представления» Нима были созданы на украденных землях народов Кулин и Эора, а также Объединенного народа нгуннавал.Первоначально он был написан и произведен на земле Бунвуррунг, Вангал и Объединенный народ нгуннаваль с актерами со всего мира.

Мы отдаем дань уважения прошлым, настоящим и новым старейшинам и выражаем это уважение всем коренным народам.

Суверенитет никогда не передавался.
Австралия всегда была и всегда будет землей аборигенов.

Расположение головного офиса, конкуренты, финансы, сотрудники

От медицинского кодирования до диагностики крови: израильские стартапы разрушают сферу здравоохранения

26 августа 2021 г.

За последние полтора года и даже раньше мы стали свидетелями важности первозданной чистоты системы здравоохранения, и эти израильские стартапы ставят во главу угла пациентов и их помощь.Дор Шварц / • Чтение займет 7 мин. Израильская технологическая экосистема всегда была ведущим новатором в отрасли медицинских технологий. Поскольку COVID продолжает бросать вызов глобальным системам здравоохранения и обнаруживать множество сбоев в этих системах, израильские инновации активизировали свою игру, чтобы каждый человек получил оптимальную медицинскую помощь. От средств обработки медицинских данных до универсального приложения-помощника по уходу — эти израильские стартапы поднимают здравоохранение на новый уровень и делают будущее лучше. Диагностическая робототехника Diagnostic Robotics — это израильский глобальный стартап, разрабатывающий передовые решения в области искусственного интеллекта для медицинских учреждений и организаций.Системы искусственного интеллекта компании обучены работе с десятками миллиардов точек данных по претензиям и почти 100 миллионам посещений пациентов. Только в 2020 году системы обслужили более двух миллионов пациентов. Диагностическая робототехника поддерживает поставщиков медицинских услуг, плательщиков и работодателей, создавая беспрепятственные, управляемые данными взаимодействия, которые легко интегрируются в основные точки взаимодействия на пути к пациенту, обеспечивая ценную поддержку принятия решений, одновременно сокращая административное бремя, значительно снижая стоимость лечения и улучшая состояние пациента. опыты.Кредит группы диагностической робототехники: Омер Хакоэн Основанная в 2017 году д-ром Кирой Радински, Йонатаном Амиром и профессором Моше Шохамом, компания зарекомендовала себя на рынке благодаря нескольким высокопрофессиональным стратегическим партнерским отношениям для внедрения продуктов с ведущими отраслевыми партнерами, плательщиками и поставщиками в Израиле и США. Состояния. Команда компании, состоящая из более чем 90 врачей, экспертов по искусственному интеллекту, инженеров программного обеспечения и дизайнеров, сотрудничает с растущим числом плательщиков и партнеров-поставщиков, включая клинику Мэйо, Blue Cross Blue Shield Rhode Island, Brown-Life Center for Digital Health, Deloitte, Salesforce, штат Род-Айленд, медицинский центр Маймонида, Министерство здравоохранения государства Израиль, клиника Клалит, больница Леумит, больница Рамбам и этот список можно продолжить.На сегодняшний день компания привлекла 38 миллионов долларов, и ее штаб-квартира находится в Тель-Авиве. TailorMed TailorMed — это технологическая компания в области здравоохранения, основанная для того, чтобы помочь пациентам и поставщикам медицинских услуг устранить финансовые препятствия на пути оказания медицинской помощи, облегчая пациентам оплату стоимости лечения. TailorMed помог системам здравоохранения, клиникам и аптекам в Соединенных Штатах, чтобы пациенты могли позволить себе необходимую помощь. Основатели TailorMed: Срулик Дворски и Адам Ситон Фото: Шломи Йосеф Платформа TailorMed автоматизирует процесс выявления пациентов с финансовым риском, сопоставления и включения их в финансовые ресурсы, такие как совместная оплата, программы замены лекарств, государственные субсидии, ресурсы сообщества и штата, помощь от фондов и программ по конкретным заболеваниям. которые помогают пациентам покрывать расходы на проживание.Для пациентов платформа может помочь снизить ответственность за наличные расходы, устранить финансовые трудности и избежать медицинской помощи. Для организаций-поставщиков TailorMed переводит финансовую помощь с сборов на упреждающий подход к удовлетворению финансовых потребностей на месте оказания помощи, улучшая финансовые показатели. Израильская компания была основана Сруликом Дворски и Адамом Ситоном со штаб-квартирой в Тель-Авиве. Ним Здоровье Nym Health — автономный поставщик технологий медицинского кодирования, который применяет новаторский подход к управлению циклом доходов.Механизм клинического понимания языка (CLU) Nym работает лучше, чем человеческое кодирование, и делает это за секунды и без вмешательства человека. Механизм Nym отслеживает посещения пациентов и обрабатывает карты пациентов, в том числе индивидуализированные записи врачей. Соответствующие коды назначаются карте пациента и отправляются обратно поставщикам услуг или компаниям RCM менее чем за пять секунд — по сравнению с традиционным пяти-девятидневным процессом, когда кодирование вводится вручную. Авторы команды Nym: Юрай Саяг Nym Health работает в 40 больницах США.S. и обеспечивает полностью автоматизированное, эффективное и прозрачное управление циклом доходов для поставщиков медицинских услуг. У Nym Health есть офисы в Тель-Авиве и Нью-Йорке. Компанию основали Амихай Нейдерман и Адам Римон. Недавно Ним привлек 25 миллионов долларов после того, как получил 16,5 миллионов долларов в серии A, возглавляемой GV (инвестиционным подразделением Google). Грохот Rumble — это мобильное приложение, разработанное UVTal Health, которое подсчитывает шаги пользователей во время ходьбы и позволяет им зарабатывать ваучеры для местных предприятий. Как только пользователи накопят достаточное количество шагов, они могут конвертировать их в виртуальную валюту, которую можно использовать для покупки скидок и рекламных акций в десятках предприятий или пожертвовать виртуальные деньги на благотворительность.Кредит Rumble Team Адар Ювиан Rumble помогает глобальным поставщикам страхования жизни / здоровья принимать решения на основе данных и персонализировать критерии политики, предоставляя в реальном времени данные о страхователях, собранные через приложение Rumble. Rumble была основана генеральным директором Алоном Зильбебергом и техническим директором Лиором Клибански, и на сегодняшний день собрала всего 300 тысяч долларов. Офисы компании находятся в г. Явне, Израиль. Диагностика зрения Основанная в 2011 году компания Sight Diagnostics направлена ​​на преобразование систем здравоохранения и результатов лечения пациентов с помощью точного и безболезненного диагностического тестирования крови.Технология Sight, разработанная за десять лет исследований, представляет собой прорыв в диагностической методологии. Последний анализатор крови Sight, Sight OLO, выполняет полный анализ крови, наиболее часто используемый анализ крови, за считанные минуты. Диагностика зрения OLO создает цифровую версию образца крови, получая более 1000 высокодетализированных изображений всего из двух капель крови, полученных из укола пальца или венозного образца. Затем эти изображения интерпретируются запатентованными и полностью автоматизированными алгоритмами искусственного интеллекта.Первый продукт компании Sight, ParasightTM, был использован для выявления малярии почти в 1 миллионе тестов в 24 странах. Компания имеет быстрорастущие офисы в Великобритании, США и Израиле. Компания Sight была основана в 2011 году генеральным директором Йоси Поллаком и доктором Даниэлем Левнером, председателем Научно-консультативного совета. На сегодняшний день компания привлекла более 120 миллионов долларов. MeMed MeMed — израильский стартап, разрабатывающий технологии ответа хоста. По заявлению компании, ее платформа декодирует сложные сигналы организма в простые идеи, которые улучшают жизнь людей.Используя свой опыт в профилировании ответов хоста и алгоритмах машинного обучения, MeMed создает портфель тестов, которые решают сложные клинические дилеммы. Д-р Эран Иден, генеральный директор и д-р Кфир Овед, технический директор кредит: MeMed Флагманский продукт компании MeMed BV точно дифференцирует бактериальную инфекцию от вирусной, позволяя улучшить ведение пациентов, включая надлежащее использование антибиотиков, и помочь решить глобальную проблему устойчивости к противомикробным препаратам в области здравоохранения. Основываясь на вычислительной интеграции бактериальных и вирусно-чувствительных иммунных белков, Key предоставляет результат BV в сыворотке за 15 минут; этот тест был клинически подтвержден на тысячах пациентов, имеет маркировку CE и ожидает рассмотрения 510 (k).Штаб-квартира MeMed находится в Израиле, а филиал — в США. Международная команда MeMed является примером биоконвергенции, объединяя экспертов в области молекулярной иммунологии, биоинформатики, разработки анализов, инженерии и инфекционных заболеваний. В настоящее время коммерческий, коммерческий и сервисный отделы расширяются для поддержки запуска. Антидот здоровья Израильский стартап телемедицины, помогающий миллионам незастрахованных американцев получить доступ к доступной медицинской помощи. Платформа Antidote на базе искусственного интеллекта связывает пациентов и врачей с помощью видеозвонков и чат-ботов.Команда Antidote Health В прошлом году рынок здравоохранения США преодолел порог общих расходов в 4 триллиона долларов (около 19% ВВП). Он достиг своего нынешнего состояния в свете существующего структурного разделения на рынке между поставщиками медицинских услуг и страховыми компаниями. Модель HMO B2C Antidote объединяет эти две части, согласовывая интересы пациента, поставщиков медицинских услуг и лица, покрывающего страховку. Применяя более прямой подход к страхованию, Antidote может предоставлять незастрахованным лицам качественную медицинскую помощь, при этом предлагая им всего лишь 29 долларов в месяц.Ранее в этом году Antidote запустила свою модель HMO в Нью-Йорке, Нью-Джерси, Флориде, Мичигане и Северной Каролине, а расширенное внедрение запланировано на 2022 год. IDENTI IDENTI предоставляет мощные решения для сбора данных для создания наглядного отчета о медицинских запасах и потреблении в режиме реального времени. Благодаря защищенной патентом системе автоматизации IDENTI можно упростить управление запасами и получить полное представление о затратах и ​​выставлении счетов за операции. Платформа помогает поддерживать безопасность пациентов, отслеживая целостность товаров на имеющихся запасах и предупреждая о ненадлежащем использовании просроченных и отозванных товаров.Облачная система компании содержит информацию о сотнях тысяч изделий медицинского назначения. Интегрированные технологии искусственного интеллекта и машинного обучения обеспечивают быстрое автоматическое документирование информации в файлах пациентов и больничных системах, тем самым экономя дорогостоящие инвестиции для поддержания актуальной базы данных и обеспечивая соблюдение строгих нормативных требований для документирования имплантатов в медицинских картах пациентов. IDENTI Medical Сотни больниц, производителей медицинского оборудования и международных логистических компаний по всему миру используют платформу IDENTI для принятия более эффективных корпоративных решений и обеспечения более качественного и безопасного ухода за своими пациентами.Компания была основана в 2017 году генеральным директором Шломи Матисьяху и Алоном Негби. Офисы находятся в Нетании. Emendo Emendo Biotherapeutics разрабатывает инструменты для редактирования генов следующего поколения для генетических заболеваний, устраняя существующие технологические пробелы для реализации перспектив генной терапии. Они используют свой опыт в области белковой инженерии, чтобы предложить инновационные и прорывные белковые инструменты для устранения узких мест в этой области. Платформы Emendo доводят CRISPR до уровней точности, которые расширяют диапазон целевых генов для успешного редактирования генов.Хотя CRISPR — это революционная технология, которая значительно увеличивает возможности редактирования генов, для большинства генетических заболеваний она все еще ограничена и не позволяет вносить необходимые изменения. Эмендо разработал новый подход, который позволит сделать любой ген целевым. Они определили набор новых нуклеаз с различными характеристиками, которые могут разблокировать более широкие области генома, и что эти нуклеазы затем могут быть оптимизированы для каждой целевой последовательности для достижения высокого уровня точности редактирования. Emendo была основана в 2015 году генеральным директором Дэвидом Барамом, CIPO и главой отдела развития трубопроводов Рэйчел Диамант и CSO Лиором Ижаром.Компания привлекла 61 миллион долларов за 3 раунда финансирования, а ее офисы расположены в Научном парке, Реховот, Израиль. Медфлит Medflyt — маленький помощник воспитателя. Оказывается, дружелюбное приложение может побудить опекунов работать больше, выполнять все задачи, обучаться вовремя, соответствовать требованиям и оказывать более качественный уход — более эффективно, чем любой координатор. Medflyt — это интеллектуальная система управления для поставщиков услуг по уходу на дому, построенная на основе реальных потребностей и опыта лиц, осуществляющих уход. Приложение компании оптимизирует все аспекты операций по уходу на дому: наем и укомплектование персоналом, планирование и отчетность по EVV, выставление счетов и начисление заработной платы, а также все, что между ними.Приложение дает опекунам больший контроль над своей карьерой, которая раньше находилась в ведении координаторов агентств. Подпишитесь на Geektime

РАСШИФРОВКА: МИТЧ НА METS: 11 ИЮЛЯ 2009 ГОДА | Отчет Bleacher

ОТ МИТЧА НА РАДИОТРАНСЛЯЦИИ METS, 11 июля 2009 г. WXLM 104.7, в Интернете по адресу www.wxlm.fm

30 игр назад, я сказал вам, что эти последние 30 игр вполне могут решить сезон Метс . Что ж, похоже, что да, и новости нехорошие. Мец выиграли 10-20, и когда вы посмотрите на эту команду прямо сейчас, трудно представить, что они выиграют целых 10 в своих СЛЕДУЮЩИХ 30.

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

Итак, 11 июля -го , сезон закончился? Одним словом, да. Я уверен, что руководство это знает. Фанаты Мец должны принять это, потому что сейчас самое время подумать о следующем году. Любые разговоры о том, чтобы продать любую будущую стоимость (например, Фернандо Мартинес), чтобы помочь Mets 2009, просто глупо.Было бы одно дело, если бы все их ходячие раненые вернулись на следующей неделе, но, учитывая, что Рейес, Белтран, Дельгадо и Мэн не вернутся в лучшем случае до конца месяца, пора подумать о следующем году.

Я думаю, что Метс сделали небольшой шаг в этом направлении прошлой ночью, обменяв Райана Черча на «Атланта Брэйвз» на Джеффа Франкоура. Думаю, когда Метс видел, как Черч играет каждый день, они решили, что он не обычный игрок. Он выглядел довольно безнадежно только против ударов левой подачей.167 против них. В случае с Франсуэ преимущество у питчеров-правшей, так как он забивает против них всего 0,228, но все же это на 60 очков лучше, чем у Черча против левшей. Кроме того, Мец потерял 5 лет, а Франсуэ всего 25 лет, и, следовательно, у него больше возможностей для роста. С другой стороны, карьера Франсуэ резко падает. В 2006 и 2007 годах он выглядел как суперзвезда, совершив 29 хоумранов с 103 RBI в 2006 году, 19 хоумранов и 105 RBI в 2007 году. Тем не менее, в прошлом году Франсуэ совершил всего 11 хоумранов при 71 рейтинге RBI.В этом году у него было всего 5 обедов с 35 ребрами, что немного лучше, чем у Черча, и примерно в среднем за простое нарушение Мец. Наконец, хотя Черч был очень хорошим аутфилдером, Франсуэ — Золотой Гловер с фантастической рукой. Эти навыки пригодятся на обширной территории Citi Field. Оба игрока подписаны до 2011 года, и Braves отправили немного денег в Mets, чтобы уравнять их зарплаты.

Что касается остальной части этого сезона, для Мец пора принять некоторые решения о том, как будет выглядеть команда в следующем году.Я, например, насмотрелся Луиса Кастильо. Пора съесть этот контракт. Одна из проблем Mets в следующем году заключается в том, что предполагается, что Карлос Дельгадо уйдет, оставив Дэниела Мерфи в качестве первого игрока с низов. Проблема в том, что Мерфи просто не показал, что он нападающий первого калибра с низов высшей лиги. Я бы хотел увидеть, как Метс попробует Мерфи на второй базе, где он будет скорее наступательным оружием, чем обузой. Он был игроком с низов 3 rd в несовершеннолетних, но Mets действительно попробовали его в лиге падения Аризоны на базе 2 nd , и результаты, как сообщается, были не так хороши.Сейчас хорошее время, чтобы узнать. И, может быть, пора вспомнить Джонатана Нейза из Буффало, чтобы узнать, действительно ли он питчер высшей лиги. Я так не думаю, но сейчас самое подходящее время, чтобы узнать это.

Конечно, «Мец» отстают на 6,5 и занимают 4 -е место в , и впереди их всего несколько миль плохой дороги, но в сезоне 2010 года мы занимаем первое место в нашем дивизионе, имея только 162 места. Давайте поработаем над и .

А теперь вернемся к спортивному разговору с Биллом и Майком.

indy-sdk / начало работы.puml at master · hyperledger / indy-sdk · GitHub

@startuml
шкатулка «Алиса» #LightBlue
актер «Агент» в роли А
участник «Кошелек» как AW
концевая коробка
ящик «Faber College» #LightYellow
актер «Агент» как F
участник «Кошелек» как FW
концевая коробка
ящик «Acme Corp» #LightBlue
актер «Агент» как AC
участник «Кошелек» как ACW
концевая коробка
ящик «Сберегательный банк» #LightYellow
актер «Агент» как T
участник «Кошелек» как TW
концевая коробка
участник «Регистрационной книги» as L
ящик «Правительство» #LightBlue
актер «Агент» как G
участник «Кошелька» под номером GW
концевая коробка
ящик «Соврин Стюард» #LightYellow
актер «Агент» как S
участник «Кошелек» как SW
концевая коробка
=== Получение учетных данных Trust Anchor для Faber, Acme, Thrift и Government ==
S-> SW: Создать кошелек «Sovrin Steward»
S-> SW: Создать и сохранить DID «Sovrin Steward» из числа
== Получение учетных данных Trust Anchor — государственное подключение ==
S-> SW: Создать и сохранить «Sovrin Steward Government Pairwise» DID
S-> L: Отправить Нима для «Парного попечительского правительства Соврина» DID
S-> G: Запрос на соединение с DID «Sovrin Steward Government Pairwise» и nonce
G-> GW: Создать «правительственный» кошелек
G-> GW: Создать и сохранить «Правительственный управляющий Соврин Попарно» DID
G-> S: отправить ответ в нешифрованном виде с DID «Government Sovrin Steward Pairwise», verkey и nonce
S-> L: Отправить Нима для «Парного попечителя правительства Соврина» DID
== Получение учетных данных Trust Anchor — Правительство получает Verinym ==
G-> GW: Создать и сохранить «Правительство» DID
G-> S: Отправить зашифрованное «правительство» DID
S-> L: Отправить Нима для «государственного» DID с ролью якоря доверия
== Получение учетных данных Trust Anchor — Faber Onboarding ==
S-> SW: Создать и сохранить «Sovrin Steward Faber Pairwise» DID
S-> L: Отправить Нима для «Sovrin Steward Faber Pairwise» DID
S-> F: Запрос на соединение с DID «Sovrin Steward Faber Pairwise» и одноразовым номером
F-> FW: Создать бумажник «Faber»
F-> FW: Создать и сохранить «Faber Sovrin Steward Pairwise» DID
F-> S: Отправить незашифрованный ответ о соединении с DID «Faber Sovrin Steward Pairwise», verkey и nonce
S-> L: Отправить Нима для «Парного стюарда Фабера Соврина» DID
== Получение учетных данных Trust Anchor — Faber получает Verinym ==
F-> FW: Создать и сохранить «Faber» DID
F-> S: Отправить зашифрованное «Faber» DID
S-> L: Отправить Нима для «Faber» DID с ролью якоря доверия
== Получение учетных данных Trust Anchor — Acme Onboarding ==
S-> SW: Создать и сохранить «Sovrin Steward Acme Pairwise» DID
S-> L: Отправить Нима для «Sovrin Steward Acme Pairwise» DID
S-> AC: запрос на соединение с DID «Sovrin Steward Acme Pairwise» и одноразовым номером
AC-> ACW: Создать кошелек Acme
AC-> ACW: Создать и сохранить «Acme Sovrin Steward Pairwise» DID
AC-> S: отправить ответ о незашифрованном соединении с DID «Acme Sovrin Steward Pairwise», verkey и nonce
S-> L: Отправить Нима для «Acme Sovrin Steward Pairwise» DID
== Получение учетных данных Trust Anchor — Acme получает Verinym ==
AC-> ACW: Создать и сохранить «Acme» DID
AC-> S: Отправить зашифрованное «Acme» DID
S-> L: Отправить Nym для «Acme» DID с ролью якоря доверия
== Получение учетных данных Trust Anchor — Thrift Onboarding ==
S-> SW: Создать и сохранить «Sovrin Steward Thrift Pairwise» DID
S-> L: Отправить Нима для «Sovrin Steward Thrift Pairwise» DID
S-> T: запрос на соединение с DID и nonce «Sovrin Steward Thrift Pairwise»
T-> TW: Создать «Комиссионный» кошелек
T-> TW: Создать и сохранить «Thrift Sovrin Steward Pairwise» DID
T-> S: отправить ответ в нешифрованном виде с DID «Thrift Sovrin Steward Pairwise», verkey и nonce
S-> L: Отправить Нима для «Парного попечителя сбережений Соврина» DID
== Получение учетных данных Trust Anchor — Thrift получение Verinym ==
T-> TW: Создать и сохранить «Комиссионный доход» DID
T-> S: Отправить зашифрованную DID-информацию «Thrift»
S-> L: Отправить Нима для «бережливости» DID с ролью якоря доверия
=== Настройка схем учетных данных ==
G-> GW: Создать схему «Работа-Сертификат»
G-> L: Отправить схему для схемы «Job-Certificate»
G-> GW: Создать схему «Транскрипт»
G-> L: Отправить схему для схемы «стенограммы»
=== Настройка определения учетных данных Faber ==
F-> L: Отправить GetSchema для схемы «Транскрипт»
F-> FW: Создать и сохранить «Faber Transcript» Определение учетных данных
F-> L: Отправить CredDef для определения учетных данных «Faber Transcript»
=== Настройка определения учетных данных Acme ==
AC-> L: отправить GetSchema для схемы «Job-Certificate»
AC-> ACW: создать и сохранить «Acme Job-Certificate» Определение учетных данных
AC-> L: отправить CredDef для определения учетных данных «Acme Job-Certificate»
=== Получение стенограммы с Faber ==
== Получение стенограммы с Фабером — адаптация ==
F-> FW: Создать и сохранить «Фабер Алиса Парная» DID
F-> L: Отправить Нима для «пары Фабер Алиса» DID
F-> A: Запрос на соединение с DID «Faber Alice Pairwise» и одноразовым номером
A-> AW: Создать кошелек «Алиса»
A-> AW: Создание и сохранение «Парной Алисы Фабер» DID
A-> F: Анонсированный ответ о соединении с DID «Alice Faber Pairwise», verkey и nonce
F-> L: Отправить Нима для «Парной Алисы Фабер» DID
== Получение стенограммы с Faber — Получение учетных данных стенограммы ==
F-> A: Отправить зашифрованное предложение учетных данных «Расшифровка стенограммы Алисы Фабер»
A-> AW: Создайте и сохраните Мастер Секрет «Алисы»
A-> L: отправить GetSchema для схемы «стенограммы»
A-> L: отправить GetCredDef для определения учетных данных «Faber Transcript»
A-> AW: Создать запрос учетных данных «Расшифровка стенограммы Алисы Фабер»
A-> F: отправить зашифрованный запрос учетных данных «Расшифровка стенограммы Алисы Фабер»
F-> F: Создать учетные данные «Расшифровка стенограммы Алисы Фабер»
F-> A: Отправить зашифрованные учетные данные «Расшифровка стенограммы Алисы Фабер»
A-> AW: учетные данные магазина «Alice Faber Transcript»
=== Подать заявку на вакансию в Acme ==
== Подайте заявку на работу в Acme — Onboarding ==
AC-> ACW: создать и сохранить «Acme Alice Pairwise» DID
AC-> L: Отправить Nym для «Acme Alice Pairwise» DID
AC-> A: запрос на соединение с DID «Acme Alice Pairwise» и одноразовым номером
A-> AW: Создать и сохранить «Alice Acme Pairwise» DID
A-> AC: ответ о незашифрованном соединении с DID «Alice Acme Pairwise», verkey и nonce
AC-> L: Отправить Nym для «Alice Acme Pairwise» DID
== Подайте заявку на работу в Acme — Подтверждение заявки на вакансию ==
AC-> A: Отправить зашифрованный запрос подтверждения «Заявления о приеме на работу»
A-> AW: получить учетные данные для подтверждения запроса о приеме на работу
AW-> A: Учетные данные «Расшифровка стенограммы Алисы Фабер»
A-> L: отправить GetSchema для схемы «Транскрипт»
A-> L: отправить GetCredDef для определения учетных данных «Faber Transcript»
A-> A: Создать доказательство «Заявление о приеме на работу Алисы»
A-> AC: Отправить зашифрованное подтверждение «Заявление о приеме на работу Алисы»
AC-> L: отправить GetSchema для схемы «стенограммы»
AC-> L: отправить GetCredDef для определения учетных данных «Faber Transcript»
AC-> AC: Подтвердите подтверждение «Заявление о приеме на работу Алисы»
== Подайте заявку на вакансию в Acme — Получение учетных данных сертификата вакансии ==
AC-> A: Отправить зашифрованный «Сертификат о работе Алисы Акме» с учетными данными
A-> L: отправить GetSchema для схемы «Job-Certificate»
A-> L: отправить GetCredDef для определения учетных данных «Acme Job-Certificate»
A-> AW: Создать запрос учетных данных «Алиса Акме Job-Certificate»
A-> AC: Отправить зашифрованный запрос учетных данных «Алиса Акме Job-Certificate»
AC-> AC: Создание учетных данных «Сертификат о работе Алисы Акме»
AC-> A: Отправить зашифрованные учетные данные «Алиса Акме Job-Certificate»
A-> AW: учетные данные магазина «Alice Acme Job-Certificate»
=== Подать заявку на ссуду с Thrift ==
== Подать заявку на ссуду с Thrift — Onboarding ==
T-> TW: Создать и сохранить «Парную экономную Алису» DID
T-> L: Отправить Нима для «Бережливой Алисы Попарно» DID
T-> A: запрос на соединение с DID «Thrift Alice Pairwise» и одноразовым номером
A-> AW: Создать и сохранить «Alice Thrift Pairwise» DID
A-> T: Анонсированный ответ о соединении с DID «Alice Thrift Pairwise», verkey и nonce
T-> L: Отправить Нима для «Парного сбережения Алисы» DID
== Подать заявку на ссуду в Thrift — Подтверждение трудовой истории ==
T-> A: Отправить зашифрованный запрос подтверждения «Заявка на получение ссуды»
A-> AW: получить учетные данные для подтверждающего запроса «Заявка на получение кредита»
AW-> A: «Сертификат о работе Алисы Акме», учетные данные
A-> L: отправить GetSchema для схемы «Job-Certificate»
A-> L: отправить GetCredDef для определения учетных данных «Acme Job-Certificate»
A-> A: Создать доказательство «Заявка на получение ссуды»
A-> T: Отправить подтверждение «Заявка на получение кредита»
T-> L: отправить GetSchema для схемы «Job-Certificate»
T-> L: отправить GetCredDef для определения учетных данных «Acme Job-Certificate»
T-> T: Подтвердить подтверждение «Заявка на ссуду — Базовая»
== Подать заявку на ссуду с помощью Thrift — Loan-Application-KYC proofing ==
T-> A: Отправить зашифрованный запрос подтверждения «Loan-Application-KYC»
A-> AW: получить учетные данные для подтверждения запроса «Loan-Application-KYC»
AW-> A: «Расшифровка стенограммы Алисы Фабер и свидетельство о работе Алисы Акме», учетные данные
A-> L: отправить GetSchema для схемы «стенограммы»
A-> L: отправить GetCredDef для определения учетных данных «Faber Transcript»
A-> L: отправить GetSchema для схемы «Job-Certificate»
A-> L: отправить GetCredDef для определения учетных данных «Acme Job-Certificate»
A-> A: Создать подтверждение «Заявка на получение кредита-KYC»
A-> T: отправить подтверждение «Заявка на получение кредита-KYC»
T-> L: отправить GetSchema для схемы «Транскрипт»
T-> L: отправить GetCredDef для определения учетных данных «Faber Transcript»
T-> L: отправить GetSchema для схемы «Job-Certificate»
T-> L: отправить GetCredDef для определения учетных данных «Acme Job-Certificate»
T-> T: Подтвердите подтверждение «Заявка на получение кредита-KYC»
@enduml

Gnptab — это ген, мутировавший у мутанта nym.A, последовательность Gnptab …

Контекст 1

… D10Mit42 и D10Mit178. ПЦР и прямое секвенирование всех 28 генов, кодирующих белок в пределах интервала, включая экзонные области и границы экзон-интрон, выявили единственную несинонимичную гомозиготную точечную мутацию в экзоне 13 гена Gnptab. Эта мутация вводит замену T на A в нуклеотиде 2601 последовательности кДНК (T26013 A) (рис. 1A), которая превращает тирозин в преждевременный стоп-кодон в положении 867 последовательности белка (Y867X) в эволюционно консервативная спейсерная область на 40 остатков выше сигнала расщепления между α- и β-субъединицами (рис.1Б). Предполагается, что это приведет к образованию слегка усеченной субъединицы (95% полной длины) …

Контекст 2

… Гена Gnptab. Эта мутация вводит замену T на A в нуклеотиде 2601 последовательности кДНК (T26013 A) (рис. 1A), которая превращает тирозин в преждевременный стоп-кодон в положении 867 последовательности белка (Y867X) в эволюционно консервативная спейсерная область на 40 остатков выше сигнала расщепления между α- и β-субъединицами (рис.1Б). Предполагается, что это приведет к получению слегка усеченной -субъединицы (95% полной длины) и полному отсутствию -субъединицы. В соответствии с потерей функционального фермента Gnpt, мутация двойника нима в последовательности белка человека (Y888X) фактически недавно была идентифицирована у пациента MLII (12). Согласованный …

Контекст 3

… и полное отсутствие -подблока. В соответствии с потерей функционального фермента Gnpt, мутация двойника нима в последовательности белка человека (Y888X) фактически недавно была идентифицирована у пациента MLII (12).В соответствии с нонсенс-опосредованным распадом уровни транскрипта Gnptab были снижены на 75% у мышей nym по сравнению с мышами дикого типа (рис. 1C). Сигнал экспорта эндоплазматического ретикулума (ER) удаляется при мутации nym, и можно ожидать, что укороченный белок останется в ER; Таким образом, была исследована клеточная локализация мутантного белка. Цитоплазматический домен β-субъединицы содержит сигнал экспорта ER (R / K) X (R / K) -типа и С-концевой валин, который …

Контекст 4

… которые необходимы как для упаковки, опосредованной карго-рецептором, в везикулы COPII, так и для доставки белка-предшественника GNPT в Golgi, где он расщепляется (28,29). Субклеточную локализацию nym Gnpta отслеживали в трансфицированных клетках HEK 293. Как и ожидалось, белок Gnpta дикого типа колокализовался с цис-маркером Гольджи GM130 (фиг. 1D, вверху), тогда как белок nym Gnpta этого не сделал (фиг. 1D, посередине). Белок нима Gnpta оставался захваченным в ЭПР, что продемонстрировано совместной локализацией с протеин-дисульфидизомеразой (рис.1D, внизу, PDI), маркер ER. Эти результаты подтверждают, что мутация nym действительно приводит к дисфункциональному ферменту Gnpta, и подразумевают, что мышь nym …

Контекст 5

… упаковывается в везикулы COPII и переносит белок-предшественник GNPT в Golgi, где он раскалывается (28,29). Субклеточную локализацию nym Gnpta отслеживали в трансфицированных клетках HEK 293. Как и ожидалось, белок Gnpta дикого типа колокализовался с цис-маркером Гольджи GM130 (рис.1D, вверху), тогда как белок nym Gnpta — нет (рис. 1D, посередине). Белок nym Gnpta оставался захваченным в ER, как продемонстрировано совместной локализацией с протеин-дисульфид изомеразой (рис. 1D, внизу, PDI), маркером ER. Эти результаты подтверждают, что мутация nym действительно приводит к дисфункциональному ферменту Gnpta, и подразумевают, что мышь nym является новой моделью MLII. Эти данные позволяют предположить, что …

Контекст 6

… Ним Gnpta отслеживали в трансфицированных клетках HEK 293.Как и ожидалось, белок Gnpta дикого типа колокализовался с цис-маркером Гольджи GM130 (фиг. 1D, вверху), тогда как белок nym Gnpta этого не сделал (фиг. 1D, посередине). Белок nym Gnpta оставался захваченным в ER, как продемонстрировано совместной локализацией с протеин-дисульфид изомеразой (рис. 1D, внизу, PDI), маркером ER. Эти результаты подтверждают, что мутация nym действительно приводит к дисфункциональному ферменту Gnpta, и подразумевают, что мышь nym является новой моделью MLII. Эти находки предполагают, что мутации усечения, присутствующие в GNPTAB, ингибируют выход из ER…

Контекст 7

… в слоях 3-5) и гиппокампе (внизу, в частности в слоях CA1 и CA3). Шкала шкалы 50 м. кодоны. Мутация nym Y867X приводит к образованию слегка укороченной -субъединицы, сохраняющей 95% эквивалента -субъединицы дикого типа и полного отсутствия -субъединицы, а нокаут-мутация G1028X несет полную-и усеченную -субъединицу ( Рис. 1Б). Обе мутации приводят к потере С-конца β-субъединицы, которая содержит трансмембранный домен и мотив выхода ER (R / K) X (R / K).Без мотива выхода из ER белок будет находиться в ER, а не в Golgi (Fig. 1D). Это в конечном итоге приведет к нефункциональному белку Gnpta, потому что сборка -и-субъединицы будет …

Контекст 8

… полная и усеченная субъединица (рис. 1B). Обе мутации приводят к потере С-конца β-субъединицы, которая содержит трансмембранный домен и мотив выхода ER (R / K) X (R / K).Без мотива выхода из ER белок будет находиться в ER, а не в Golgi (Fig. 1D). Это в конечном итоге приведет к нефункциональному белку Gnpta, потому что сборка -and-субъединицы не будет происходить, потому что расщепление белка-предшественника происходит в Golgi (15), в котором мутантный белок не будет располагаться. Оба мутанта демонстрируют несколько биохимических и клинических особенностей болезни MLII, включая скелетную …

Indy Walkthrough — Hyperledger Indy SDK documentation

Руководство разработчика по созданию клиентов Indy с использованием Libindy

Что такое Инди и Либинди и почему они имеют значение

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

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

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

Что мы расскажем

Наша цель — познакомить вас со многими концепциями Indy и дать вам некоторое представление о том, что происходит за кулисами, чтобы все это работало.

Мы собираемся описать исследование историей. Алиса, выпускница вымышленного колледжа Фабер, хочет устроиться на работу в вымышленную компанию Acme Corp. Как только она получит работу, она хочет подать заявку на ссуду в Thrift Bank, чтобы она могла купить машину. Она хотела бы использовать свою выписку из колледжа в качестве доказательства своего образования в заявлении о приеме на работу, и после приема на работу Алиса хотела бы использовать факт работы в качестве доказательства своей кредитоспособности для получения ссуды.

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

Готовы?

Об Алисе

Будучи выпускницей колледжа Фабер, Алиса получает информационный бюллетень для выпускников, в котором она узнает, что ее альма-матер предлагает электронные стенограммы. Она входит на сайт выпускников колледжа и запрашивает стенограмму, щелкнув Получить стенограмму .(Другие способы инициирования этого запроса могут включать сканирование QR-кода, загрузку пакета стенограммы с опубликованного URL-адреса и т. Д.)

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

В нормальных условиях для управления независимой идентичностью потребуется такой инструмент, как настольное или мобильное приложение. Это может быть отдельное приложение или может использоваться сторонний поставщик услуг, который в бухгалтерской книге называется агентством . Фонд Соврина издает справочные версии таких инструментов. Faber College изучит эти требования и порекомендует Алисе приложение Indy , если у нее его еще нет.Это приложение будет установлено как часть рабочего процесса с помощью кнопки Get Transcript .

Когда Алиса щелкает Get Transcript , она загружает файл, содержащий запрос на подключение Indy . Этот файл запроса на подключение, имеющий расширение .indy и связанный с ее приложением Indy, позволит ей установить безопасный канал связи с другой стороной в экосистеме реестра — Faber College.

Итак, когда Алиса нажимает Получить стенограмму , она обычно заканчивает тем, что устанавливает приложение (при необходимости), запускает его, а затем приложение спрашивает, хочет ли она принять запрос на соединение с Фабером.

Для этого руководства, однако, мы будем использовать Indy SDK API (предоставленный libindy) вместо приложения, чтобы мы могли увидеть, что происходит за кулисами. Мы будем изображать из себя особенно любопытную и технически предприимчивую Алису…

Подготовка инфраструктуры

Шаг 1. Получение учетных данных Trust Anchor для Faber, Acme, Thrift и Government

Колледж Фабер и другие актеры подготовились к тому, чтобы предложить эту услугу Алисе. Чтобы понять эти шаги, давайте начнем с некоторых определений.

Книга предназначена для хранения идентификационных записей , которые описывают объект книги . Идентификационные записи являются общедоступными данными и могут включать открытые ключи, конечные точки службы, схемы учетных данных и определения учетных данных. Каждая идентификационная запись связана ровно с одним DID (децентрализованный идентификатор), который является глобально уникальным и разрешимым (через реестр), не требуя какого-либо централизованного органа разрешения. Для обеспечения конфиденциальности каждый Identity Owner может владеть несколькими DID.

В этом руководстве мы будем использовать два типа DID. Первый — это Verinym . Код Verinym связан с идентификатором Legal Identity владельца идентификатора . Например, все стороны должны иметь возможность проверить, что какой-либо DID используется правительством для публикации схем для определенного типа документов. Второй тип — это псевдоним — слепой идентификатор , используемый для сохранения конфиденциальности в контексте текущих цифровых отношений ( соединение ).Если псевдоним используется для поддержания только одного цифрового отношения, мы будем называть его парным уникальным идентификатором. В этом руководстве мы будем использовать парные уникальные идентификаторы для поддержания безопасных соединений между участниками.

Создание DID, известного в Главной книге, — это сама Identity Record (транзакция NYM). Транзакция NYM может использоваться для создания новых идентификаторов DID, которые известны этому регистру, установки и ротации ключа проверки, а также установки и изменения ролей.Наиболее важными полями этой транзакции являются dest (целевой DID), роль (роль пользовательской записи NYM, для которой создается) и verkey (целевой ключ проверки). См. Раздел «Запросы», чтобы получить дополнительную информацию о поддерживаемых транзакциях в бухгалтерской книге.

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

Наша бухгалтерская книга является общедоступной, и любой, кто хочет публиковать DID, должен получить роль Trust Anchor в бухгалтерской книге. Якорь доверия — это человек или организация, о которых бухгалтерская книга уже знает, которые могут помочь другим пользователям. (Это , а не , то же самое, что эксперты по кибербезопасности называют «доверенной третьей стороной»; воспринимайте это скорее как посредника). См. «Роли», чтобы получить дополнительную информацию о ролях.

Первый шаг к тому, чтобы иметь возможность размещать транзакции в реестре, включает в себя получение роли якоря доверия в реестре.Faber College, Acme Corp и Thrift Bank должны будут получить роль якоря доверия в бухгалтерской книге, чтобы они могли создавать Verinyms и парно-уникальные идентификаторы для предоставления услуг Алисе.

Чтобы стать якорем доверия необходимо связаться с человеком или организацией, у которых уже есть роль якоря доверия в бухгалтерской книге. Для демонстрации в нашей пустой тестовой книге есть только NYM с ролью Steward , но все Stewards автоматически становятся Trust Anchors .

Шаг 2. Подключение к пулу узлов Indy

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

Первый блок кода будет содержать код агента Steward’s .

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

Список узлов в пуле хранится в бухгалтерской книге как транзакции NODE. Libindy позволяет восстанавливать фактический список транзакций NODE по нескольким известным транзакциям, которые мы называем транзакциями генезиса.Каждая конфигурация пула определяется как пара имени конфигурации пула и конфигурации пула JSON. Самым важным полем в json конфигурации пула является путь к файлу со списком транзакций генезиса. Убедитесь, что этот путь правильный.

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

Приведенный ниже блок кода содержит каждый из этих элементов. Обратите внимание, как в комментариях указано, что это код для «Стюард-агента».

 ожидание pool.set_protocol_version (2)
  
  pool_ = {'name': 'pool1'}
  пул _ ['genesis_txn_path'] = get_pool_genesis_txn_path (пул _ ['имя'])
  pool _ ['config'] = json.dumps ({"genesis_txn": str (pool _ ['genesis_txn_path'])})
  жду бассейн.create_pool_ledger_config (пул _ ['имя'], пул _ ['конфигурация'])
  pool _ ['handle'] = ожидание pool.open_pool_ledger (pool _ ['name'], Нет)
 

Шаг 3. Получение права собственности на Steward’s Verinym

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

Используемая нами тестовая книга была предварительно настроена для хранения некоторых известных Steward NYM. Также мы знаем начальных значений для генератора случайных чисел, которые использовались для генерации ключей для этих NYM.Эти начальные значения позволяют нам восстановить ключи подписи для этих DID на стороне агента Steward и, как результат, получить право собственности на DID.

У Либинди есть концепция кошелька Wallet . Кошелек является безопасным хранилищем для криптовалютных материалов, таких как DID, ключи и т. Д. Для хранения DID Steward и соответствующего ключа входа агент должен сначала создать именованный кошелек, позвонив wallet.create_wallet . После этого указанный кошелек можно открыть, позвонив в кошелек .open_wallet . Этот вызов возвращает дескриптор кошелька, который можно использовать для ссылки на этот открытый кошелек в будущих вызовах libindy.

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

 # Стюард Агент
  steward = {
      'name': "Соврин Стюард",
      'wallet_config': json.дампы ({'id': 'sovrin_steward_wallet'}),
      'wallet_credentials': json.dumps ({'key': 'steward_wallet_key'}),
      'pool': pool _ ['handle'],
      'seed': '000000000000000000000000Steward1'
  }
  
  await wallet.create_wallet (стюард ['wallet_config'], стюард ['wallet_credentials'])
  steward ['wallet'] = await wallet.open_wallet (steward ['wallet_config'], steward ['wallet_credentials'])
  
  стюард ['did_info'] = json.dumps ({'семя': стюард ['семя']})
  стюард ['сделал'], стюард ['ключ'] = ожидание did.create_and_store_my_did (стюард ['кошелек'], стюард ['did_info'])
 

Обратите внимание: Мы предоставили только информацию о семени .create_and_store_my_did , но никакой информации о DID стюарда. По умолчанию DID генерируются как первые 16 байтов ключа. Для таких DID, когда мы имеем дело с операциями, требующими как DID, так и verkey, мы можем использовать verkey в сокращенной форме. В этой форме verkey начинается с тильды «~», за которой следуют 22 или 23 символа. Тильда указывает, что сам DID представляет первые 16 байтов ключа, а строка, следующая за тильдой, представляет вторые 16 байтов ключа, оба используют кодировку base58Check.

Шаг 4. Знакомство Faber, Acme, Thrift и Government с помощью Steward

Faber, Acme, Thrift и Government должны теперь установить связь со стюардом.

Каждое соединение на самом деле представляет собой пару парных уникальных идентификаторов (DID). Один DID принадлежит одной стороне соединения, а второй — другой.

Обе стороны знают оба DID и понимают, какое соединение описывает эта пара.

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

Мы называем процесс установления соединения Подключение .

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

Подключение предприятия

Рассмотрим процесс установления связи между Steward и Faber College .

  1. Faber и Steward каким-то образом связываются, чтобы инициировать процесс адаптации.Это может быть заполнение формы на сайте или телефонный звонок.

  2. Steward создает новую запись DID в кошельке, вызывая did.create_and_store_my_did , который он будет использовать для безопасного взаимодействия только с Faber .

     # Стюард Агент
    (стюард ['did_for_faber'], стюард ['key_for_faber']) = await did.create_and_store_my_did (стюард ['кошелек'], "{}")
     
  3. Стюард отправляет соответствующую транзакцию NYM в бухгалтерскую книгу, последовательно вызывая бухгалтерскую книгу.build_nym_request для создания запроса NYM и ledger.sign_and_submit_request для отправки созданного запроса.

     # Стюард Агент
    nym_request = await ledger.build_nym_request (стюард ['did'], стюард ['did_for_faber'], стюард ['key_for_faber'], никто, роль)
    await ledger.sign_and_submit_request (стюард ['пул'], стюард ['кошелек'], стюард ['сделал'], nym_request)
     
  4. Steward создает запрос на подключение, который содержит созданные DID и Nonce .Этот одноразовый номер — просто большое случайное число, сгенерированное для отслеживания уникального запроса на соединение. Одноразовый номер — это случайное произвольное число, которое можно использовать только один раз. Когда запрос на соединение принят, приглашенный подписывает одноразовый номер цифровой подписью, чтобы приглашающий мог сопоставить ответ с предыдущим запросом.

     # Стюард Агент
    connection_request = {
        'did': стюард ['did_for_faber'],
        'nonce': 123456789
    }
     
  5. Steward отправляет запрос на подключение к Faber .

  6. Faber принимает запрос на подключение от Steward .

  7. Faber создает кошелек, если он еще не существует.

     # Faber Agent
    await wallet.create_wallet (faber ['wallet_config'], faber ['wallet_credentials'])
    faber ['кошелек'] = await wallet.open_wallet (faber ['wallet_config'], faber ['wallet_credentials'])
     
  8. Faber создает новую запись DID в своем кошельке, позвонив по номеру did.create_and_store_my_did , который он будет использовать только для безопасного взаимодействия с Steward .

     # Faber Agent
    (faber ['did_for_steward'], faber ['key_for_steward']) = await did.create_and_store_my_did (faber ['кошелек'], "{}")
     
  9. Faber создает ответ на подключение, который содержит созданные DID , Verkey и Nonce из полученного запроса на подключение.

     # Faber Agent
    connection_response = json.свалки ({
        'did': faber ['did_for_steward'],
        'verkey': faber ['key_for_steward'],
        'nonce': connection_request ['nonce']
    })
     
  10. Faber запрашивает у регистрационной книги ключ подтверждения для DID Steward , позвонив по телефону did.key_for_did .

     # Faber Agent
    faber ['steward_key_for_faber'] = await did.key_for_did (фабер ['пул'], фабер ['кошелек'], connection_request ['сделал'])
     
  11. Faber анонимно шифрует ответ на соединение, вызывая crypto.anon_crypt с веркей Steward . Схема анонимного шифрования предназначена для отправки сообщений Получателю, которому был предоставлен его открытый ключ. Только Получатель может расшифровать эти сообщения, используя свой закрытый ключ. Хотя Получатель может проверить целостность сообщения, он не может проверить личность Отправителя.

     # Faber Agent
    anoncrypted_connection_response = ждать crypto.anon_crypt (faber ['steward_key_for_faber'], connection_response.encode ('utf-8'))
     
  12. Faber отправляет анонимно зашифрованный ответ о соединении на Steward .

  13. Steward анонимно расшифровывает ответ о соединении, вызывая crypto.anon_decrypt .

     # Стюард Агент
    decrypted_connection_response = \
        (await crypto.anon_decrypt (steward ['кошелек'], steward ['key_for_faber'], anoncrypted_connection_response)). decode ("utf-8")
     
  14. Steward аутентифицирует Faber путем сравнения Nonce.

     # Стюард Агент
    assert connection_request ['nonce'] == decrypted_connection_response ['nonce']
     
  15. Стюард отправляет транзакцию NYM для DID Фабера в регистр.Обратите внимание, что, несмотря на то, что отправителем этой транзакции является Стюард, владельцем DID будет Faber, поскольку он использует verkey, предоставленный Faber.

     # Стюард Агент
    nym_request = await ledger.build_nym_request (стюард ['сделал'], decrypted_connection_response ['сделал'], decrypted_connection_response ['verkey'], нет, роль)
    await ledger.sign_and_submit_request (стюард ['пул'], стюард ['кошелек'], стюард ['сделал'], nym_request)
     

На этом этапе Faber подключен к Steward и может взаимодействовать безопасным одноранговым способом. Faber может доверять ответу от Steward , потому что:

  • он подключается к текущей конечной точке
  • без повтора — атака возможна из-за ее случайного вызова
  • он знает, что ключ проверки, используемый для проверки цифровой подписи Steward , является правильным, потому что он только что подтвердил его в бухгалтерской книге

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

Получение Вериным

Важно понимать, что ранее созданный Faber DID сам по себе не то же самое, что и суверенная идентичность. Этот DID должен использоваться только для безопасного взаимодействия с Steward . После установления соединения Faber должен создать новую запись DID, которую он будет использовать как Verinym в Ledger.

  1. Faber создает новый DID в своем кошельке, позвонив по номеру did.create_and_store_my_did .

     # Faber Agent
    (faber ['did'], faber ['key']) = await did.create_and_store_my_did (faber ['кошелек'], "{}")
     
  2. Faber подготавливает сообщение, которое будет содержать созданный DID и verkey.

     # Faber Agent
    faber ['did_info'] = json.dumps ({
        'сделал': фабер ['сделал'],
        'verkey': faber ['ключ']
    })
     
  3. Faber аутентифицирует и шифрует сообщение, вызывая функцию crypto.auth_crypt , которая является реализацией схемы аутентифицированного шифрования.Аутентифицированное шифрование предназначено для отправки конфиденциального сообщения специально для Получателя. Отправитель может вычислить общий секретный ключ, используя открытый ключ (verkey) Получателя и его секретный (подписывающий) ключ. Получатель может вычислить точно такой же общий секретный ключ, используя открытый ключ отправителя (verkey) и его секретный (подписывающий) ключ. Этот общий секретный ключ можно использовать для проверки того, что зашифрованное сообщение не было подделано, прежде чем в конечном итоге его расшифровать.

     # Faber Agent
    authcrypted_faber_did_info_json = \
        жду крипто.auth_crypt (faber ['кошелек'], faber ['key_for_steward'], faber ['steward_key_for_faber, faber [' did_info ']. encode (' utf-8 '))
     
  4. Faber отправляет зашифрованное сообщение на Steward .

  5. Стюард расшифровывает полученное сообщение, вызывая crypto.auth_decrypt .

     # Стюард Агент
    отправитель ['faber_key_for_steward'], authdecrypted_faber_did_info_json = \
        await crypto.auth_decrypt (стюард ['кошелек'], стюард ['key_for_faber'], authcrypted_faber_did_info_json)
    faber_did_info = json.загружает (authdecrypted_faber_did_info_json)
     
  6. Стюард запрашивает у бухгалтерской книги ключ подтверждения Faber’s DID, позвонив по телефону did.key_for_did .

     # Стюард Агент
    стюард ['faber_key_for_steward'] = await did.key_for_did (стюард ['пул'], стюард ['кошелек'], ['faber_did_for_steward'])
     
  7. Steward аутентифицирует Faber путем сравнения Verkey отправителя сообщения и Faber Verkey, полученного от главной книги.

     # Стюард Агент
    assert sender_verkey == steward ['faber_key_for_steward']
     
  8. Стюард отправляет соответствующую транзакцию NYM в бухгалтерскую книгу с ролью ДОВЕРИЙ ЯКОР . Обратите внимание, что, несмотря на то, что отправителем этой транзакции является Стюард, владельцем DID будет Faber, поскольку он использует Verkey, предоставленный Faber.

     # Стюард Агент
    nym_request = await ledger.build_nym_request (стюард ['сделал'], decrypted_faber_did_info_json ['сделал'],
                                                 decrypted_faber_did_info_json ['verkey'], None, 'TRUST_ANCHOR')
    Жду книги.sign_and_submit_request (стюард ['пул'], стюард ['кошелек'], стюард ['сделал'], nym_request)
     

На данный момент Faber имеет DID, связанный с его личностью в Главной книге.

Acme , Thrift Bank и Government должны пройти такое же установление соединения процесса адаптации с Steward .

Шаг 5. Настройка схем учетных данных

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

Примечание. Невозможно обновить существующую схему. Итак, если схему необходимо развить, необходимо создать новую схему с новой версией или именем.

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

Здесь Government создает и публикует Transcript Credential Schema для главной книги:

  1. Якорь доверия создает схему учетных данных , вызывая anoncreds.Issueer_create_schema , который возвращает сгенерированную схему учетных данных .

     # Правительственный агент
    transcript = {
        'name': 'Расшифровка',
        'версия': '1.2',
        'атрибуты': ['first_name', 'last_name', 'степень', 'статус', 'год', 'средний', 'ssn']
    }
    (правительство ['transcript_schema_id'], правительство ['transcript_schema']) = \
        await anoncreds.issuer_create_schema (правительство ['сделал'], стенограмма ['имя'], стенограмма ['версия'],
                                             json.дампы (расшифровка ['атрибуты']))
    transcript_schema_id = правительство ['transcript_schema_id']
     
  2. Якорь доверия отправляет соответствующую транзакцию схемы в регистр, последовательно вызывая ledger.build_schema_request для создания запроса схемы и ledger.sign_and_submit_request для отправки созданного запроса.

     # Правительственный агент
    schema_request = await ledger.build_schema_request (правительство ['сделал'], правительство ['transcript_schema'])
    Жду книги.sign_and_submit_request (правительство ['пул'], правительство ['кошелек'], правительство ['сделал'], schema_request)
     

Таким же образом Правительство создает и публикует Job-Certificate Credential Schema to the Ledger:

 # Правительственный агент
    job_certificate = {
        'name': 'Job-Certificate',
        'версия': '0.2',
        'атрибуты': ['first_name', 'last_name', 'salary', 'employee_status', 'experience']
    }
    (правительство ['job_certificate_schema_id'], правительство ['job_certificate_schema']) = \
        жду анонсов.Issue_create_schema (правительство ['сделал'], job_certificate ['name'], job_certificate ['version'],
                                             json.dumps (job_certificate ['атрибуты']))
    job_certificate_schema_id = правительство ['job_certificate_schema_id']
    
    schema_request = await ledger.build_schema_request (правительство ['сделал'], правительство ['job_certificate_schema'])
    await ledger.sign_and_submit_request (правительство ['пул'], правительство ['кошелек'], правительство ['сделал'], schema_request)
 

На данный момент у нас есть Transcript и Job-Certificate Credential Schemes, опубликованные Government в Главной книге.

Шаг 6. Настройка определения учетных данных

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

Примечание Невозможно обновить данные в существующем определении учетных данных. Таким образом, если CredDef нуждается в развитии (например, необходимо повернуть ключ), тогда необходимо создать новое определение учетных данных с помощью нового DID эмитента.

Определение учетных данных может быть создано и сохранено в книге с помощью любого якоря доверия .Здесь Faber создает и публикует определение учетных данных для известной Transcript Credential Schema для главной книги.

  1. Якорь доверия получает конкретную схему учетных данных из главной книги, последовательно вызывая ledger.build_get_schema_request для создания запроса GetSchema , ledger.sign_and_submit_request и отправив созданный запрос , чтобы отправить созданный запрос . parse_get_schema_response , чтобы получить схему в формате, требуемом API Anoncreds, из ответа GetSchema .

     # Faber Agent
    get_schema_request = ожидание реестра.build_get_schema_request (faber ['сделал'], transcript_schema_id)
    get_schema_response = ожидание реестра.submit_request (faber ['pool'], get_schema_request)
    faber ['transcript_schema_id'], faber ['transcript_schema'] = await ledger.parse_get_schema_response (get_schema_response)
     
  2. Якорь доверия создает определение учетных данных , связанное с полученной схемой учетных данных , путем вызова anoncreds.Issuer_create_and_store_credential_def , который возвращает сгенерированное общедоступное определение Credential Definition . Часть частного определения учетных данных для этой схемы учетных данных также будет храниться в кошельке, но ее невозможно прочитать напрямую.

     # Faber Agent
    transcript_cred_def = {
        'tag': 'TAG1',
        'тип': 'CL',
        'config': {"support_revocation": False}
    }
    (faber ['transcript_cred_def_id'], faber ['transcript_cred_def']) = \
        ждите anoncreds.issuer_create_and_store_credential_def (фабер ['кошелек'], фабер ['сделал'],
                                                               faber ['transcript_schema'], transcript_cred_def ['tag'],
                                                               transcript_cred_def ['тип'],
                                                               json.дампы (transcript_cred_def ['config']))
     
  3. Якорь доверия отправляет соответствующую транзакцию CredDef в Ledger, последовательно вызывая ledger.build_cred_def_request для создания запроса CredDef и ledger.sign_and_submit_request для отправки созданного запроса .

     # Faber Agent
    cred_def_request = ждать ledger.build_cred_def_request (фабер ['сделал'], фабер ['transcript_cred_def'])
    Жду книги.sign_and_submit_request (faber ['пул'], faber ['кошелек'], faber ['did'], cred_def_request)
     

Таким же образом Acme создает и публикует определение учетных данных для известной схемы учетных данных Job-Certificate в Главной книге.

 # Агент Acme
  get_schema_request = ожидание реестра.build_get_schema_request (acme ['did'], job_certificate_schema_id)
  get_schema_response = ожидание реестра.submit_request (acme ['pool'], get_schema_request)
  acme ['job_certificate_schema_id'], acme ['job_certificate_schema'] = журнал ожидания.parse_get_schema_response (get_schema_response)
    
  job_certificate_cred_def = {
      'tag': 'TAG1',
      'тип': 'CL',
      'config': {"support_revocation": False}
  }
  (acme ['job_certificate_cred_def_id'], acme ['job_certificate_cred_def']) = \
      ждите anoncreds.issuer_create_and_store_credential_def (acme ['кошелек'], acme ['сделал'],
                                                             acme ['job_certificate_schema'], job_certificate_cred_def ['tag'],
                                                             job_certificate_cred_def ['тип'],
                                                             json.дампы (job_certificate_cred_def ['config']))
  
  cred_def_request = ждать ledger.build_cred_def_request (acme ['сделал'], acme ['job_certificate_cred_def'])
  await ledger.sign_and_submit_request (acme ['пул'], acme ['кошелек'], acme ['сделал'], cred_def_request)
 

Acme ожидает отзыва учетных данных ** Job-Certificate *. Он решает создать реестр отзыва. Один из типов реестра отзыва Hyperledger Indy использует криптографические аккумуляторы для публикации отозванных учетных данных.Подробнее о внутренней работе этих аккумуляторов см. Здесь). Использование этих аккумуляторов требует публикации «хвостов действительности» вне главной книги. Для целей этой демонстрации хвосты действительности записываются в файл с использованием «хранилища BLOB-объектов».

 # Агент Acme
    acme ['tails_writer_config'] = json.dumps ({'base_dir': "/ tmp / indy_acme_tails", 'uri_pattern': ''})
    tails_writer = await blob_storage.open_writer ('по умолчанию', acme ['tails_writer_config'])
 

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

 # Агент Acme
    (acme ['revoc_reg_id'], acme ['revoc_reg_def'], acme ['revoc_reg_entry']) = \
        await anoncreds.issuer_create_and_store_revoc_reg (acme ['кошелек'], acme ['сделал'], 'CL_ACCUM', 'TAG1',
                                                          acme ['job_certificate_cred_def_id'],
                                                          json.dumps ({'max_cred_num': 5,
                                                                      'Issuance_type': 'ISSUANCE_ON_DEMAND'}),
                                                          tails_writer)

    acme ['revoc_reg_def_request'] = журнал ожидания.build_revoc_reg_def_request (acme ['сделал'], acme ['revoc_reg_def'])
    await ledger.sign_and_submit_request (acme ['пул'], acme ['кошелек'], acme ['did'], acme ['revoc_reg_def_request'])

    acme ['revoc_reg_entry_request'] = \
        await ledger.build_revoc_reg_entry_request (acme ['did'], acme ['revoc_reg_id'], 'CL_ACCUM',
                                                   acme ['revoc_reg_entry'])
    await ledger.sign_and_submit_request (acme ['пул'], acme ['кошелек'], acme ['did'], acme ['revoc_reg_entry_request'])
 

На данный момент у нас есть определение учетных данных (поддерживающее отзыв) для Job-Certificate Credential Schema, опубликованного Acme , и Credential Definition для Transcript Credential Schema, опубликованного Faber .

Алиса получает стенограмму

Учетные данные — это часть информации об идентичности — имя, возраст, кредитный рейтинг… Это информация, заявленная как истинная. В этом случае учетные данные называются «Транскрипт».

Учетные данные предлагает эмитент.

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

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

Как мы упоминали в Об Алисе, Алиса окончила Faber College . После того, как Faber College установил связь с Алисой, он создал для нее Предложение о выдаче сертификата Transcript Credential.

 # Faber Agent
  faber ['transcript_cred_offer'] = ждать анонсов.issueer_create_credential_offer (faber ['кошелек'], faber ['transcript_cred_def_id'])
 

Примечание. Все сообщения, отправляемые между участниками, зашифрованы с использованием схемы Authenticated-encryption .

Ценность этого сертификата Transcript Credential заключается в том, что оно выдано Faber College .

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

 # Алиса Агент
  get_schema_request = await ledger.build_get_schema_request (alice ['did_for_faber'], alice ['transcript_cred_offer'] ['schema_id'])
  get_schema_response = ожидание реестра.submit_request (alice ['pool'], get_schema_request)
  transcript_schema = ожидание реестра.parse_get_schema_response (get_schema_response)

  печать (transcript_schema ['данные'])
  # Схема стенограммы:
  {
      'name': 'Расшифровка',
      'версия': '1.2',
      'attr_names': ['first_name', 'last_name', 'степень', 'статус', 'год', 'средний', 'ssn']
  }
 

Однако Transcript Credential еще не доставлены Алисе в пригодной для использования форме.Алиса хочет использовать эти учетные данные. Чтобы получить его, Алиса должна запросить его, но сначала она должна создать Master Secret .

Примечание: Главный секрет — это элемент личных данных, который проверяет, чтобы гарантировать, что учетные данные однозначно применимы к ним. Главный секрет — это вход, который объединяет данные из нескольких Учетных данных, чтобы доказать, что Учетные данные имеют общий объект (Проверяющий). Главный секрет должен быть известен только испытателю.

Алиса создает Master Secret в своем кошельке.

 # Алиса Агент
  alice ['master_secret_id'] = await anoncreds.prover_create_master_secret (alice ['кошелек'], нет)
 

Алисе также необходимо получить определение учетных данных, соответствующее cred_def_id в Transcript Credential Offer.

 # Алиса Агент
  get_cred_def_request = await ledger.build_get_cred_def_request (alice ['did_for_faber'], alice ['transcript_cred_offer'] ['cred_def_id'])
  get_cred_def_response = ожидание реестра.submit_request (alice ['pool'], get_cred_def_request)
  alice ['transcript_cred_def'] = журнал ожидания.parse_get_cred_def_response (get_cred_def_response)
 

Теперь у Алисы есть все, чтобы создать запрос учетных данных для выдачи учетных данных Faber Transcript Credential.

 # Алиса Агент
    (alice ['transcript_cred_request'], alice ['transcript_cred_request_metadata']) = \
        await anoncreds.prover_create_credential_req (alice ['кошелек'], alice ['did_for_faber'], alice ['transcript_cred_offer'],
                                                     Алиса ['transcript_cred_def'], Алиса ['master_secret_id'])
 

Faber подготавливает как исходные, так и закодированные значения для каждого атрибута в схеме учетных данных Transcript . Faber создает Transcript Credential для Алисы.

 # Faber Agent
  # обратите внимание, что кодирование не стандартизировано в Indy, за исключением того, что 32-битные целые числа кодируются как сами по себе. ИС-786
  transcript_cred_values ​​= json.dumps ({
      "first_name": {"raw": "Alice", "encoded": "11394817164574886

217

8103335"}, "last_name": {"raw": "Garcia", "encoded": "53216427802417

587678

52"}, "степень": {"raw": "Бакалавр наук, маркетинг", "encoded": "12434523576212321"}, "status": {"raw": "окончено", "закодировано": "2213454313412354"}, "ssn": {"raw": "123-45-6789", "encoded": "3124141231422543541"}, "год": {"необработанный": "2015", "закодированный": "2015"}, "средний": {"необработанный": "5", "закодированный": "5"} }) faber ['transcript_cred_def'], _, _ = \ жду анонсов.issueer_create_credential (faber ['кошелек'], faber ['transcript_cred_offer'], faber ['transcript_cred_request'], transcript_cred_values, Нет, Нет)

Теперь выдается Transcript Credential. Алиса хранит его в бумажнике.

 # Алиса Агент
  await anoncreds.prover_store_credential (alice ['кошелек'], None, faber ['transcript_cred_request'], faber ['transcript_cred_request_metadata'],
                                          alice ['transcript_cred'], alice ['transcript_cred_def'], нет)
 

Алиса владеет им почти так же, как и физическую копию, присланную ей по почте.

Поступить на работу

Когда-нибудь в будущем Алиса захочет работать в вымышленной компании Acme Corp. Обычно она заходила на их веб-сайт, где щелкала гиперссылку, чтобы подать заявку на работу. Ее браузер загружал запрос на соединение, в котором открывалось ее приложение Indy; это вызовет запрос для Алисы с просьбой принять соединение с Acme Corp. Поскольку мы используем Indy-SDK, процесс отличается, но шаги те же. Процесс установления соединения такой же, как когда Фабер принимал запрос на соединение Стюарда.

После того, как Алиса установила связь с Acme, она получила Заявление о приеме на работу Proof Request. Запрос на подтверждение — это запрос, сделанный стороной, которая нуждается в проверяемом доказательстве наличия определенных атрибутов и решения предикатов, которые могут быть предоставлены другими проверенными учетными данными.

В этом случае Acme Corp просит Алису предоставить Заявление о приеме на работу . В заявлении о приеме на работу необходимо указать имя, степень, статус, SSN, а также соответствие условию о среднем балле или оценках.

В данном случае Заявление о приеме на работу Подтверждение запроса выглядит так:

 # Агент Acme
  acme ['job_application_proof_request'] = json.dumps ({
      'nonce': '1432422343242122312411212',
      'name': 'Заявление о приеме на работу',
      'версия': '0.1',
      'required_attributes': {
          'attr1_referent': {
              'имя': 'первое_имя'
          },
          'attr2_referent': {
              'Имя Фамилия'
          },
          'attr3_referent': {
              'имя': 'степень',
              'ограничения': [{'cred_def_id': faber ['transcript_cred_def_id']}]
          },
          'attr4_referent': {
              'имя': 'статус',
              'ограничения': [{'cred_def_id': faber ['transcript_cred_def_id']}]
          },
          'attr5_referent': {
              'имя': 'ssn',
              'ограничения': [{'cred_def_id': faber ['transcript_cred_def_id']}]
          },
          'attr6_referent': {
              'name': 'phone_number'
          }
      },
      'required_predicates': {
          'predicate1_referent': {
              'name': 'средний',
              'p_type': '> =',
              'p_value': 4,
              'ограничения': [{'cred_def_id': faber ['transcript_cred_def_id']}]
          }
      }
  })
 

Обратите внимание, что некоторые атрибуты поддаются проверке, а некоторые — нет.

В запросе на подтверждение указано, что SSN, степень и статус окончания в Credential должны быть официально подтверждены эмитентом и schema_key. Также обратите внимание, что first_name, last_name и phone_number необязательно проверять. Не отмечая эти учетные данные с проверяемым статусом, в запросе учетных данных Acme говорится, что он примет учетные данные Алисы о ее именах и телефонных номерах.

Чтобы показать Учетные данные, которые Алиса может использовать для создания Доказательства для Заявки на вакансию , Запрос Подтверждения Алиса вызывает анонс.Кирилл .

 # Алиса Агент
    creds_for_job_application_proof_request = json.loads (
        await anoncreds.prover_get_credentials_for_proof_req (alice ['кошелек'], alice ['job_application_proof_request']))
 

Алиса имеет только одно удостоверение, которое соответствует требованиям, предъявляемым к заявлению о приеме на работу .

 # Алиса Агент
  {
    'референт': 'Референт учетных данных стенограммы',
    'attrs': {
        'first_name': 'Алиса',
        'last_name': 'Гарсия',
        'status': 'окончил',
        «степень»: «Бакалавр наук, маркетинг»,
        'ssn': '123-45-6789',
        'год': '2015',
        'средний': '5'
    },
    'schema_id': job_certificate_schema_id,
    'cred_def_id': faber_transcript_cred_def_id,
    'rev_reg_id': нет,
    "cred_rev_id": нет
  }
 

Теперь Алиса может разделить эти атрибуты на три группы:

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

Для заявки на вакансию Proof Request Алиса разделила атрибуты следующим образом:

 # Алиса Агент
    Алиса ['job_application_requested_creds'] = json.свалки ({
        'self_attested_attributes': {
            'attr1_referent': 'Алиса',
            'attr2_referent': 'Гарсия',
            'attr6_referent': '123-45-6789'
        },
        'required_attributes': {
            'attr3_referent': {'cred_id': cred_for_attr3 ['referent'], 'показано': True},
            'attr4_referent': {'cred_id': cred_for_attr4 ['referent'], 'показано': True},
            'attr5_referent': {'cred_id': cred_for_attr5 ['referent'], 'показано': True},
        },
        'required_predicates': {'predicate1_referent': {'cred_id': cred_for_predicate1 ['referent']}}
    })
 

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

Теперь у Алисы есть все необходимое для создания Proof для Acme Job-Application Proof Request.

 # Алиса Агент
  Алиса ['apply_job_proof'] = \
        await anoncreds.prover_create_proof (alice ['кошелек'], alice ['job_application_proof_request'], alice ['job_application_requested_creds'],
                                            alice ['master_secret_id'], alice ['schemas'], alice ['cred_defs'], alice ['revoc_states'])
 

Когда Acme проверит полученное Proof, он увидит следующую структуру:

 # Агент Acme
  {
      'required_proof': {
          'opens_attrs': {
              'attr4_referent': {'sub_proof_index': 0, 'raw': 'Gradated', 'encoded': '2213454313412354'},
              'attr5_referent': ['sub_proof_index': 0, 'raw': '123-45-6789', 'encoded': '3124141231422543541'},
              'attr3_referent': ['sub_proof_index': 0, 'raw': 'Бакалавр наук, маркетинг', 'encoded': '12434523576212321'}
          },
          'self_attested_attrs': {
              'attr1_referent': 'Алиса',
              'attr2_referent': 'Гарсия',
              'attr6_referent': '123-45-6789'
          },
          'unrevealed_attrs': {},
          'predicates': {
              'predicate1_referent': {'sub_proof_index': 0}
          }
      },
      'proof': [] # Действительность Доказательство, которое Acme может проверить
      'идентификаторы': [# Идентификаторы учетных данных использовались для построения Доказательства
          {
            'schema_id': job_certificate_schema_id,
            'cred_def_id': faber_transcript_cred_def_id,
            'rev_reg_id': нет,
            'отметка времени': Нет
          }
      }
  }
 

Acme получил все запрошенные атрибуты.Теперь Acme хочет проверить подтверждение действительности. Для этого Acme сначала должна получить каждую схему учетных данных и соответствующее определение учетных данных для каждого идентификатора, представленного в доказательстве, точно так же, как это сделала Алиса. Теперь Acme имеет все, чтобы проверить Job-Application Proof от Алисы.

 # Агент Acme
 assert await anoncreds.verifier_verify_proof (acme ['job_application_proof_request'], acme ['apply_job_proof'],
                                              acme ['схемы'], acme ['cred_defs'], acme ['revoc_ref_defs'], acme ['revoc_regs'])
 

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

 # Агент Acme
  acme ['job_certificate_cred_offer'] = await anoncreds.issuer_create_credential_offer (acme ['кошелек'], acme ['job_certificate_cred_def_id'])
 

Когда Алиса проверяет свое соединение с Acme, она видит, что доступно новое предложение учетных данных.

Подать заявку на получение кредита

Теперь, когда у Алисы есть работа, она хотела бы подать заявку на ссуду. Для этого потребуется подтверждение занятости. Она может получить это в сертификате Job-Certificate , который предлагает Acme.Алиса проходит знакомую последовательность взаимодействий.

  1. Сначала она создает запрос учетных данных.
 # Агент Алисы
   (Алиса ['job_certificate_cred_request'], Алиса ['job_certificate_cred_request_metadata']) = \
       await anoncreds.prover_create_credential_req (alice ['кошелек'], alice ['did_for_acme'], alice ['job_certificate_cred_offer'],
                                                    Алиса ['acme_job_certificate_cred_def'], Алиса ['master_secret_id'])
 
  1. Acme выдает Job-Certificate Credential for Alice.
 # Агент Acme
 alice_job_certificate_cred_values_json = json.dumps ({
     "first_name": {"raw": "Alice", "encoded": "245712572474217942457235975012103335"},
     "last_name": {"raw": "Garcia", "encoded": "3126432184961946

153761283356127"}, "employee_status": {"raw": "Permanent", "encoded": "2143135425425143112321314321"}, "зарплата": {"сырые": "2400", "закодированные": "2400"}, "experience": {"raw": "10", "encoded": "10"} })

Одно из отличий от использования расшифровки стенограммы Фабером заключается в том, что Job-Certificate может быть отозван, а для создания учетных данных требуется идентификатор реестра отзыва, созданный ранее Acme , и дескриптор хранилища BLOB-объектов, содержащего действительность хвосты:

 # Агент Acme
    acme ['blob_storage_reader_cfg_handle'] = ждать blob_storage.open_reader ('по умолчанию', acme ['tails_writer_config'])
    acme ['job_certificate_cred'], acme ['job_certificate_cred_rev_id'], acme ['alice_cert_rev_reg_delta'] = \
        ждите anoncreds.issuer_create_credential (acme ['кошелек'], acme ['job_certificate_cred_offer'],
                                                 acme ['job_certificate_cred_request'],
                                                 acme ['job_certificate_cred_values'],
                                                 acme ['revoc_reg_id'],
                                                 acme ['blob_storage_reader_cfg_handle'])
 

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

 # Агент Acme
    acme ['revoc_reg_entry_req'] = \
        await ledger.build_revoc_reg_entry_request (acme ['did'], acme ['revoc_reg_id'], 'CL_ACCUM',
                                                   acme ['alice_cert_rev_reg_delta'])
    await ledger.sign_and_submit_request (acme ['пул'], acme ['кошелек'], acme ['did'], acme ['revoc_reg_entry_req'])
 

Когда Алиса получает свои учетные данные Job-Certificate от Acme , она должна запросить определение реестра отзыва из главной книги перед сохранением учетных данных.

 # Алиса Агент
    Алиса ['acme_revoc_reg_des_req'] = \
        ждать ledger.build_get_revoc_reg_def_request (alice ['did_for_acme'],
                                                     alice_job_certificate_cred ['rev_reg_id'])
    alice ['acme_revoc_reg_des_resp'] = ожидание реестра.submit_request (alice ['pool'], alice ['acme_revoc_reg_des_req'])
    (Алиса ['acme_revoc_reg_def_id'], Алиса ['acme_revoc_reg_def_json']) = \
        ожидание ledger.parse_get_revoc_reg_def_response (alice ['acme_revoc_reg_des_resp'])
 

Теперь сертификат работы Credential выдан, и теперь он находится в распоряжении Алисы.Алиса хранит Job-Certificate Credential в своем бумажнике.

 # Алиса Агент
  await anoncreds.prover_store_credential (alice ['кошелек'], None, alice ['job_certificate_cred_request_metadata'],
                                          Алиса ['job_certificate_cred'], Алиса ['acme_job_certificate_cred_def'], Алиса ['acme_revoc_reg_def_json'])
 

Она может использовать его при подаче заявления на ссуду почти так же, как она использовала стенограмму при приеме на работу.

Однако у этого подхода к совместному использованию данных есть недостаток — он может раскрыть больше данных, чем это строго необходимо.Если все, что нужно сделать Алисе, — это предоставить подтверждение работы, это можно сделать с помощью анонимных учетных данных. Анонимные учетные данные могут подтверждать определенные предикаты без раскрытия фактических значений (например, Алиса работает полный рабочий день, с зарплатой выше X, вместе с датой найма, но ее фактическая зарплата остается скрытой). Может быть создано составное доказательство, основанное на свидетельствах как Faber College, так и Acme Corp, которое раскрывает только то, что необходимо.

Алиса устанавливает соединение с Thrift Bank.

Алиса получает Loan-Application-Basic Proof Request от Thrift Bank, который выглядит так:

 # Комиссионный агент
  thrift ['apply_loan_proof_request'] = json.dumps ({
      'nonce': '123432421212',
      'name': 'Заявка на получение ссуды-Базовая',
      'версия': '0.1',
      'required_attributes': {
          'attr1_referent': {
              'имя': 'статус_работника',
              'ограничения': [{'cred_def_id': acme_job_certificate_cred_def_id}]
          }
      },
      'required_predicates': {
          'predicate1_referent': {
              'имя': 'зарплата',
              'p_type': '> =',
              'p_value': 2000,
              'ограничения': [{'cred_def_id': acme_job_certificate_cred_def_id}]
          },
          'predicate2_referent': {
              'имя': 'опыт',
              'p_type': '> =',
              'p_value': 1,
              'ограничения': [{'cred_def_id': acme_job_certificate_cred_def_id}]
          }
      },
      'non_revoked': {'to': int (время.время())}
  })
 

Последняя строка указывает на то, что предоставленный Job-Certificate не должен быть отозван к моменту подачи заявки.

Алиса имеет только одно удостоверение, которое отвечает требованиям подтверждения для этого запроса подтверждения Loan-Application-Basic Proof Request.

 # Алиса Агент
  {
      'референт': 'Референт с сертификатом о вакансии',
      'revoc_reg_seq_no': нет,
      'schema_id': job_certificate_schema_id,
      'cred_def_id': acme_job_certificate_cred_def_id,
      'attrs': {
          'employee_status': 'Постоянно',
          'last_name': 'Гарсия',
          'опыт': '10',
          'first_name': 'Алиса',
           'зарплата': '2400'
      }
  }
 

Для Loan-Application-Basic Proof Request Алиса разделила атрибуты следующим образом.Она может получить отметку времени действительности для каждого атрибута из состояний отзыва, запрошенных из главной книги:

 # Алиса Агент
  revoc_states_for_loan_app = json.loads (alice ['revoc_states_for_loan_app'])
        timestamp_for_attr1 = ждать get_timestamp_for_attribute (cred_for_attr1, revoc_states_for_loan_app)
        timestamp_for_predicate1 = ожидание get_timestamp_for_attribute (cred_for_predicate1, revoc_states_for_loan_app)
        timestamp_for_predicate2 = ожидание get_timestamp_for_attribute (cred_for_predicate2, revoc_states_for_loan_app)
        Алиса ['apply_loan_requested_creds'] = json.свалки ({
            'self_attested_attributes': {},
            'required_attributes': {
                'attr1_referent': {'cred_id': cred_for_attr1 ['referent'], 'показано': True, 'timestamp': timestamp_for_attr1}
            },
            'required_predicates': {
                'predicate1_referent': {'cred_id': cred_for_predicate1 ['referent'], 'timestamp': timestamp_for_predicate1},
                'predicate2_referent': {'cred_id': cred_for_predicate2 ['referent'], 'timestamp': timestamp_for_predicate2}
            }
        })
 

Алиса создает Proof для Loan-Application-Basic Proof Request.

 # Алиса Агент
  Алиса ['apply_loan_proof'] = \
            await anoncreds.prover_create_proof (alice ['кошелек'], alice ['apply_loan_proof_request'],
                                                Алиса ['apply_loan_requested_creds'], Алиса ['master_secret_id'],
                                                Алиса ['schemas_for_loan_app'], Алиса ['cred_defs_for_loan_app'],
                                                Алиса ['revoc_states_for_loan_app'])
 

Алиса отправляет в банк только подтверждение Loan-Application-Basic .Это позволяет ей минимизировать PII (личную информацию), которой она должна поделиться, когда все, что она пытается сделать прямо сейчас, — это доказать базовое право на участие.

Когда Thrift проверит полученное Proof, он увидит следующую структуру:

 # Комиссионный агент
  {
      'required_proof': {
          'opens_attrs': {
              'attr1_referent': {'sub_proof_index': 0, 'raw': 'Permanent', 'encoded': '2143135425425143112321314321'},
          },
          'self_attested_attrs': {},
          'unrevealed_attrs': {},
          'predicates': {
              'predicate1_referent': {'sub_proof_index': 0},
              'predicate2_referent': {'sub_proof_index': 0}
          }
      },
      'proof': [] # Действительность Доказательство того, что Thrift может проверить
      'идентификаторы': [# Идентификаторы учетных данных использовались для построения Доказательства
          'schema_id': acme ['job_certificate_schema_id'],
          'cred_def_id': acme ['job_certificate_cred_def_id'],
          'rev_reg_id': acme ['revoc_reg_id'],
          'timestamp': 1550503925 # Целочисленная временная метка
      ]
  }
 

Thrift Bank успешно проверил Loan-Application-Basic Proof от Алисы.

 # Комиссионный агент
  assert await anoncreds.verifier_verify_proof (thrift ['apply_loan_proof_request'],
                                                 бережливость ['alice_apply_loan_proof'],
                                                 бережливость ['schemas_for_loan_app'],
                                                 бережливость ['cred_defs_for_loan_app'],
                                                 бережливость ['revoc_defs_for_loan_app'],
                                                 экономия ['revoc_regs_for_loan_app'])
 

Thrift Bank отправляет второй запрос подтверждения, в котором Алиса должна передать свою личную информацию банку.

 # Комиссионный агент
  thrift ['apply_loan_kyc_proof_request'] = json.dumps ({
      'nonce': '123432421212',
      'name': 'Заявка на получение кредита-KYC',
      'версия': '0.1',
      'required_attributes': {
          'attr1_referent': {'name': 'first_name'},
          'attr2_referent': {'name': 'last_name'},
          'attr3_referent': {'имя': 'ssn'}
      },
      'required_predicates': {}
  })
 

Алиса имеет две учетные данные, которые соответствуют требованиям подтверждения для этого запроса-подтверждения Loan-Application-KYC Proof Request.

 # Алиса Агент
  {
    'референт': 'Референт учетных данных стенограммы',
    'schema_id': transcript_schema_id,
    'cred_def_id': faber_transcript_cred_def_id,
    'attrs': {
        'first_name': 'Алиса',
        'last_name': 'Гарсия',
        'status': 'окончил',
        «степень»: «Бакалавр наук, маркетинг»,
        'ssn': '123-45-6789',
        'год': '2015',
        'средний': '5'
    },
    'rev_reg_id': нет,
    "cred_rev_id": нет
  },
  {
      'референт': 'Референт с сертификатом о вакансии',
      'schema_key': job_certificate_schema_id,
      'cred_def_id': acme_job_certificate_cred_def_id,
      'attrs': {
          'employee_status': 'Постоянно',
          'last_name': 'Гарсия',
          'опыт': '10',
          'first_name': 'Алиса',
          'зарплата': '2400'
      },
      'rev_reg_id': нет,
      'revoc_reg_seq_no': нет
  }
 

Для Loan-Application-KYC Proof Request Алиса разделила атрибуты следующим образом:

 # Алиса Агент
  Алиса ['apply_loan_kyc_requested_creds'] = json.свалки ({
      'self_attested_attributes': {},
      'required_attributes': {
          'attr1_referent': {'cred_id': cred_for_attr1 ['referent'], 'показано': True},
          'attr2_referent': {'cred_id': cred_for_attr2 ['referent'], 'показано': True},
          'attr3_referent': {'cred_id': cred_for_attr3 ['referent'], 'показано': True}
      },
      'required_predicates': {}
  })
 

Алиса создает Proof для Loan-Application-KYC Proof Request.

 # Алиса Агент
  Алиса ['apply_loan_kyc_proof'] = \
      жду анонсов.prover_create_proof (alice ['кошелек'], alice ['apply_loan_kyc_proof_request'], alice ['apply_loan_kyc_requested_creds'],
                                          alice ['alice_master_secret_id'], alice ['schemas'], alice ['cred_defs'], alice ['revoc_states'])
 

Когда Thrift проверит полученное Proof, он увидит следующую структуру:

 # Комиссионный агент
  {
      'required_proof': {
          'раскрытые_атрибуты': {
              'attr1_referent': {'sub_proof_index': 0, 'raw': '123-45-6789', 'encoded': '3124141231422543541'},
              'attr1_referent': {'sub_proof_index': 1, 'raw': 'Alice', 'encoded': '245712572474217942457235975012103335'},
              'attr1_referent': {'sub_proof_index': 1, 'raw': 'Garcia', 'encoded': '3126432184961946

153761283356127'}, }, 'self_attested_attrs': {}, 'unrevealed_attrs': {}, 'предикаты': {} }, 'proof': [] # Действительность Доказательство того, что Thrift может проверить 'идентификаторы': [# Идентификаторы учетных данных использовались для построения Доказательства { 'schema_id': transcript_schema_id, 'cred_def_id': faber ['transcript_cred_def_id'], 'rev_reg_id': нет, 'отметка времени': Нет }, { 'schema_key': job_certificate_schema_id, 'cred_def_id': acme ['job_certificate_cred_def_id'], 'rev_reg_id': нет, 'отметка времени': Нет } ] }

Thrift Bank успешно проверил подтверждение заявки на ссуду KYC от Алисы.

 # Комиссионный агент
  assert await anoncreds.verifier_verify_proof (бережливость ['apply_loan_kyc_proof_request'], бережливость ['alice_apply_loan_kyc_proof'],
                                               бережливость ['схемы'], бережливость ['cred_defs'], бережливость ['revoc_defs'], бережливость ['revoc_regs'])
 

Оба доказательства Алисы были успешно проверены, и она получила ссуду в Thrift Bank .

Алиса увольняется с работы

Позже Алиса решает уволиться с работы, поэтому Acme аннулирует Job-Certificate credential:

 # Агент Acme
    жду анонсов.Issuer_revoke_credential (acme ['кошелек'],
                                             acme ['blob_storage_reader_cfg_handle'],
                                             acme ['revoc_reg_id'],
                                             acme ['job_certificate_cred_rev_id'])
 

Acme затем просто нужно опубликовать отзыв в бухгалтерской книге, позвонив по номерам ledger.build_revoc_reg_entry_request и ledger.sign_and_submit_request .

Если Алиса снова попытается подать заявку на ссуду ( Loan-Application-Basic ), проверка подтверждения не удастся.

Изучите код

Теперь, когда у вас была возможность увидеть, как реализация Libindy работает извне, возможно, вы хотели бы увидеть, как она работает внутри, из кода? Если да, запустите «Моделирование начала работы на Юпитере». Возможно, вам потребуется войти в GitHub, чтобы просмотреть эту ссылку. Также вы можете найти исходный код здесь

Если демонстрация выдает ошибку при выполнении проверки Руководство по устранению неполадок.

.

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

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