以太坊常见问题和错误

正在构建的一个Dapp。Dapp包括一些用户数据,如电子邮件、姓名和个人图片等。我想将用户数据内容存储在IPFS中,通过一个JSON对象,并用IPFS hash处理过。我怎样才能把这个数据和一个特定的用户联系起来呢?也就是说在与DAPP的交互时将用户与IPF中存储的数据关联起来。要使用用户密码和某种类型的密码来完成的吗?

例如,用户A对使用dapp感兴趣,然后提供了他或她的电子邮件、姓名和一些个人图片。在与DApp的任何后续交互(如评论或帖子)都会将该用户和IPFS中相应的用户数据相关联。不知道该怎么做。

dapp和ipfs数据关联说明

使用像以太坊这种区块链平台的一个优势是可以构建一个零点击登录。如果我们用web3.eth.accounts[0]确认下就可以证明用户控制该帐户的地址的私钥是否有效。

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

请注意,在大多数去中心化的系统中,客户端会发生很多动作。

用户注册

  • 用户有以太坊账户。
  • 注册用户数据被收集到JSON对象中
  • 创建一个文件,将JSON对象写入文件
  • 传递文件到IPFS
  • 获取文件哈希值(基本上是它的IPFS的地址)
  • 将IPFS的hash值存储在一个以太坊智能合约中,它将用户的以太坊帐户与IPFS文件哈希值关联起来。

用户验证

  • 用户访问网站
  • web3js得到用户的有效帐户
  • 从用户的智能合约中读取,查找相关的IPFS哈希值
  • 从IPFS获取文件
  • 读取JSON对象
  • 从JSON中提取数据
  • 向用户显示数据