处理以太坊DApps中的用户配置文件

Don*_*lor 14 blockchain ethereum solidity ipfs

我正在创建一个以太坊DApp.DApp由具有关联数据的用户组成,例如电子邮件,姓名和个人资料图片.我想将用户的内容作为JSON对象存储在IPFS中,并使用IPFS哈希在链上引用它.我怎样才能将这些数据与特定用户相关联?从某种意义上说,后续与DApp的交互将用户与存储在IPFS中的数据联系起来.这是使用用户帐户哈希和某种密码完成的吗?

例如,用户A有兴趣使用DApp,因此,提供他或她的电子邮件,姓名和个人资料图片.然后,任何与DApp的后续交互,如评论或帖子,都会将此用户链接到IPFS中的相应用户数据.

对这种建模用户的方式的任何建议或调整将不胜感激.谢谢!

(PS我来自传统的网络/移动应用程序世界,所以我只是习惯于使用智能合约对事物进行建模.所以如果这是一个简单或结构不合理的问题,我会提前道歉.)

Sam*_*son 16

使用像以太坊这样的平台的一个好处就是你可以建立一个ZERO点击登录.如果我们确定用户web3.eth.accounts[0]是用户控制该帐户地址的私钥的证明,那么您将始终知道该用户是有效的.

如果你想像数据库一样使用IPFS,我建议的方法是:

请注意,对于大多数分散的系统,很多操作都发生在客户端.

用户注册

  • 用户拥有以太坊帐户.
  • 在注册时,用户数据被收集到JSON对象中
  • 创建一个文件,将JSON对象写入文件.
  • 将文件传递给IPFS
  • 获取文件哈希(基本上是它的IPFS位置)
  • 将IPFS哈希存储在以太坊合约中,该合约将用户的以太坊帐户与IPFS文件哈希相关联.

用户验证

  • 用户访问该网站
  • web3js获得活跃的以太坊帐户
  • 从用户合同中读取以查找关联的IPFS哈希
  • 从IPFS获取文件
  • 阅读JSON对象
  • 从JSON中提取数据
  • 向用户显示数据

  • 谢谢你们的好评!你澄清了我相当多的困惑.我将使用您的方法使用IPFS对此进行建模.我认为我无法理解的是用户被绑定到以太坊帐户的想法,可以通过特殊的DApp浏览器访问.因此,基本上为了让用户与任何DApp交互,他们需要在本地安装雾,这需要DApp作为客户端应用程序.或者,如果它将成为一个网站,他们将需要安装MetaMask,以便web3可用于检索他们的帐户. (2认同)