В чем разница между Hyperledger Indy-SDK и Libvcx? - PullRequest
2 голосов
/ 13 марта 2019

Я изучал среду разработки Hyperledger и хотел начать создавать приложение, чтобы начать, но я заметил, что есть SDK, который использует Libindy, но есть и Libvcx, который находится поверх Libindy, но я неЯ не знаю, какой из них использовать, так как они оба, кажется, делают то же самое.

1 Ответ

4 голосов
/ 09 апреля 2019

Как вы сказали, LibVCX построен поверх LibIndy.

LibIndy

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

Что Либинди не обрабатывает, так это обмен учетными данными. Если вы напишите бэкэнд, который выдает учетные данные, и мобильное приложение, которое может запрашивать и получать учетные данные с помощью Libindy, вам придется придумать некоторый протокол связи для этого. Это будет HTTP? ZMQ? Как вы собираетесь форматировать сообщения? Вот что LibVCX делает для вас. Вам также нужно будет найти решение, как вы будете безопасно доставлять сообщения и учетные данные с сервера на клиент, когда клиент находится в автономном режиме.

LibVCX

LibVCX оборачивает LibIndy и предоставляет абстракции, облегчающие работу разработчиков. Он также содержит протокол обмена учетными данными (VCX = Verifiable Credential (e) Xchange).

LibVCX был разработан с учетом асинхронности. LibVCX предполагает существование так называемого «Агентства» между двумя взаимодействующими сторонами - прокси, который реализует определенный протокол связи Indy, принимает и пересылает сообщения. Поэтому теперь ваш внутренний сервер может выдавать и отправлять учетные данные тому, с кем он общался несколько дней назад. Учетные данные будут надежно храниться в агентстве, и получатель может проверить, есть ли какие-либо новые сообщения / учетные данные, адресованные ему в агентстве.

Вы можете думать об агентстве как о почтовом сервере. Сообщение хранится там, и клиент может получить свои сообщения / учетные данные и расшифровать их локально.

LibVCX, как говорили, находился в «Экспериментальном» состоянии в течение довольно долгого времени, и базовый протокол все еще итерируется. Со временем спецификации от Indy HIPEs (улучшения проекта Indy Hyperledger)

Что использовать?

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

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

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

Остерегайтесь изменений в VCX - Libindy 2.0

Часть функциональности LibVCX планируется перенести в саму Libindy в Libindy 2.0. Цитировать README для IndySDK2.0 pull-запрос

Основная идея новой функциональности IndySDK - заменить часть VCX. библиотека. На данный момент VCX предоставляют мощные механизмы для обработки Выпуск учетных данных и обмен Exchange, но эта библиотека жестко закодирована FSM переходы состояний, транспортный поток и т. Д.

Итак, насколько я понимаю, LibIndy слишком специфично реализует протокол, и они хотят обобщить его и перенести некоторые его функции в саму Libindy. Я не совсем уверен, какова судьба в LibVCX.

...