我是第六感4星评价
2020-11-02 15:35:26
区块链的分布式存储,现在有星际文件系统(IPFS),目前星际文件系统只能存储一些静态文件,实际上只能够满足一些缓存的要求。而且基于IPFS的静态文件存储还没有加密。但也有些厂商在做加密存储,甚至可以做文件去重,这是未来区块链分布式存储的一个发展方向。
实现之后可以把存储的节点,从中心化的存储节点,向分布式的存储节点进行扩展和延伸。它与云计算存储的物理逻辑关系,我们可以画两个圈,中间的圈叫做云计算存储,在这个圈之外叫做区块链的分布式存储。
云计算的存储我们分成两类,第一类是块存储,第二类是对象存储。对象存储每个人都会去使用,比如说手机APP包括大量的图片、视频等,这些文件很多都是基于对象存储。
刷抖音的时候,视频实际上是通过云计算数据中心的网络,读取数据到达最终终端。云计算的数据中心虽部署广泛,但距离每个用户还是有一定距离的,物理距离直接导致网络传输的时间延长,最终就会导致用户观看视频不流畅。
所以云计算的厂商会基于云计算存储,对外去提供CDN内容分发网络来提升内容读取效率。内容分发网络是把云计算中心的存储节点里面的数据,用离用户最近的方式把相关的内容在离用户最近的地点进行部署。
这些节点通常都是一些商业化的组织来提供的,在小型的一些IDC机房里,我们去购买CDN节点去做文件的缓存,然后由统一的CDN的网络,协调和调度CDN节点,使得最终用户达到秒级打开看视频。
区块链的分布式存储,是将个人设备,比如路由器或机顶盒设备里面的存储空间用来做缓存。把CDN的节点向用户端更近了一步,甚至这些节点就在你家里面。这样用户在看视频或图片文件的时候,可以直接从自己的节点或是非常临近的节点,去拉取到相关资源,从而提升效率。
为了让个人用户把自己的存储空间贡献出来,去提高整个缓存网络或者是CDN网络的效率,可以利用激励让用户参与到区块链分布式存储的网络里。
从某种概念来讲,它是云计算向边缘计算的一种延伸。我们把云计算作为比较中心化的计算,然后把中心化的计算再往外延伸,叫做边缘计算。
在分布式存储里,核心是用来做激励的。我贡献了多少空间,就应该得到相应的回报,尤其是贡献的空间已经被用户使用了,通过CDN实现了商业化变现,商业化变现的网络里可以节省一部分存储空间和网络成本,相当于实现了商业闭环。
雨村画廊1510星评价
2020-10-18 15:37:13
虽然云计算蓬勃发展了10来年,云计算是按需供给的理念还不被大部分人理解。人们习惯称为云计算技术。如果把云计算称为技术,准确的表述应该是云计算的技术,是为了现实对资源按需分配而应用的技术。这些技术不但包括了计算、网络、存储、安全等基础IT技术,还包括了所有涉及信息的技术,这些技术支撑了各种资源的按需分配。
区块链也不是什么新东西,也有10来年的历史,只是从今年爆红。区块链也不是技术,本质上就是一种无权威化的信任体系。同样,如果还是把区块链称为技术,也应该是区块链的技术。主要包括各种算法如哈希算法和安全算法、加密技术、P2P网络技术等。
按需分配的理念和无权威化的信任体系,好像并不能直接对比,没有直接关系,也就不存在谁取代谁的问题。但是区块链本身就是一种资源,有按需供给的需求,是云计算的一个组成部分。所以,在IaaS、PaaS、SaaS的基础上后来增加了新的“即服务”比如DaaS(数据库即服务)等的同时,我们还可以创造出BaaS (区块链即服务)。
但是,没有直接关系并不是没有关系,云计算的技术和区块链的技术之间是可以相互融合的。今天就分析一下这种技术关系。
计算
云计算主要是以CPU为核心的复杂逻辑计算,而区块链是以GPU或ASIC为核心的简单线性计算。CPU是一个全能选手,主要实现各种复杂的应用架构。而GPU或ASIC擅长大量简单并行计算,来竞争获取工作量证明。区块链内的大量“矿机”是有擅长简单并行计算的GPU或ASIC组成。GPU并不能取代现有的以CPU为主的应用计算服务。
但是云计算还可以提供人工智能(AI)计算服务。和区块链相似,为了实现AI服务,云计算就需要大量并行简单计算的资源。如果各种以GPU为主的矿机大量闲置,我们可以通过改造软件和网络的方式来实现分布式的AI计算服务。但现在就想让矿机停止挖矿,提供AI的计算服务是不可能的。现在加密货币红的发紫,矿机们都在全力挖矿,挖矿带来的收益远远远远高于出租GPU带来的收益,不会有空余资源可以被云计算利用。所以在很长的一段时间内,云计算内还需要单独购置AI计算能力,不可能利用区块链里的矿机能力。
网络
云计算内的网络一般认为是一个在大二层网络基础上构建复杂的应用网络,而区块链是一个扁平架构的P2P网络。云计算的网络为了实现应用的复杂网络拓扑,完全采用为应用进行定制的方式,每个计算单元之间是通过“路由”为核心来实现复杂的逻辑关系。而区块链的网络存粹就是一个建立在公共网络的P2P网络。在这个网络里,每个计算单元的网络地位都是平等的。在一个彻底扁平的网络里,是以快速传播信息为目的的。不可能实现云计算应用复杂的网络架构。
如果将来矿机资源大量闲置,还可以作为AI的计算单元,也不是一下子就能华丽转身。从AI应用的网络角度上看,现有的P2P网络完全也是不符合的。到时候需要有新的网络技术把这些东西串接起来,一定不会还是简单的P2P网络。具体是什么,只有这一天来临了,才知道。
存储
云计算内的存储有很多种,有基于文件的、基于对象的、基于块的。这些存储作为一种资源,往往是独立存在的,一般采用共享的方式,由应用来选择。而区块链里的存储是作为链里各节点的存储空间,一般就是本机所带的普通廉价硬盘,独立存在。区块链里存储的价值不在于存储本身,而是在于相互链接的不可更改的块。
云计算内的存储和区块链内的存储都是由普通存储介质组成。只是相应管理物理介质的“文件系统”有所差异。最大的区别是区块链的文件系统可以写和读数据,但数据一旦写入就不能修改和删除。同时还会采用海量的独立副本来确保数据的不可修改性和数据的完整性。区块链存储的重点不在是”块“,而是在于“链”。通过链来确保记录内容的不可修改性,是一种特殊的存储服务。云计算里确实也需要这样的存储服务。如果一定让我来写关于区块链应用的白皮书,我觉得这才是真正的应用点。比如结合”平安城市“,将数据放在这种类型的存储里,利用不可修改性,让视频、语音、文件等作为公认有效的法律依据。
云计算里的区块链的存储服务实现有2种实现方法,第一种是将数据块直接记录在区块链里,第二种是将记录的数据块进行哈希,将哈希值记录在区块链里,但真正的内容还是记录在普通存储里或云端。第一种方法实现起来很容易,直接将内容写入区块链即可,但需要海量的存储,每个记录内容都有海量的副本。如果这样,将来每个链内节点的存储需求就不是现在的几百个G,而是大到海量。所以,现实这种方案是不可行的。而第二种方案采用控制和内容分离,就像在第二篇文章《打“假”区块链应用(1)》中介绍的基于区块链的DNS一样,区块链里只记录每个内容块的哈希值,就不需要让每个链内节点拥有海量的存储,而真正的内容是记录在传统的存储中。一旦存储内容被修改,所对应的哈希值也发生变化,和区块链内的哈希值就不能匹配,这样的行为是被禁止的,确保了存储内容的不可修改性。这才是区块链和云计算的有效结合。
安全
云计算里的安全主要是确保应用能够安全、稳定、可靠的运行。这种安全属于传统安全领域范畴。而区块链内的安全是确保每个数据块不被篡改,数据块的记录内容不被没有私钥的用户读取。利用这一点,如果和上面介绍的基于区块链的安全存储产品结合,就能设计出的加密存储设备。
管理和协同
云计算和区块链里的管理方法和资源协同完全是不一样的。云计算实际上是通过集中的控制器进行有中心化的管理。虽然资源可以分布式提供,但管理一定是集中的。所有资源的分配、调度和应用都是被集中管理。而区块链采用无中心的管理方式,所有的节点都是一样的,就没有必要进行管理,一切都是自发和自动的。所以当区块链的资源要转化成为云计算资源的一部分的时候,除了网络,管理也是必须重构的。