#javascript #hyperledger-fabric #blockchain #hyperledger
#javascript #hyperledger-fabric #блокчейн #hyperledger
Вопрос:
Я некоторое время работал в fabric ledger и создал некоторый базовый код цепочки и перезаписи. Теперь я хочу что-то сделать с входом в систему и регистрацией пользователей. Мои запросы
- Реализовываю ли я регистрацию с помощью registerUser, как в Fabcar
- Должен ли я создавать объекты в цепном коде пользователей с паролем и электронной почтой и реализовывать всю логику и аутентификацию пользователя с помощью цепного кода.
- Как мне использовать Enroll User во всем этом. Должен ли я регистрировать только одного администратора и пользователя для выполнения команд chaincode? и реализовать всю логику в цепном коде?
В принципе, я хочу реализовать что-то вроде покупки и продажи с клиентами, имеющими собственную регистрацию и логин. Итак, каков наилучший подход? Используйте цепной код и сохраняйте электронную почту и передавайте все в couchdb с помощью цепного кода
Ответ №1:
Следующий ответ может помочь вам решить вашу проблему
Простой проект с веб-интерфейсом https://github.com/touqeerShah/Hyperledger_fabric_2.0_Bank_simple краткий обзор, связанный с новой версией 2.0 https://medium.com/@touqeershah32/hyperledger-fabric-2-0-bank-simple-e8d4c72acafc
Ответ №2:
Для регистрации пользователей Fabric, которые могут вызывать цепной код, Центру сертификации требуется регистратор, который является другим существующим пользователем в CA. Первый регистратор создается при запуске CA. После регистрации этого первого пользователя в Центре сертификации теперь вы можете выступать в качестве регистратора для регистрации других пользователей в центре сертификации. Новые пользователи должны будут зарегистрироваться в CA, процессе, который выдает сертификат (вид идентификатора) и закрытый ключ (вид подписи) этого пользователя. Fabric обрабатывает аутентификацию и авторизацию с помощью этих сертификатов и закрытых ключей.
Тем не менее, я думаю, вы ищете более «традиционное» управление пользователями для вашего приложения, такое как электронная почта и пароль, и я предполагаю, что ваш вариант использования требует, чтобы пользователи регистрировались для вызова разработанного вами цепного кода. То, что вы предложили (все пользователи совершают транзакции под одним и тем же удостоверением, выданным центром сертификации), делает использование блокчейна бессмысленным, потому что вы в основном централизуете все удостоверения и транзакции в одной организации и центре сертификации. В этом случае, я полагаю, вам придется пересмотреть свой выбор протокола блокчейна, поскольку Hyperledger Fabric может оказаться неподходящим решением для вашего конкретного варианта использования.
Комментарии:
1. Что я думаю сделать, так это добавить атрибут пароля e при регистрации пользователя, чтобы у меня мог быть пароль моего пользователя. Я использую jwt, поэтому условие может быть, если pas совпадает, тогда разрешить jwt . Проблема в том, что сертификат хранится на сервере. Какой смысл хранить сертификат на сервере, поскольку безопасность сервера может быть скомпрометирована, и посторонний может легко скопировать закрытый и открытый ключи и подписывать транзакции как свои собственные. Но хранить сертификаты на пользовательском устройстве также неразумно, поскольку многие пользователи не имеют опыта и могут удалить сертификат и ключи по ошибке. Что такое решение производственного уровня
Ответ №3:
Традиционные системы входа на основе электронной почты и пароля имеют множество недостатков. Вы можете получить подробную информацию об этих недостатках по данной ссылке:
Чтобы избавиться от этой ситуации, в Hyperledger Fabric используется криптография с открытым ключом.
Чтобы зарегистрировать пользователя, вы можете использовать различные инструменты, которые поддерживают сертификат X.509. На данный момент лучшим решением для Hyperledger Fabric является использование Fabric Ca.
Вам не нужен никакой логин в криптографии с открытым ключом, для управления доступом в chaincode вы можете использовать управление доступом на основе атрибутов или ABAC. В настоящее время вы можете использовать «github.com/hyperledger/fabric-chaincode-go/pkg/cid » пакеты для ABAC с цепным кодом go.