00:00
接下来我们即将开始的是我们的第二个项目,大家会发现这个第二个项目呢,其实比第一个项目就要复杂很多,所以说呃,我们也就是想一开始最初的这个呃,数据结构和简单的合约能够先带着大家做完,然后接下来可能我们就要把这个项目里边最核心最复杂的那些。拍卖方面的逻辑要给大家要讲清楚,首先在这个项目里面,大家就看到这个标题啊,就叫呃,IPFS,基于IPFS的一个去中心化E贝对吧,那这个其实首先E贝这是一个拍卖平台了,这是我们的基础应用,那首先它就是还是不光是以太坊上的应用D,而且它还要引入这个IPFS的概念,但是这个本身不难。呃,所以就是说大家也不要看到一个新的名词,没见过的就就心里面打鼓,对吧,这是什么东西,又得学好多东西,但其实呃,我可以很负责任的跟大家说,就是这个肯定大家试过之后就会发现啊,这个东西很难啊,很很简单啊,这个东西呃就是可能大家只要用上十几20分钟,只要把它装起来试一下就发现可能它就没什么相相反倒是这个概念上的一些东西,就是架构上的一些东西,可能需要让大家花费更多的时间去了解,所以我能就会跟大家好好的先说一说,就像我们这一个教案里边引言,还有就是实现计划,这一部分就是先跟大家说一说,我们做成什么样,他想做的东西要怎么样去实现,呃,这一部分内容大家在这个以太网教程这个get up上面,直接下面这个拍卖应用这里就能够直接打开看。所以我这也就不单。
01:55
单独在做,因为这个已经做的非常详细了,我就不不再单独去整理这个内容了,呃,所以大家可以直接打开,随时参照这里边的代码和逻辑,那首先说一下这个课程,他要做的是一个去中心化的EBA,那大家可以想到EBA是什么东西,大家有接触吗?它是一个算是国外的一个电商对吧?但是它跟我们的淘宝又有点不一样,我们淘宝的话其实相当于是啊,当然大家自己可能有这种讨价还价的经验,对吧,私下联系商家,但是真正的一个电商在中国淘宝的这种模式,它其实就是一口价,你你直接把它那个拿下来就可以了啊,有时候我们也说把它拍下,但事实上跟E贝的模式还是不一样的,易贝它是真正的一个叫拍卖平台这样的一种模式,那拍卖我们都知道了,就是说呃,所有的这个商品。
02:55
摆到上面去之后,大家不是说一口价直接把它拿下来了,而是他有一个拍卖的一个时期,一个窗口期,然后大家是这个互相竞价,价高者得这样一个模式,对吧?啊,所以大家可以看到就是这种应用的话,那逻辑可能就会比一口价就更复杂,会稍微更复杂一点,那我们在这个应用里边呢,其实就是简单来说就希望实现一个。
03:24
类似于eBay这样一个拍卖的电商平台,可以做商品的拍卖,那这里我们到底是怎么样用这个以太坊,而且还涉及到了IPFS,对吧?这两个东西我们到底怎么用呢?首先我们的基础的核心逻辑和最重要的一些关键数据都会存在区块链上,这是我们D的一个核心,如果我们连这个东西都不存的话,那其实呃,第二个就没有什么意义了,对吧?另外大家注意。我们想到我们既然是一个电商项目,一个电商平台,那么肯定就会涉及到。
04:07
肯定就会涉及到一些产品的图片,或者是大量的这种说明文字,对吧,那这些东西其实是呃,很浪费存储,而且如果你说纯纯文本存储可能还好,对吧,你万一要是图文并茂的这种东西,一个产品图片你要存到以太坊上哇,那大家可能会想到你要存一下这个盖可能会花的非常的厉害啊,就是且不说这个很浪费钱,即使是。土豪任性,你这个有可能存一个很大的图片,会超过我们那个GA limit的,对吧?所以大家可能会想到这就有各种各样的限制,而且对于以太坊而言,他也不允许我们把更多的资源浪费在存这种大图片上,对吧?你本来里边就够卡的了,正常的交易都处理不过来,你还让我们的这个EVM去处理很多大大图片,很多这种文本信息,这个显然是至少在目前的这个应用当中,它是不现实的。那大家就会想到我们到底去怎么去存储这样的一些文本和一些大图片呢?
05:18
这样的一些大文件怎么样去存储呢?呃,以前如果大家有过类似于后台开发的经验的话,大家可能就知道,在传统的外部应用里边,正常来讲这种大文件我们也不是直接就呃,就是直接放在这个web后端的,对吧?Web后端如果说大家要是存很多,比方说假如做一个社交平台,呃,一个人可以上传自己的很多照片,大家会想到这个照片你怎么存呢?难道都是在自己后台数据库里边把那个图片转成这个对吧?BAT二进制文件,然后全存到我们的MYSQL里面吗?或者全存到我们的网购里面吗?这个其实不现实,因为大家会想到啊,甚至大家如果用过red的话,大家可能会想存到red里面对吧,Red性能高,但但是那个很贵的,我们如果要是一个图片,那动辄就是几兆甚至几十兆的,当然几十兆可能夸张了一点啊,动辄就是几百K几兆的图片,这这么大的东西,如果占用我们的web服务器的这个资源,占用we服务器的带宽,那肯定我们本身这个appb去访问的时候就会很卡了,所以之前其实就有这样的考量。
06:33
我们传统应用其实也不会把它直接全存在我们web服务器的数据库,对应的存储的那个数据库里面的,那传统模式我们怎么样去存储呢?呃,可以简单给大家扩展一下,就是一般情况大家如果在阿里云上,大家都买阿里云服务器对吧?阿里云除了大家买的这个,一般大家买的叫ecs弹性服务器,对吧?除了ecs之外还能买什么呢?还能买数据库服务器对吧?能买MySQL mango red什么都能买,除了这些之外,还有一种服务器,对,就是所谓的云存储对吧?有一种服务器叫oss。
07:15
它是什么呢?就相当于是对象存储服务,也就是说我们的大文件,大图像甚至视频,你要存的时候怎么存,存到那个上面去,它的特点是什么呢?就是就是只是方便你访问,那你要去拿下载那个东西的话,那你就慢慢加载就好了,对吧?然后它那个地方就是存储空间特别大,但是你的速度肯定就没那么快,就肯定不可能像呃,Red,那或者是mexicoq mango这些都是比不了的,但是它就是存储空间特别大,海量存储,所以类似的在整个我们这个以太坊系统里边,或者说整个区块链系统里边,大家会想到那是不是也有类似的存储解决方案呢?那没错,确实就是有这样存储解决方案的,以太坊本身它自己定位是一个世界计算机,那它本身不提供这种海量存储,这种大对象的存储,对吧,那谁来提供这个呢?啊有一个。
08:16
项目有一个应用,这个方面做的非常好,这就是我们要给大家介绍的IPFS,呃,所以当然现在IPFS其实还是在一个发展和一个完善的一个过程当中啊。呃,我们这里就是因为它这个应用其实让大家看到很多真正落地的场景,可能需要用到这个东西,所以我们单独把它拿出来来说一下,但是其实我们纯应用的角度的话很简单,呃,大家用过,如果用过O,没用过OS服务器也肯定用过MYSQL什么的,对吧?呃,就会发现别人提供服务,我们拿来有接口直接调就可以了,其实很简单啊,好,这是一个,首先是一个就是课程的一个大概的一个想法和用到的组件的一个介绍,那接下来就是谈一谈为什么要去中心化,那这个其实也是一个老生常谈了,我们讲区块链,讲以太坊,甚前面讲这个比特币,甚至讲分布式系统,大家都会提到这个话题,对吧,那比方说像这个。
09:16
必备这么一个平台,为什么拍卖拍卖的电商平台,为什么咱们要把它去中心化呢?那大家可以看一看,就是这里易备的一个优缺点对吧,那易贝已经是获得巨大成功了,那它使得这个,呃,电子商城嘛,电子拍卖,那这个买卖肯定很方便,就跟大家用淘宝用用这个各种各样的电商网站一样,呃,那在这个互联网它这里特别熟悉啊,就是呃,特别提到了这个就在互联网成为主流之前,大家如果想要去买东西的话,你只有去商场对吧,临近的商场,或者走的远一点,坐车去到实体商商店,但是如果要是到了这个互联网时代呢,那这种交易模式买东西的模式就变了,像eBay这样的东西,你就在只要是有浏览器,有有网络,你就直接可以打开他他的网站。
10:09
勾选自己想要的这个商品,呃,他给大家确实是提供了很大的便利,但是他有他的问题,他的问题在哪儿呢?大家看一下,首先。上面参与到的商家是受制于公司的,也就是说受制于EBA的。整个它是一个中心化的平台嘛,所以说所有的公司它是被E备来做统一管理的。那换句话说就是E贝可以决定谁可以在我这里注册商家号,谁可以在我这里卖,谁不可以,我要封谁的号就封谁的号,哎,当然这就是就是非常,就是中心化非常非常就是集权的一种处理方式啊,当然这其实是两说的一个话题,就是大家如果要是把这个都放开的话,大家可能还会想,哎,那淘宝上不就假假货很多嘛,那不是淘宝不作为嘛,对吧,那他自己作为平台,他应该把这个监管起来。
11:04
那这其实就是我们大家所说的,你如果是中心化的话,可能能带来更强的这种监管的机制,将带来这种就是强监管的效果。但是。带来更大的一个问题,就是说。只有这一个中心化的机构,他说了算,他的监管到底合不合理,到底对不对,这个就不好说了,所以这是中心化的一个很大的问题。另外还有一个就是商家如果往上去摆商品的时候,上架商品的时候要交费,然后卖出的时候还要交一笔手续费,也就是这里所说的佣金啊,这里就是说,呃,那收费本来没有错,那你你到商店去租个柜台去卖东西,难道不得交租金吗?对吧?呃,毕竟E贝是有这个服务的嘛,但是他就是说大家的痛点就在于你有时候这个手续费太高了,那这个E贝作为一个平台,就像我们大家有时候去交易交易所去买卖那个数字货币,或者是买卖股票之类的一样,他就是躺着赚钱啊,什么都不干,对吧?他说确实是这个提供了服务,提供了平台,但是真的是我们在上面随便做一笔交易,然后直接扣很多手续费,而且他这个东西很多东西他也不是。
12:20
特别透明对吧,完全是他说了算,我们完全没有议价权的,所以这些东西就是,呃,那那最后这个成本会让谁去承担呢?都是我们所有用到这个平台的人,要不就是商家,那要不商家就把这个成本再转嫁到消费者身上啊,最后还有一个很大的问题,很大的一个痛点就是说数据的问题啊,这个其实也是,现在就是在这个区块链行业,很多人做区块链应用,做D的一个想要去尝试创新的一个点是什么东西呢?就是说在我们传统的互联网模式下。大家其实为很多公司做出了巨大的贡献,为什么这么说呢?我们大家会发现现在啊,大家很很火的技术,除了区块链,区块链还不能说很火,对吧,刚刚兴起更火的技术是什么?大数据对吧?云计算,人工智能,所以大家会发现在网上你随便去用百度,用各种搜索引擎,用完了之后,它会收集你的个人个人信息,收集你的用户数据,收集完了之后,大数据一做分析,一做人工智能的这些处理,做计算,然后就给你做各种各样的广告推荐,对吧?那在这个过程当中,其实。
13:37
你的行为是为他的这种模型优化和算法优化做出了贡献的。但是可惜没有人给你钱,对吧,就是你的行为,这其实是属于你的数据,那这只是我们的搜索习惯,这是一方面,那如果是我们的交易习惯的话,那其实更是更更重要,更私密的个人信息,对吧?我买过什么东西,这其实完全是应该我自己掌管的一个数据啊。
14:02
你怎么能随便用我这样的数据呢?所以这也是现在很多人在讨论的一点,那大家就会看到,对于易贝这样一个平台来讲,或者说我们想这个像淘宝这样的平台啊,淘宝京东这样的平台,所有的数据其实掌握在谁手里边。那其实就是淘宝京东对吧,你所有的评价,所有的交易记录不都在他的数据库里面吗?就在他的MYSQL里边,或者在他的猫狗里面,或者在他的red里面对吧?嗯,所有的这一切控制权都在他手里,所以说他可以去删。他也可以去把这个一转手卖掉,呃,大家就会发现,为什么我的个人信息总是莫名其妙收到莫名其妙的这种推销电话,推销短信的,当然有些可能是群发群群播的,但是更多的情况是,但是有时候会发现它是精准投放的,对吧?对我们的信息都被这样卖出去了,那所以这里边一个不想做这样中心化的一个解决方案,大家想要解决什么问题呢?就是我们是不是可以自己掌握自己的数据,我们不需要一个中心化的机构去把我们的数据存起来,我们去中心化自己的数据自己掌握,然后加密之后全部存储在网络当中去,要用到的时候我解密才可以用啊,这是其实也是现在很多创业公司在讨论的一个话题啊,大家感兴趣的话,可以在这方面走的更远去,去研究更多的一些案例啊,当然这里我们不不专门讲这个对吧?呃,接下来我们看一下,就是我们这个项目大家已经知道了,我们是想做一个。
15:36
去中心化的EBA对吧,解决它的这些痛点,呃,当然大家其实可以想象得到,就是我们说的这个去中心化E贝能解决他这些问题,但其实还会有一个更大的问题,就是你的速度,对吧?那所以说在我们这个项目里边,我们希望去怎么实现呢?大家看啊呃,首先我们先看一下这个项目细节我们的功能吧,首先你既然是一个电商平台,首先你得把所有的商品能够陈列出来。
16:07
所有的商家在上面注册的商家,他应该能够把自己想要摆的这个商品能放上去,对吧?这首先这就是一个基本的一个功能,呃,你总不能说我上去之后看着一片大白板,或者说我上去之后只有一个编号,什么东西都没有,那这个肯定不行,所以这是基本的一个东西啊,然后呢,大家会想到,呃,我们既然是能让人直接把产品放上去,那就应该还可以查询,那查询的时候大家可能就会想到我们在区块链上去查询。这个效率可能不是很高。所以我们可能就需要同时去提供链上和链下的数据库,方便我们去查询,这就是提到了最后一部分,我们可能会用到mongo去搭建一个链下的一个server,然后去给大家提供快捷的这种方式解决这种就是性能上的这种交易速度上的问题,当然这个对我们前面关于我们D构建这一块影响不大,所以我们把那个是放在最后面去去讲,去实现,如果我们下一周接下来这五天的时间不够的话,我们可能就再放到后面,大家讲完MYSQ之后,然后再顺便再学一下mongo,对吧,然后再把这个项目再综合综合,然后接下来还有一个项目细节是什么呢?我们会把大文件,也就是说一些。
17:32
图片和它的产品介绍的一些很大的文本放到IPSIPFS上去,这个东西我们是不直接往区块链上存的,那我们区块链上存什么呢?理财网上存什么呢?存一个哈希就够了,对吧?那大家应该能够想到这样的一个过程啊,因为有哈希,我们可以去校验嘛,可以去唯一的拿到对应的那个那个文件,好,那接下来呢,我们还应该有一个功能,就是浏览产品,我们得提供这个外部页面对吧?我们得有一个基本的目录引导,然后我们得去按照各种各样拍卖时间啊,什么样的条件去过滤,去浏览。
18:12
然后最关键的一个功能,其实就是这个第四个拍卖,你既然是拍卖的电商平台吧,你这个功能如果实现不了的话,那肯定是不行的,这里拍卖这里大家注意啊,它这个拍卖叫什么呢?叫叫victory拍卖,这是一个什么拍卖呢。呃,它有些地方管它叫维氏拍卖啊,呃,它有一个更专业的名字,应该叫,呃叫第二高价,呃应应该怎么?反正就是它是最后选取的是第二高价,然后是一个盲拍的模式,什么是盲拍呢?就是在出嫁之之前,最后揭晓之前我并不知道。当前别人最高对他的出价是什么?
19:02
呃,就是这是一个大家拍卖给自己出价的时候,大家其实是不知道别人具体的策略,不知道具体的这种情况,不是像大家印象当中的一个拍卖会,哎,上面有一个这个拍卖官拿个锤子对吧,什么100万第一次100万第二次不是这样的,我们整个要的是一个盲拍的过程,那大家可能会想到你,你既然是区块链。不是说所有信息都是公开的吧,你还想去盲开盲开对吧?你不是不可篡改,所有的东西都能查到吗?还要盲拍,这个怎么实现呢?那具体的拍卖流程我们到后面讲到的时候再给大家去介绍啊,这里提到一句,就是实现类似于ENSENS是以太坊上那个就是域名服务的那个项目啊,大家感兴趣可以去看啊,那接下来我们还会实现一个什么东西呢?实现一个托管合约,也就是说。我们拍卖结束之后怎么办呢?拍卖结束之后,我们会按照这个,呃,就是合约的定义,然后直接把就假如说这个拍卖有一个赢家,拍卖的赢家他拍下来了,那么我们会创建一个托管合约去做什么事情呢?就是跟下面的这个一样,就是2/3签名,也就是大家所说的多重签名地址对吧,比特币里边的多重签名钱包,所以我们这里在合约里边用合约。
20:27
在以太坊里边实现一个这样的多重签名的一个钱包,这相当于就是一个钱包,对吧?所以我们实现这样一个多重签名,那就是让买家卖家,还有一个第三方的托管人一起控制这个钱包,然后这个合约跟这个,呃,我们的这个2/3签名的这个钱包一起决定这个钱是否可以打给这个,呃,就是卖家,或者说是这个无效,我们要把它给到这个,就是退回给到拍卖的卖家,所以这是我们整个大概的一些项目的一些构架啊,项目的一些组成成分,那这个先修课程大家其实都已经知道了,首先solidity我们学过了,对吧。
21:11
那我们的这个基本的合约语言,然后HTMLCSS,这是前端的,要做这个产品的构建的时候,页面布局的时候,我们要用到这些东西,然后justscript JS,那肯定是需要的了,对吧?我们专门已经给大家讲过web JS,而且已经用了这么多了,这些我们都讲了,那最后还有一个东西我们还没有讲,但是这一部分呢,其实呃,我们可能不是那么重要,就是最后一部分跟我们的DF其实关系不大,我们在最后给大家介绍一下mango相关的一些东西。我们也也不会深入啊,就是只给大家介绍一下就可以。
我来说两句