16

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

例如,用户 A对使用 DApp 感兴趣,因此提供了他或她的电子邮件、姓名和头像。然后与 DApp 的任何后续交互,例如评论或帖子,都会将此用户链接到 IPFS 中的相应用户数据。

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

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

4

1 回答 1

17

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

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

请注意,对于大多数去中心化系统,很多操作都发生在客户端。

用户注册

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

用户验证

  • 用户访问网站
  • web3js 获取活跃的以太坊账户
  • 从用户合约中读取以查找关联的 IPFS 哈希
  • 从 IPFS 获取文件
  • 读取 JSON 对象
  • 从 JSON 中提取数据
  • 向用户显示数据
于 2017-03-01T22:20:17.780 回答