构建一个简单的以太坊+IPFS+React.js去中心化应用DApp

构建一个简单的以太坊+IPFS+React.js DApp 我们为什么要构建这个?在以太坊区块链上存储大量数据是非常昂贵的。根据以太坊的黄皮书,它是大约20,0000gas,256bit/8字节(1字)。基于02/28/2018 gas价格为4gwei/gas。请参阅:https://ethgasstation.info了解当前价格。 每个交易8个字节20,000gas*4gwei/gas=80,000gwei。 ... 阅读详情

我们为什么要构建这个?在以太坊区块链上存储大量数据是非常昂贵的。根据以太坊的黄皮书,它是大约20,0000gas,256bit/8字节(1字)。基于02/28/2018 gas价格为4gwei/gas。请参阅:https://ethgasstation.info了解当前价格。

每个交易8个字节20,000gas*4gwei/gas=80,000gwei。

8,000字节80,000gwei*1000bytes/8=10,000,000gwei/kB=0.01`以太。

0.01以太/kB*1000kB=10以太存储1Mb,价格为860美元/以太=8600.00美元!在以太坊区块链上存储1GB文件需要花费8,600,000.00美元!

存储以太坊的38页PDF黄皮书(520Kb)=4472美元。请参阅: http://eth-converter.com/进行转换计算。

如果我们只能在区块链上存储几Kb的数据,那么我们仍然需要依靠集中式服务器来存储数据。值得庆幸的是,可以使用称为InterPlanetary files system 星际文件系统IPFS的去中心化网络上存储数据的解决方案。请参阅:https://ipfs.io/了解更多信息。在IPFS中查找文件时,你要求网络查找将内容存储在唯一哈希后面的节点。来自IPFS自己的网站:

“IPFS和Blockchain完美匹配!你可以使用IPFS处理大量数据,并将不可变的永久IPFS链接放入区块链交易中。这个时间戳和保护你的内容,而不必将数据放在链本身上。“

我们构建什么?

一个简单的DApp,用于将文档上载到IPFS,然后将IPFS哈希存储在以太坊区块链上。一旦IPFS哈希号被发送到以太坊区块链,用户将收到交易收据。我们将使用Create-React-App框架来构建前端。此Dapp适用于在浏览器中安装了MetaMask的任何用户。

这就是我们完成后DApp的样子:

如何建立它:

注意:如果你只是想要代码,请参阅我的github。

在我们开始之前,这些是我做出的假设:

  • 关于用户的假设:用户安装了Metamask以与DApp交互。
  • 关于你/开发人员的假设:你对JavaScript、React.js以及Node.js/NPM有一定的了解。重要说明:请确保你运行当前版本的Node和NPM。对于本教程,我正在运行:node v8.9.4和NPM 5.6.0。
  • 安装MetaMask。如果尚未安装MetaMask,请访问https://metamask.io/并按照说明操作。此DApp将假定用户已安装MetaMask。
  • 创建一个目录来存储我们的DApp。对于本教程,我将其称为eth-ipfs。
  • 使用NPM安装Create-React-App和其他依赖项。使用NPM并安装以下内容:
npm i create-react-app
npm install react-bootstrap
npm install fs-extra
npm install ipfs-api
npm install web3@^1.0.0-beta.26

输入eth-ipfs目录,键入npm start ,Create-React-App应自动在http://localhost:3000/上呈现。

注意:如果你到目前为止尚未使用create-react-app,则可能必须先在全局安装它

    1. sudo npm install -g create-react-app或者npm install -g create-react-app
    1. create-react-app eth-ipfs
    1. cd进入eth-ipfs然后运行npm start

在Rinkeby testnet上使用Remix部署以下Solidity代码。请参阅https://remix.ethereum.org。你需要一些Rinkeby测试以太,如果你还没有Rinkeby faucet的一些免费测试以太话。https://www.rinkeby.io/#faucet。

pragma solidity ^0.4.17;
contract Contract {
 string ipfsHash;
 
 function sendHash(string x) public {
   ipfsHash = x;
 }

 f
以太坊DApp如何用IPFS存储并调用数据 正在构建的一个Dapp。Dapp包括一些用户数据,如电子邮件、姓名和个人图片等。我想将用户数据内容存储在IPFS中,通过一个JSON对象,并用IPFS hash处理过。我怎样才能把这个数据和一个特定的用户联系起来呢?也就是说在与DAPP的交互时将用户与IPF中存储的数据关联起来。要使用用户密码和某种类型的密码来完成的吗? 例如,用户A对使用dapp感兴趣,然后提供了他或她的电子邮件、姓名和一些个... 阅读详情

相关推荐

基于IPFS去中心化相册以太坊Dapp

Dapp-IPFS-Image 基于IPFS去中心化相册以太坊Dapp 注意: 使用该 github 克隆到本地, 需要 执行 $ npm install 安装依赖 node_modules 安装IPFS 官网(访问不了时,需要科学上网) https://ipfs.io 下载 解压缩 $ tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz $ cd go-ipfs $ mv ipfs /usr/local/bin/ipfs 创建IPFS节点 $ ipfs init $

464

开发 dApp 的三个步骤

去中心化应用,或者叫dApp,是一种不依赖于中心化服务器的应用。在这个技术教程中,你会学习到怎样开发一个end-to-end的dApp。

ChainlinkO的博客 2115

去中心化应用(DApp)开发全流程与案例展示

在实际开发过程中,借鉴知名 DApp 的经验,结合区块链的优势和前沿技术,能够帮助我们更好地应对复杂的应用场景,提升 DApp 的表现和用户体验。:智能合约是 DApp 的后端逻辑,部署在区块链网络上。由于区块链的存储空间有限,因此很多 DApp 会使用 IPFS 存储大文件(如图片、视频等),并将文件的哈希值存储在区块链上,确保文件的不可篡改性。本文将介绍 DApp 的开发流程,探讨前端与后端的技术选型,讲解如何设计与区块链交互的接口,并通过知名 DApp 案例的解析,为开发者提供经验借鉴。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1190

基于以太坊与IPFS的ReactJS图像上传系统实战项目

if (!},},使用示例:// 在上传组件中// 在预览组件中监听}, []);替代方案:优先使用实现集中式事件分发。Solidity 中的struct类型允许我们封装复杂的数据对象,适用于表示一条完整的图像上传记录。该结构应包含以下关键字段::图像在 IPFS 网络中的唯一内容标识符(CID),用于后续检索。:调用合约并提交哈希的以太坊账户地址。:区块时间戳,标记上传发生的时间。:标志位,用于支持未来可能的内容撤销或失效机制。

weixin_28746213的博客 826

IPFS+以太坊:从零构建去中心化文件存储DApp完整实战

分布式存储技术正逐步改变传统文件共享模式,IPFS作为内容寻址的P2P网络,可将文件以唯一CID标识存入全球节点,避免中心化平台链接失效与数据控制风险。然而IPFS自身缺乏账号体系与归属记录,需要结合智能合约构建不可篡改的索引层。通过Solidity定义文件结构体并记录上传者、时间与CID,再借助Web3.js连接MetaMask钱包,实现浏览器端直接调用链上合约,同时以React构建交互界面,即可形成一套完整的去中心化文件存储DApp。这种架构将内容存储与链上记账分离,既规避高昂的链上存储成本,又保留区块

weixin_32943857的博客 320

基于IPFS和以太坊的去中心化文件存储DApp实战

去中心化存储是区块链技术在数据管理领域的重要应用,通过将文件分散存储在多个节点,避免单点故障和中心化服务器的信任依赖。IPFS作为核心的内容寻址协议,利用哈希算法生成CID,实现文件去重与防篡改;以太坊智能合约则负责记录文件元数据和所有权,构成低成本的链上公证层。该组合兼顾数据可验证性与用户自主控制权,广泛适用于私有网盘、数据确权、全栈DApp开发等场景。围绕IPFS与以太坊,完整拆解了去中心化文件存储平台的架构设计、合约部署、前端交互及常见问题避坑指南,为开发者提供扎实的工程实践参考。

weixin_34050519的博客 372

基于以太坊与IPFS的去中心化文件存储DApp全栈实战

去中心化存储通过内容寻址与链上索引,解决传统中心化服务的单点故障与信任问题。其原理是将文件存入IPFS生成CID,再将CID与权限写入智能合约,实现数据不可篡改与所有权自主。技术价值在于前端工程师可借此打通Web3全栈链路,理解Gas优化与事件驱动。典型应用包括去中心化网盘、NFT元数据存储。本文以Dropbox克隆为例,详解Solidity合约、Web3.js与React的整合及避坑指南。

weixin_31130435的博客 240

IPFS+以太坊构建去中心化存储:Web3.js与React实战

去中心化存储将文件所有权从平台交还给用户,核心在于把存储与登记分离。IPFS作为内容寻址系统,通过Merkle DAG为文件生成唯一CID,负责内容存放与去重;以太坊智能合约则记录文件名、CID、上传者等元数据,利用区块链不可篡改特性提供可审计的登记层。Web3.js作为浏览器与链上合约的桥梁,让React前端能够无缝调用Solidity接口。这种架构不仅解决了传统网盘的数据归属与信任问题,还能实现可验证的哈希链路。在工程实践中,开发者需处理IPFS节点pin、gas估算、网络切换等关键细节。本文以一个Dr

weixin_29007135的博客 227

用 React+Solidity+IPFS 搭建去中心化文件共享 DApp

在 Web3 技术体系中,去中心化存储与智能合约的协同一直是 DApp 开发的核心命题。IPFS 通过内容寻址机制为文件提供分布式存储能力,每个文件经哈希计算生成唯一 CID,实现内容与位置解耦;Solidity 智能合约则在链上维护索引与权限映射,解决文件归属与访问控制问题。两者结合,让文件共享不再依赖单一平台的数据库,权限可审计、可撤销。这套架构适用于去中心化网盘、团队协作文件共享、NFT 元数据管理等场景,也是理解 DApp 链上链下分工的典型范例。从 React 前端到 Web3.js 的合约交互,

weixin_29504571的博客 201

Opus - 基于以太坊区块链和 IPFS 文件系统的去中心化音乐发行

Abstract. Opus 是一个去中心化的音乐分享平台,可以在基础结构和协议 层面上解决音乐的所有权和分享问题。利用一个新型星际文件系统 IPFS 的速度和冗余,Opus 能够在完全去中心化的环境下能够每秒传送数千条 音轨。这样的吞吐率是通过同时加密音乐并将加密过的音乐文件永久存储 在 IPFS 群中实现的,这种方式使得整个过程变得经济而弹性。

dapp-react-metamask:MetaMask react组件可快速进行dapp开发

dapp-react-metamask MetaMask react组件可快速进行dapp开发 用法 import Metamask from "dapp-react-metamask" <Metamask xss=removed>{ console.log("metamask state update:",state) }} /> 配置 <Metamask config={{ DEBUG:false, POLLINTERVAL:377, showBalance:true, hideNetworks:[ "Mainnet" ], accountCutoff:10, outerBoxStyle:{ float:'right' }, ETHPRECISION:10

ipfs-image-dapp:具有React的去中心化应用程序(dApp),演示了如何实现IPFS文件上传并将IPFS哈希存储在以太坊智能合约中

ipfs-image-dapp 总览 IPFS和区块链是完美的匹配。 为什么? 您可以使用IPFS处理大量数据,并将不可变的永久IPFS链接放入区块链交易中。 这将为您的内容加上时间戳和安全性,而不必将数据放在链本身上。 现在,您有无可争议的证据证明图像在上载时存在。 这个项目是一个使用React,Redux,React Router和Bootstrap的以太坊去中心化应用程序(dApp)。 它演示了如何实现IPFS文件上传并将IPFS哈希存储在区块链上。 用法 主页 在此应用程序中,主页显示按所有者(即MetaMask帐户)过滤的图像卡列表。 每个图像卡都显示图像,标题,描述,标签,上载时

绕过Google Play:获取Expo Go安卓APK的实用指南

本文为国内安卓开发者提供了绕过Google Play商店获取Expo Go APK的实用指南。针对无法访问Google Play的痛点,详细介绍了通过官方GitHub Releases、可信第三方网站(如APKMirror)及APK下载器等多种安全获取途径,并重点讲解了APK安装、安全验证(核对签名)及常见连接问题的排查方法,帮助开发者顺利开启React Native开发之旅。

weixin_29006701的博客 577

Oracle-OGG trail 文件大小引起的进程异常 OGG-01172

监控OGG目标端进程,其中一个进程异常,状态为 ABENDED,start repa 执行失败。进入OGG报告目录检查运行报告 2015-04-20 09:38:36 ERROR OGG-01172 Discard file (/ogg/oggrm/11.2/dirdat/repa.dsc) exceeded max bytes (2000000000). 总结处理方法,从根本上解决问题。

xdyzgjy的专栏 7955

【人工智能】架构师必读:大模型时代的意图识别 (Intent Recognition) 四大技术流派与实践指南

意图识别没有“银弹”,选择哪种方案取决于具体的业务需求、数据积累以及成本预算。如果追求极简与低成本,BERT 是不二之选。如果业务极其复杂且依赖上下文,RAG 或 Agent 模式更合适。如果追求极致的稳定与效果,基于 LLM 的微调 + Function Calling 是目前的行业最佳实践。参考资源:基于 LLM 的意图识别解决方案(Embedding 相关课程章节)

奶爸的编程之路,也就一周冷个三天 700

Freeswitch DTMF 按键无法接收问题修复

freeswitch 在接收到 update后,会更新成新的 payload type,但是给的200响应,仍然是旧的,这时候就会导致手机侧认识需要发送旧的payload,所以发到 fs 后就会导致直接丢包,不去处理RTP包了。呼叫时需要设置通道变量 rtp_manual_rtp_bugs=ACCEPT_ANY_PAYLOAD ,这时候FS 就不会对包的payload进行判断,直接判定通过。应该修复 freeswitch 给响应时,应该根据收到的 payload 发送给手机,但是一直未找到正确的路径。

2301_81507069的博客 373

cuRobo 入门教程(一)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供运动学计算、碰撞检测、轨迹优化等功能。该库采用并行优化技术,在GPU上实现高效运算,比现有方案快60倍。cuRobo支持多种机器人模型和环境表示,包含正向/逆向运动学、无碰撞轨迹生成、模型预测控制等核心算法,并可与IsaacSim等仿真平台集成。其特点包括:1) 支持多种碰撞检测方式(长方体/网格/深度图像);2) 提供批量环境处理和实时世界更新;3) 通过CUDA Graphs加速优化迭代;4) 在Jetson Orin等平台实现毫秒级运动规划。安装支

2506_90492529的博客 1924

麒麟系统无法进入单用户模式该怎么办?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1820

工业质检升级!C#上位机集成YOLOv8.3.138+Blob分析:尺寸测量+缺陷检测一步到位

工业场景的技术选型,从来不是“选最先进的”,而是“选最适配的”。这个项目的成功,不在于采用了多前沿的技术,而在于找对了“贴合场景的技术组合”和“落地导向的实施思路”。C#上位机的稳定性保障了系统长期运行,YOLOv8.3.138的精度解决了缺陷检测痛点,Blob分析的抗干扰能力确保了尺寸测量准确,三者结合实现了“1+1+1>3”的效果。先摸透场景,再选技术:不要盲目追求最新模型,先深入了解车间环境、生产节奏、精度要求,选择兼容性强、稳定性高的技术方案;数据质量决定模型性能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 608

Transformer实战(30)——Transformer注意力机制可视化

在本节中,我们讨论了人工智能面临的最重要问题之一:可解释人工智能 (explainable artificial intelligence, XAI)。随着语言模型的不断发展,可解释性成为一个严峻的问题。本节中,我们从 Transformer 的角度出发,研究了 Transformer 架构中的自注意力机制,尝试通过各种可视化工具理解这些机制的内部过程。

盼小辉丶的博客 2613

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 如何理解eos区块链中的eosio.token合约
下一篇: Fabric命令行工具中文手册
落叶无声9
博客等级 码龄12年 443粉丝 343原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值