Javascript 关于Hyperledger结构的登录注册架构师

Javascript 关于Hyperledger结构的登录注册架构师,javascript,hyperledger-fabric,blockchain,hyperledger,Javascript,Hyperledger Fabric,Blockchain,Hyperledger,我在fabric ledger工作了一段时间,创建了一些基本的链码和RestApis。现在我想做一些关于用户登录和注册的事情。我的问题是 我是否在Fabcar中使用RegisterUser进行注册 我是否使用密码和电子邮件在用户的chaincode中创建对象,并使用chaincode实现所有逻辑和用户身份验证 如何在所有这些中使用注册用户。我是否只注册一名管理员和用户来执行链码命令?并在链码中实现所有逻辑 基本上,我想实现一些东西,比如与拥有自己注册和登录的客户进行买卖。那么,最好的方法是什么?

我在fabric ledger工作了一段时间,创建了一些基本的链码和RestApis。现在我想做一些关于用户登录和注册的事情。我的问题是

  • 我是否在Fabcar中使用RegisterUser进行注册
  • 我是否使用密码和电子邮件在用户的chaincode中创建对象,并使用chaincode实现所有逻辑和用户身份验证
  • 如何在所有这些中使用注册用户。我是否只注册一名管理员和用户来执行链码命令?并在链码中实现所有逻辑

  • 基本上,我想实现一些东西,比如与拥有自己注册和登录的客户进行买卖。那么,最好的方法是什么?使用链码和存储电子邮件,并使用链码在couchdb中传递所有信息传统的基于电子邮件和密码的登录系统有很多缺点。您可以在给定链接上获取有关这些缺点的详细信息:

    为了避免这种情况,Hyperledger结构中使用了公钥加密

    要注册用户,可以使用支持X.509证书的不同工具。到目前为止,Hyperledger结构的最佳解决方案是使用


    在公钥加密中不需要任何登录,对于链码中的访问控制,可以使用基于属性的访问控制或ABAC。目前,您可以将“github.com/hyperledger/fabric chaincode go/pkg/cid”包用于带有go chaincode的ABAC。

    传统的基于电子邮件和密码的登录系统有许多缺点。您可以在给定链接上获取有关这些缺点的详细信息:

    为了避免这种情况,Hyperledger结构中使用了公钥加密

    要注册用户,可以使用支持X.509证书的不同工具。到目前为止,Hyperledger结构的最佳解决方案是使用


    在公钥加密中不需要任何登录,对于链码中的访问控制,可以使用基于属性的访问控制或ABAC。目前,您可以将“github.com/hyperledger/fabric chaincode go/pkg/cid”包用于ABAC和go chaincode。

    为了注册可以调用链码的结构用户,证书颁发机构需要注册器,这是CA上的另一个现有用户。第一个注册器是在您启动CA时创建的。在向CA注册此第一个用户后,您现在可以充当注册器在CA上注册其他用户。新用户必须向CA注册,这是一个颁发证书(ID类型)和私钥的过程Fabric通过这些证书和私钥处理身份验证和授权


    但是,我认为您正在为您的应用程序寻找一种更“传统”的用户管理,如电子邮件和密码,我猜您的用例要求用户注册以调用您设计的链码。您建议的是(所有用户都使用CA颁发的相同身份进行交易)使使用区块链变得毫无意义,因为您基本上是将所有身份和交易集中在同一个组织和CA上。在这种情况下,我相信您必须重新考虑您的区块链协议选择,因为Hyperledger结构可能不是您特定用例的正确解决方案。

    为了注册结构用户如果您不能调用链码,证书颁发机构需要注册器,它是CA上的另一个现有用户。第一个注册器是在您启动CA时创建的。在向CA注册第一个用户后,您现在可以作为注册器在CA上注册其他用户。新用户将必须向CA注册,这是一个使用该用户的证书(一种ID)和私钥(一种签名)。Fabric通过这些证书和私钥处理身份验证和授权


    但是,我认为您正在为您的应用程序寻找一种更“传统”的用户管理,如电子邮件和密码,我猜您的用例要求用户注册以调用您设计的链码。您建议的是(所有用户都使用CA颁发的相同身份进行交易)使使用区块链变得毫无意义,因为您基本上将所有身份和交易集中在同一个组织和CA上。在这种情况下,我相信您必须重新考虑您的区块链协议选择,因为Hyperledger Fabric可能不是您特定用例的正确解决方案。

    以下答案可能会对您有所帮助来解决你的问题

    具有web界面的简单项目 与新版本2.0相关的简短视图
    以下答案可能会帮助您解决问题

    具有web界面的简单项目 与新版本2.0相关的简短视图

    我想做的是在注册用户时添加一个密码属性e,这样我就可以为我的用户设置一个密码。我使用jwt,这样如果pas匹配,条件可以为b,然后允许jwt。问题是证书存储在服务器上。将证书存储在服务器上的用途是什么,因为服务器的安全性可能会受到威胁,而外部人员可能会受到威胁很容易复制私钥和公钥,并像自己的私钥和公钥一样签署交易。但将证书存储在用户设备中也是不明智的,因为许多用户没有经验,他们可能会错误地删除证书和密钥。什么是生产级解决方案?我想做的是在注册用户时添加密码属性e,这样我就可以拥有一个密码我的用户。我使用jwt,因此如果pas匹配,条件可以b,然后允许jwt。问题是证书存储在服务器上。将证书存储在服务器上的用途是什么,因为服务器的安全性可能会受到损害,外部人员可以轻松复制私钥和公钥,并将事务作为自己的签名。但将证书存储在用户d中设备也是不明智的,因为许多用户没有经验,他们可能会错误地删除证书和密钥