架构解密分布式到微服务:分布式文件存储,星际文件系统IPFS
星际文件系统IPFS星际文件系统IPFS (Inter Planetary File System)是最近才出现的一个新的开源分布式文件系统。它并不是一个传统意义上的文件系统,要理解为什么会有这种文件系统出现,就需要理解它产生的背景及它所针对的内容。
https://p3-sign.toutiaoimg.com/pgc-image/323c463958c345dc93bb5c69ecfe3666~tplv-tt-large.image?x-expires=1970105954&x-signature=dq0g%2FI5imzPjUJIUoCV1g5LigBk%3D
IPFS的作者是毕业于斯坦福大学的墨西哥人Juan Benet,他成功创建了Protocal Lab实验室。Juan Benet认为兴盛于21世纪初的以 BitTorrent为代表的P2P技术是一个创新性的文件分享技术,比已有的文件分享技术更加高效、开放,但因为在其上分享的内容盗版泛滥而且难以监管,所以在文件分享方面陷入绝境。但是,P2P的理念和优点深深吸引了Juan Benet,IPFS的技术核心之一就是P2P。Protocal Lab也正是Juan Benet试图接下P2P这根接力棒的尝试,它的第一个项目——星际文件系统IPFS就是利用P2P思想和技术对传统的HTTP互联网网页(文件)系统的彻底改变!
所以,IPFS 实际上是一种全新的P2P化的(互联网网页)文件系统。
我们知道,互联网上合法的并可以公开访问的 HTTP站点基本属于某个组织,在大多数情况下,这套系统的最终用户只能被动充当“浏览者”,不能在这个最广泛且越来越重要的内容分享平台发布和分享自己的内容。所以,IPFS最重要的一个理念就是彻底打破目前HTTP互联网的这种中心化特权,让更多的人参与进来,这与区块链的思想高度一致,因此也不难理解。IPFS的作者随后高调发布了基于IPFS的数字货币Filecoin的原动力。
基于HTTP的互联网文件系统还存在以下问题。
[*]大文件的传输效率太低。
[*]网上冗余的文件数量庞大,浪费了很多存储资源,也导致检索效率低下。
IPFS 采用了P2P技术来解决上述问题,它将一个大文件分为大小为256KB的一个个独立区块,这些独立区块可以被存储在不同的IPFS节点上,大文件就可以用这些区块的一个地址链表来寻址了,同时,客户端可以并行地从多个节点获取文件的不同内容,从而大大加速大文件的传输效率。为了解决文件重复的难题,IPFS放弃了HTTP基于文件名(URL)的寻址思路,创新地采用了基于文件内容的寻址方案,每个被放入IPFS的文件,其内容都经过SHA2-256的算法得到一个长度为32个字节的哈希值,这个哈希值再经过Base58的编码后得到的可读字符串就是该文件的“唯一标识”,只要知道这个唯一标识,就可以通过IPFS去查找该文件的内容,不管它被分隔成几部分,以及被存储在哪些服务器上。由于相同的文件内容得到的哈希值是相同的,所以IPFS天然具有过滤重复文件的能力,也可以通过指定文件副本数的方式来确定某个(某类)文件存储的副本数量,实现灵活的容灾特性。此外,如果不知道文件内容对应的哈希值,则无法检索该文件,所以IPFS还有天然的文件保密性。
IPFS是一个典型的 P2P对等网络,在这个网络中并没有中央服务器,集群中的每个IPFS节点都会在本地存储一小部分文件,并且保存本地文件对应的哈希路由表,同时每个IPFS 节点都与其他一些IPFS节点保持长连接关系并通过一些复杂算法交换路由数据,于是网络中所有IPFS节点的本地哈希路由表都“汇聚在一起”,形成一个巨大的分布式哈希表DHT (DistributedHash Table),从而实现整个IPFS网络的文件寻址问题。IPFS 所使用的 DHT 的具体实现是Kademlia,一个被广泛用于BT系统中的分布式哈希表的实现算法。为了方便Web 用户访问IPFS中的数据,IPFS的节点提供了HTTP网关服务,在开启以后就可以通过浏览器直接访问。同时,IPFS也跟一些浏览器厂家合作,在浏览器如FireFox、Opera、Brave等中内置了IPFS客户端。如下所示是IPFS的架构示意图。
https://p3-sign.toutiaoimg.com/pgc-image/eec45a28044c420fa5aa2a91afee7a09~tplv-tt-large.image?x-expires=1970105954&x-signature=%2FhqIHBIghrQJxpioujnHY1h3T%2BE%3D
IPFS除了融合了P2P网络技术、BT传输技术,还融合了类似于Git版本控制的技术,如果上传到IPFS中的文件被修改,则 IPFS 会保存新文件并且自动生成该文件的历史版本,以确保看到该文件的人能追溯该文件的所有历史版本和每一处修改细节,这会揭示更多真相。
从上述分析结果来看,IPFS在技术方面可被视为一种典型的“集大成者创新模式”,在架构和技术方面并没有太多创新点,更多的创新则来源于其思想,这与区块链有很多相似之处。同样,区块链所倡导的“自由平等地参与和分享理念”也在很大程度上影响着IPFS的走向和生态圈。目前已有大量数据被上传和存储到IPFS网络。2018年,文件数量已经超过50亿,2019年,IPFS 网络的节点数量已经超过10万,网络规模的增长则超过30倍。为了更好地鼓励和激励更多用户将其文档提交并通过IPFS分享至全球,Protocol Labs随后继续发起了基于IPFS的全新区块链项目Filecoin。目前,Filecoin已被视为最具潜力和未来影响力的全球性分布式存储网络,任何个人和组织都可以在其上买卖未使用的存储,并且提供公平的付费检索服务。可以想象,一旦IPFS+Filecoin形成规模,对现有的搜索巨头谷歌、bing、百度等的冲击会有多大,这也是为什么Chrome浏览器并没有积极参与IPFS集成。Filecoin的测试网已于2019年12月启动测试,并计划在2020年6月15日至7月17日正式上市。美国知名交易所双子星Gemini官方发布公告,将为Filecoin 的代币FIL提供托管支持,并认为Filecoin 与之前纯粹竞争消耗算力的挖矿方式来争取虚拟货币的传统区块链不同,Filecoin 里的挖矿行为是有对应的实际价值的,并满足了互联网市场中的真实需求及相关交易。
[*]用户愿意将自己的存储资源贡献出来并获取相应的报酬。
[*]用户愿意为可靠云存储服务付费。
[*]用户愿意为高质量数据检索服务付费。
Filecoin系统中的交易分为存储交易与检索交易,整个系统中的用户都可以按照角色划分为以下三种,其中任何一个互联网上的个体都可以同时拥有这三种角色。
[*]客户:愿意为两种服务支付合理费用,包括存储数据及检索数据。
[*]存储矿工:通过提供本地的存储空间存放客户的数据以获得相应的奖励费用。
[*]检索矿工:提供IPFS 网络内的数据检索服务并收取相关费用。
https://p3-sign.toutiaoimg.com/pgc-image/99ee44a0acd14c229dcc6aeafda7dc37~tplv-tt-large.image?x-expires=1970105954&x-signature=7Zanv4gY4M3qo6zWsx23AAK%2B4H8%3D
Filecoin是一个区块链项目,所以也有自己的虚拟数字货币——FIL代币,FIL 代币的发行总量为20 亿,这其中的70%即14亿都留给存储矿工通过勤劳致富的挖矿所得,只有存储矿工才有资格参与Filecoin网络新区块的生成,一旦某个存储矿工挖到了新区块,就可以得到奖励及包含在区块中的交易费,全部的14亿枚FIL代币只会通过这种方式产生并流通。
用户若想要上传数据到IPFS网络存储,就需要付出一定的FIL代币,存储矿工因为提供数据存储服务而获取部分FIL代币作为报酬。如果其他用户想要访问某个数据,则也需要支付一定的FIL代币作为报酬给检索矿工。由于引入了区块链技术,因此这些交易都更加透明、公平、可靠,因为每一笔交易都是公开的“征信记录”,全球可见。如此一来,互联网这个虚拟世界将变得更加民主、公平。
本文给大家讲解的内容是架构解密从分布式到微服务:深入解析分布式文件存储,星际文件系统IPFS
下篇文章给大家讲解的是架构解密从分布式到微服务:深入解析分布式文件存储,软件定义存储;觉得文章不错的朋友可以转发此文关注小编;感谢大家的支持!
页:
[1]