【编者按】
微信公众号“九存区块链存储”。昨天在发完这篇文章后,恰巧有几个长话的沟通,都是区块链结合具体领域的,联盟链需求数据存储,验证了我们对区块链存储的新的定义,也即还包含了非中心化的存储+许可链。
欢迎转载。转载时必须把编者按之后(也即“欢迎持续关注微信公众号九存区块链存储”开始),到“扩展阅读”之前的全文进行转载。
欢迎持续关注微信公众号九存区块链存储,将发布SDS之BlockChain Storage系列文章。今天先介绍区块链存储的概念,然后再回顾区块链存储的雏形。开始之前,问大家一个问题:下载了电子书后,Kindle阅读器会更重吗?
一、什么是区块链存储(BlockChain Storage)?
先打个比方,区块链存储,好比是数据存储领域的Airbnb(爱彼迎)或者小猪短租。空间是由成千上万甚至更多的个人或团体提供的,所有权是他们的,不过他们因为受收益、激励或者其他因素的驱动,会出租一部分使用权。这里的一部分可以指一段时间,或者一些空间,或者两者的结合。
严肃的说,区块链存储就是非中心化(Decentralized)存储+区块链,它分为两大类:
1)第一类是非中心化的存储+公链,例如IPFS+Filecoin、STORJ +Storj等;通常是跨越全球的存储池 + Token激励机制。
图1: IPFS+Filecoin,创始团队是Protocol Labs
一个非中心化的公链存储必须确保:
1、没有任何实体能够控制整个服务。换句话说,应该如同中本聪在设计了比特币离开了之后,比特币还能依然平稳地持续运行。区块链存储在早期形成的时候,当然不能脱离运营团队的呵护,但是完善后,就应进入到自行扩展、自我管理的阶段;
2、开放、公开,例如代码开源,设计理念公开。尤其是要避免出现自己的存储数币,只能购买自己的设备去挖。
3、促进共享。共识机制必须设置好激励措施,让个人或者团体愿意分享自己剩余的存储资源,从而提高整个社会的存储效率。
2)第二类是非中心化的存储+许可链,可以理解为存储区块链化,用于私有链或者联盟链;主要是采用区块链的如下特征,分布式、不可篡改、可追踪、加密安全性、开源、隐私保护、集体维护等,满足业务的需求。
截止目前,全球有二三十个区块链存储项目,绝大多数集中在第一类。本文除非特别说明,后面提到的区块链存储指的就是非中心化的存储+公链。
区块链存储是区块链的基础设施,它的目标是在全球范围内实现存储资源的共享,也即共享存储。区块链要发展,区块链基础设施必须先行。目前,区块链还处于非常早期的阶段,因为区块链基础设施还很不完善,其中区块链存储就是瓶颈,制约了DApp(非中心化的应用)的发展。早期,有些DApp迫不得已将较多的数据放在自己的数据中心内,或者放在AWS或阿里等云存储上,但这只是权宜之计,因为非中心化的应用,必须是端到端的非中心化,也就是从应用(计算)到存储等区块链基础设施都必须是非中心化的。
注意,针对Decentralized,我们并没有使用常见的“去中心化的”这个提法,而是采用“非中心化的”,读者也可以理解为分散式的。大家可以仔细思考一下这两者的区别。
二、公元2000年就出现了区块链存储的雏形
厘清上述基本概念后,我们来回顾一下区块链存储的历史。
当下区块链存储的明星,当之无愧属于IPFS+Filecoin。IPFS(InterPlanetary File System,星际文件系统)的核心是libp2p。libp2p采用的点对点技术(peer-to-peer,简称P2P),大家都不陌生。P2P甚至被美国《财富》杂志称为改变互联网发展的四大新技术之一。
BitTorrent是最早的P2P软件之一,Bram Cohen在2001年7月2日发布了BitTorrent的第一个版本。然而早在公元2000年的时候,就有人提出了P2P存储系统的设想。加州大学伯克利分校 OceanStore团队的领军人物John Kubiatowicz在全球计算机顶级会议ASPLOS(Architectural Support for ProgrammingLanguages and Operating Systems的简称)上,详细地介绍了OceanStore:An Architecture for Global-Scale Persistent Storage。
图2: 照片中前排正中,戴帽子的就是John Kubiatowicz
趣事:正是这个John Kubiatowicz对外宣布,4GB的电子书阅览器,满载时与空的电子书相比,差距仅有1微微微克,也就是10-18克(十的负十八次方克)。他的逻辑如下:
电子设备通过捕获电子并将其转化为0和1信息进行数据处理,你的Kindle上装的电子书越多,数据处理量越大,电子运动也越频繁。4GB内存容量导致1.7×10^-5焦耳的额外能耗,根据质能守恒定律,这实际上会产生10^-18克(10的负18次方克)的重量差异。
OceanStore,跨越全球的对象存储,这是一个非常超前,非常惊人的设计。
图3: OceanStore - 全球范围内的P2P存储系统
我们先来看其中的一些要点:
1、 OceanStore要打造的是一个跨越全球的持久化存储
2、 愿景是用户可以在任何时候、任何地点、通过任何设备接入Internet,并访问存储在OceanStore 中的数据
3、 用160bit的SHA-1哈希值来做唯一ID – GUID
4、 GUID是由方便人懂的名字结合公钥形成的哈希值
5、 本地存储是全球存储池的缓存
6、 OceanStore提供安全、隐私和完整性
7、 提供非常高的持久性
8、 通过持续使用、自我诊断和修复降低维修成本
图4: OceanStore关于唯一ID的设计
图5: OceanStore的结论
更难能可贵的是, 在18年前,OceanStore就考虑到了市场机制。例如,提供空间的人,包括存储服务提供商(Service Provider)可以每月结算一次获得报酬,服务提供商之间也可以相互购买或者出售存储服务;用户则需为其在OceanStore 中占用的存储空间付费。在OceanStore上存储的数据能保证安全,不会泄漏给其他用户,也不会泄漏给系统管理员;用户还可以赋予其他用户访问其个人数据的权力。
OceanStore的设计思想和架构,直到现在,都有参考意义。例如:本地缓存;活跃数据用副本,归档数据用纠删码;GUID的命名规则等。
很可惜,OceanStore在其官方网页的最后一次更新时间是2011年3月22日,看来已经成为先烈了 。在笔者看来至少有如下几个原因:1)经济补偿(也即激励体系)难以落地,缺乏方便的即时支付系统; 2)硬件条件不具备,如网络。
不过,在2018年的ASPLOS大会上,OceanStore团队在2000年之前发表的题为“An Architecture for Global-Scale Persistent Storage”的论文被评为最具影响力(Most Influential at ASPLOS 2018)。
图6: JohnKubiatowicz教授的学术成就
备注:如果对以John Kubiatowicz为首的OceanStore团队的演讲稿感兴趣的话,可以前去“SDS & 云计算 & 区块链” QQ群(群号为122295009)下载。
回顾历史,我们可以发现OceanStore其实有两大贡献,相当于提出了Storage as a services(STaaS),以及BlockChain Storage(区块链存储)的雏形。要知道,AWS的云计算在时隔6年后才出现。2006年3月14日,AWS推出了第一个产品:S3对象存储。
备注,不要把OceanStore和华为的存储型号混淆了。华为的是OceanStor,仅少一个字母。不知道,华为存储的设计或者取名,是否有从加州大学伯克利分校的OceanStore获取灵感?
未完待续……,下篇文章将介绍区块链和软件定义存储方面的内容。
索引:
https://scholar.google.com/citations?user=00M1AqQAAAAJ&hl=en&oi=ao
https://www.devteam.space/blog/how-to-build-a-decentralized-cloud-storage-solution-like-storj-io/
https://www.asplos2018.org/
https://dl.acm.org/citation.cfm?doid=378993.379239
http://oceanstore.cs.berkeley.edu/publications/talks/ASPLOS-OceanStore.ppt
https://en.wikipedia.org/wiki/Bram_Cohen
https://scholar.google.com/citations?user=00M1AqQAAAAJ&hl=en&oi=sra
http://www.360doc.com/content/11/1101/07/7093384_160710742.shtml
http://blog.sina.com.cn/s/blog_48b5bd9401000cd7.html
https://ipfs.io/
https://filecoin.io/
https://storj.io/
欢迎持续关注微信公众号“九存区块链存储”,我们还将分享区块链存储的系列文章。
微信公众号平台"乐生活与爱IT"在目前阶段,主要是分享区块链(BlockChain)
、软件定义存储(SDS)和超融合架构(HCI)相关的文章,偶尔也会分享虚拟化、云计算、大数据、人工智能、IoT等IT类文章,甚至生活类的好文章。
欢迎对SDS感兴趣的朋友,加入软件定义存储讨论 QQ群:12229500
欢迎您通过扫描关注微信公众号:“乐生活与爱IT”。
关注后,可以通过点击左下角的“文章目录”,通过输入三位数(记住!是三位数,目前第一位是0或者1)详细了解如何查看历史文章。
加入到微信群“当SDS遇见BlockChain"。希望大家一起学习和讨论,共同进步。添加时,请自我介绍姓名、公司名、所在城市等信息。