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

时间:2017-02-28 22:38:55

标签: blockchain ethereum solidity ipfs

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

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

对这种建模用户方式的任何建议或调整都将非常感激。谢谢!

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

1 个答案:

答案 0 :(得分:14)

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

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

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

用户注册

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

用户验证

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