【问题标题】:Handling user profiles in Ethereum DApps处理以太坊 DApp 中的用户资料
【发布时间】:2017-07-20 02:12:40
【问题描述】:

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

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

如果对这种用户建模方式提出任何建议或调整,我们将不胜感激。谢谢!

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

【问题讨论】:

    标签: blockchain ethereum solidity ipfs


    【解决方案1】:

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

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

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

    用户注册

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

    用户验证

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

    【讨论】:

    • 感谢您的好评!你澄清了我相当多的困惑。我将通过您的方法使用 IPFS 对此进行建模。我想我不能完全理解的是用户被绑定到一个可以通过一个特殊的 DApp 浏览器访问的以太坊帐户的想法。因此,本质上,为了让用户与任何 DApp 交互,他们需要在本地安装雾,这需要 DApp 成为客户端应用程序。或者,如果它是一个网站,他们需要安装 MetaMask,以便可以使用 web3 来检索他们的帐户。
    • 一流的响应我不知道这是如何工作的谢谢!!
    • 是否有可能恶意用户注入他自己的假对象 web3(使用浏览器中的 javascript 控制台)并将帐户 [0] 地址设置为其他人的地址,并欺骗“零点击登录”系统来访问这样的 DApp?明明他不能交易,但说不定还能看到平时看不到的东西?
    猜你喜欢
    • 2019-05-25
    • 2019-03-21
    • 1970-01-01
    • 2022-11-16
    • 2020-11-03
    • 2019-11-19
    • 2016-02-28
    • 2018-12-16
    • 2021-11-19
    相关资源
    最近更新 更多