以太坊DApp如何用IPFS存储并调用数据

简介: 正在构建的一个Dapp。Dapp包括一些用户数据,如电子邮件、姓名和个人图片等。我想将用户数据内容存储在IPFS中,通过一个JSON对象,并用IPFS hash处理过。

正在构建的一个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中提取数据
  • 向用户显示数据

原文:http://cw.hubwiz.com/card/c/ethereum-FAQ/1/1/4/

另外推荐一些之前的教程:

  • python以太坊,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。
  • web3j,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
  • 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。
相关文章
|
存储 前端开发 编译器
智能合约与DApp的关系与区别
以太坊社区把基于智能合约的应用称为去中心化的应用程序(Decentralized App,简称DApp)。
智能合约与DApp的关系与区别
|
区块链 数据安全/隐私保护 UED
DAPP三三复制合约系统开发指南与方案
而未来,Web 3.0是一个由用户和建设者拥有的互联网
|
存储 安全 架构师
区块链101:Ethereum如何扩展
区块链101:Ethereum如何扩展
|
前端开发 算法 Go
新版以太坊Ethereum库ethersV5.0配合后端Golang1.18实时链接区块链钱包(Metamask/Okc)以及验签操作
区块链去中心化思想无处不在,比如最近使用个体抗原自检替代大规模的中心化核酸检测,就是去中心化思想的落地实践,避免了大规模聚集导致的交叉感染,提高了检测效率,本次我们使用Ethereum最新的ethersV5.0以上版本链接去中心化区块链钱包,并且通过后端Golang1.18服务进行验签。
新版以太坊Ethereum库ethersV5.0配合后端Golang1.18实时链接区块链钱包(Metamask/Okc)以及验签操作
|
人工智能 算法 区块链
DAPP智能合约去中心化开发(稳定版)丨DAPP智能合约去中心化系统开发(详情及逻辑)丨DAPP智能合约去中心源码系统
  人工智能(Artificial Intelligence,简称AI)是指计算机系统在完成类似人类智力所需的任务时所表现出来的能力。它是一种复杂的技术,通过将大量的数据输入到算法中进行学习,不断调整和改进自己的算法,从而不断优化其性能。
|
JavaScript 前端开发 IDE
合约链上DAPP模式系统开发技术原理(成熟分析)智能合约伪DAPP的开发技术逻辑是怎样
合约链上DAPP模式系统开发技术原理(成熟分析)智能合约伪DAPP的开发技术逻辑是怎样
113 0
|
JSON Ubuntu 区块链
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
503 0
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
BC之SC:区块链之智能合约——与传统合约的比较以及智能合约模型部署原理、运行原理相关配图(二)
BC之SC:区块链之智能合约——与传统合约的比较以及智能合约模型部署原理、运行原理相关配图
BC之SC:区块链之智能合约——与传统合约的比较以及智能合约模型部署原理、运行原理相关配图(二)
|
Rust JavaScript 前端开发
区块链开发(八)以太坊不同语言客户端地址
区块链开发(八)以太坊不同语言客户端地址
131 0
|
区块链 算法 开发者
带你读《深入理解以太坊》之一:以太坊概述
这是一本从原理和实践两个层面系统、深入讲解以太坊技术的专著,从设计理念、技术架构、共识算法、智能合约、以太坊虚拟机、开发工具、DApp开发、企业以太坊解决方案、跨链技术等近10个方面进行了详细讲解,既适合初学者系统学习以太坊的原理和应用开发,又适合有一定基础的开发者深入掌握以太坊的底层运行机制。