主页 > imtoken安卓版下载2.0 > 以太坊开发DApp实战教程-使用区块链、星际文件系统(IPFS)、Node

以太坊开发DApp实战教程-使用区块链、星际文件系统(IPFS)、Node

imtoken安卓版下载2.0 2023-01-17 10:09:12

第一节 引言

欢迎使用以太坊与我们一起开发构建去中心化电商DApp! 我们将构建一个类似于淘宝的在线电子商务应用程序。 我将使用区块链、星际文件系统 (IPFS)、Node.js 和 MongoDB 来构建一个电子商务平台。 卖家可以自由销售商品,买家可以自由购物:

ebay dapp

去中心化:与淘宝或eBay不同,我们将所有业务逻辑和核心数据放在以太坊区块链上,这使其成为一个完全去中心化的应用。 与淘宝这样的中心化电商平台相比,去中心化的P2P电商应用显然有其独特的价值——至少你不用担心被平台封杀。

IPFS:在以太坊上存储用于产品展示的图片和描述超文本是非常昂贵的,有时甚至由于以太坊虚拟机的限制而无法实现。 为了解决这个问题,我们将产品图片和产品描述信息存储在同一个去中心化的星际文件系统(IPFS)中,链上只保存这些数据的ID。

商品拍卖:对于卖家来说,拍卖显然是一种非常好的提高商品利润率的销售方式。 因此,我们将在课程项目中实现去中心化环境下的 Vickery 拍卖——这与 eBay 的自动竞价系统非常相似,而不是简单地为产品设定一个固定的价格。

资金托管:中心化平台的优势之一是它天然地提供了买卖双方之间的信任中介。 在去中心化的环境下,我们会使用多方托管合约来应对买卖双方可能存在的风险。 托管合约使用投票机制来决定买方付款的最终流向。

链下数据存储:不要被去中心化所局限,传统技术还是有优势的。 我们将使用MongoDB做一个链下数据同步备份,以实现一个纯区块链难以实现的功能:灵活的商品查询。

为什么以太坊比比特币交易快_sitehqz.com 以太坊交易查询_以太坊第一个交易平台

课程地址:

第二部分是去中心化的,为什么?

在开始构建我们的应用程序之前,花一分钟时间了解为什么在线市场建立在像以太坊这样的去中心化平台上是非常值得的。

易趣、淘宝等C2C电子商务平台取得了巨大的成功,是因为它给买卖双方都带来了极大的便利:

c2c platform

在互联网成为主流之前,人们只能在小范围内或邻里之间买卖商品。 当越来越多的人使用互联网时,出现了像eBay这样的平台,无论你来自世界的哪个角落,都可以在网上买卖商品。 无论是商家还是消费者,这样的平台都有它的价值。

虽然像 eBay 这样的平台让每个人的生活变得更轻松,并改善了贸易和经济,但它们也有一些缺点:

sitehqz.com 以太坊交易查询_以太坊第一个交易平台_为什么以太坊比比特币交易快

受平台约束。 参与的商家受拥有该平台的企业的约束。 任何时候,平台主都可以决定是否封停某个商户的账号,而如果商户对平台的依赖度很高,那么封号是一个巨大的打击。 商家收费高。 商家要为产品listing支付费用以太坊第一个交易平台,还要为销售产品支付佣金。 收费没有错,毕竟eBay这样的平台是提供服务的。 但有时listing费用过高,导致商家最终利润微薄,或者将成本转嫁给消费者。 数据失控。 商家和消费者都不能拥有本应属于他们的数据。 评论、购买记录等。所有数据均归平台所有者所有。 比如商家要换供应商以太坊第一个交易平台,或者要导出商品评论等数据,就非常困难甚至不可能。

建立在以太坊上的去中心化电商平台解决了这些问题:商户账户不会被封; 数据也是公开的,所以很容易导出数据; 与中心化平台相比,交易佣金也会低很多。

第三节 初步功能特点

现在你应该明白为什么要构建一个去中心化的电子商务应用,以及我们要构建什么。 现在让我们来看看这个项目将实现的主要功能:

ebay user case

为了方便查询,我们会将产品数据存储在链上和链下(数据库); 同时,为了避免图片等数据占用昂贵的链上存储空间,我们会将图片和产品描述信息上传到同一个去中心化的 IPFS 互联网上。

课程地址:

sitehqz.com 以太坊交易查询_以太坊第一个交易平台_为什么以太坊比比特币交易快

第四节 基础知识要求

要成功完成本课程,您应该具备以下语言/技术的一些知识:

第五节系统架构

在开始具体实现之前,我们先看一下本课程要搭建的去中心化电商DApp的架构。

ebay dapp architecture

第 6 节了解架构的作用

为了帮助理解上一节中提到的那些组件的作用,让我们看一下卖家列出产品的过程:

sitehqz.com 以太坊交易查询_以太坊第一个交易平台_为什么以太坊比比特币交易快

ebay list item

(1)前端使用HTML表单收集用户输入的商品详情,如起拍价、商品图片、描述信息等。

(2)(3) 前端将商品图片和介绍文字上传到IPFS,返回上传内容对应的链接(hash)。

(4)(5) 然后web前端会调用电商合约将商品信息和IPFS链接存储在链上。 当合约成功将商品存入区块链后,会触发一个事件,其中包含商品的所有信息。

(6)(7)(8) NodeJS 服务器监控区块链事件。 当电子商务合约触发事件时,服务器读取事件内容并将产品信息插入MongoDB数据库。

当我们开始详细实现列出产品的功能时,我们将重新审视这个过程。

第七节 敏捷开发

sitehqz.com 以太坊交易查询_为什么以太坊比比特币交易快_以太坊第一个交易平台

我们将采用敏捷开发的思想来实现去中心化电商DApp:

scrum way

我们将所有产品特性列为 8 个迭代周期,通过每个 sprint,我们将得到一个可发布的版本:

前两个sprint主要侧重于使用solidity和truffle框架实现电子商务合约,包括合约设计、开发、编译、部署和测试:

电商合约基本实现后,接下来的三个冲刺主要集中在前端用户界面的构建,包括使用web3与合约进行交互,通过ipfs开发接口上传图片等数据交互。 必不可少的 DOM 操作:

在接下来的两个冲刺中,我们将首先实现资金托管合约,对拍卖后中标买家的资金进行管理; 然后实现相应的用户界面:

最后,为了方便商品的查询和检索,我们将使用MongoDB实现商品数据的链下存储:

课程地址: