В чем разница между Hyperledger Indy-SDK и Libvcx?
Я изучал интегрированную среду Hyperledger и хотел начать создавать приложение, чтобы начать, но я заметил, что есть SDK, который использует Libindy, но есть и Libvcx, который находится над Libindy, но я не знаю, какой один для использования, так как они оба, кажется, делают то же самое.
1 ответ
Как вы сказали, LibVCX построен поверх LibIndy.
LibIndy
Предоставляет низкоуровневый API для работы с учетными данными и доказательствами. Он предоставляет операции для создания запросов на создание учетных данных, учетных данных, доказательств. Он также предоставляет операции для связи с регистром Hyperldger Indy.
То, что Либинди не обрабатывает, является обменом полномочиями. Если вы напишите бэкэнд, который выдает учетные данные, и мобильное приложение, которое может запрашивать и получать учетные данные с помощью Libindy, вам придется придумать некоторый протокол связи для этого. Это будет HTTP? ZMQ? Как вы собираетесь форматировать сообщения? Вот что LibVCX делает для вас. Вам также нужно будет найти решение, как вы будете безопасно доставлять сообщения и учетные данные с сервера на клиент, когда клиент находится в автономном режиме.
LibVCX
LibVCX оборачивает LibIndy и предоставляет абстракции, чтобы разработчикам было легче работать. Он также содержит протокол обмена учетными данными (VCX = Verifiable Credential (e) Xchange).
LibVCX был разработан с учетом асинхронности. LibVCX предполагает существование так называемого "Агентства" между двумя взаимодействующими сторонами - прокси, который реализует определенный протокол связи Indy, принимает и пересылает сообщения. Поэтому теперь ваш внутренний сервер может выдавать и отправлять учетные данные тому, с кем он общался несколько дней назад. Учетные данные будут надежно храниться в агентстве, и получатель может проверить, есть ли какие-либо новые сообщения / учетные данные, адресованные ему в агентстве.
Вы можете думать об агентстве как о почтовом сервере. Сообщение хранится там, и клиент может получить свои сообщения / учетные данные и расшифровать их локально.
Было сказано, что LibVCX находится в "экспериментальном" состоянии в течение достаточно долгого времени, и базовый протокол все еще используется. Со временем спецификации от Indy HIPE ( Hyperledger Indy Project Enhancements)
Что использовать?
Я создал POC, используя оба, и я обычно рекомендую перейти на LibVCX, если у вас нет веских причин не делать этого.
Если вы хотите, как правило, поддерживать совместимость с другими инстанциями, кошельками и т. Д. LibVCX - это путь, потому что вам не нужно думать о том, как происходит обмен учетными данными. Это просто работает.
Если у вас есть конкретный, может быть, внутренний сценарий использования, протокол LibVCX и агентства слишком много накладных расходов без пользы для вашего варианта использования - возможно, вы можете упростить задачу с ванильным LibIndy.
Остерегайтесь изменений в VCX - Libindy 2.0
Часть функциональности LibVCX планируется перенести в саму Libindy в Libindy 2.0. Цитирование README для запроса извлечения IndySDK2.0
Основная идея новой функциональности IndySDK - заменить часть библиотеки VCX. На данный момент VCX предоставляет мощные механизмы для обработки выдачи учетных данных и потока Exchange, но эта библиотека жестко кодирует некоторые переходы состояний FSM, транспортный поток и т. Д.
Таким образом, насколько я понимаю, LibIndy реализует протокол слишком конкретно, и они хотят обобщить его и перенести некоторые его функции в саму Libindy. Я не совсем уверен, какова судьба на LibVCX.
Репозиторий indy-sdk - это программное обеспечение Indy, которое позволяет создавать компоненты (называемые агентами), которые могут взаимодействовать с реестром Indy и друг с другом.
В 2019 году на мероприятии "Connect-a-thon" в Юте, США, разработчики из различных организаций собрались, чтобы продемонстрировать совместимость с набором независимо разработанных реализаций агентов. В то время развилась еще одна идея, которая привела к созданию Hyperledger Aries. Что, если бы у нас были агенты, которые могли бы использовать DID и проверяемые учетные данные из нескольких экосистем? Aries - это набор инструментов, разработанный для инициатив и решений, направленных на создание, передачу, хранение и использование проверяемых цифровых учетных данных. В его основе лежат протоколы, обеспечивающие связь между агентами с использованием безопасного обмена сообщениями для обмена информацией.
Libvcx - это вызываемая c-библиотека библиотека, построенная на основе libindy, которая обеспечивает протокол обмена учетными данными высокого уровня. Это упрощает создание приложений-агентов и обеспечивает лучшую совместимость агента-2-агента для инфраструктуры Hyperledger Indy. Вам понадобится LibVCX, если вы хотите взаимодействовать с другими приложениями и агентами для обмена учетными данными, другими словами, если вы хотите соблюдать протокол Aries. В этом случае LibVCX Agency может использоваться с агентством-посредником, которое обеспечивает асинхронную связь между двумя сторонами.