走进EOS的存储系统

互联网 2019-01-10 21:15:01

海量数据

在一个完全去中心化的区块链系统中,每个节点如果想验证某一笔交易是否正确,则必须下载完整的区块链数据,随着时间的推移,区块链的数据量呈线性递增,以比特币为例,每10分钟产生一个区块,区块大小为1MB,每年的区块增长速度为24 * 60 / 10 * 365 = 51.3GB,10年后,大概需要5T空间。EOS理论上可以达到百万TPS,按照一个交易数据100字节计算,1天的区块数据量为1000000 * 100 * 60 * 60 * 24 = 7.8TB,一年的区块数据量为7.8 * 365 = 2868TB,到了2023年大约需要14340TB的存储空间,另外,还需要包括智能合约代码以及用户上传的图片、视频等等,所以,普通的个人用户是无法承担如此巨大的存储空间的。

EOS存储量图表

EOS如何解决这个问题呢?生产者节点负责保存文件实际的数据,而客户端节点本地只保存文件的地址,所有客户端节点可以通过地址远程访问文件内容。这样可以为客户端节点节约大量的存储开销。

EOS文件寻址

IPFS分布式文件系统

EOS使用IPFS分布式文件系统作为底层存储。IPFS是一种内容可寻址、点对点、通过http协议传输的分布式文件系统。IPFS采用content-addressable寻址技术,即通过文件内容进行检索而不是通过文件的网络地址。简单来说,就是对文件内容进行hash运算,将hash值作为文件名保存在本地数据库中,所以,只要文件内容不变,则文件名也保持不变。

运行IPFS的节点,既是客户端又是服务器。客户端通过发送文件名到服务器,请求下载文件,服务器会根据文件名到数据库中查找对应的文件,查找成功后将文件发送给客户端,当文件下载完成后,客户端通过对文件内容进行hash运算,将hash值和文件名作比较就可以确定文件的完整性。

由于文件是在远程节点上保存,所以IPFS本身不能保证文件内容始终是可访问的,例如,文件被删除或者远程节点拒绝访问等等。所以,需要有一套完善的激励机制鼓励服务器节点提供稳定高效的存储服务。例如,在Filecoin系统中,用户需要为每次上传和下载文件支付一定的费用给服务器节点。但是,这种付费模式会引起一些用户的排斥,毕竟看着钱从腰包掏出来,而且一旦用户忘记续费,文件可能有被删除的风险。

EOS存储设计模型

为了获得IPFS存储空间的使用权限,用户需要持有一定数量的EOS存储代币(TOK)。每个EOS客户端需要定义一个本地home目录,用于存放IPFS文件链接。链接内容主要包括本地home目录路径、文件名(文件内容的hash值)、文件大小。

home目录

用户将文件链接打包成交易信息,签名后广播给区块生产者,然后用户通过EOS存储软件定义的标准化REST应用程序接口将文件上传到其中一个区块生产者。接着,这个生产者会校验文件内容hash值和文件大小是否正确,一旦校验成功,生产者会将交易信息广播给其它生产者并同步到TOK区块链上,表示文件已经保存成功。其它节点会通过IPFS网络同步保存文件信息。用户上传文件的流程如下:

IPFS文件上传流程

文件上传成功后,当客户端需要下载文件时,只需要将文件名发给生产者服务器,然后,服务器通过IPFS检索到对应的文件发送给客户端即可。一般来说,IPFS文件系统中的文件都是只读的,因为文件内容的细微修改就会导致客户端校验失败。

EOS存储的核心是IPFS,它提供了一个任何人都可以托管文件的去中心化网络,这些文件可以通过地址远程访问。区块生产者实际代表了21个超级节点,每个超级节点需要拥有支持高吞吐EOS交易量的数据中心,可以在全球范围提供文件托管服务,而且只要有至少一个超级节点在线,用户的文件就是可以访问的。

EOS存储经济学

1、区块生产者如何盈利

IPFS本身不能保证文件内容始终是可访问的,例如,文件被删除或者远程节点拒绝访问等等。所以,需要有一套完善的激励机制鼓励区块生产者提供稳定高效的存储服务。

EOS存储的商业模式有别于一般的云存储提供商的按时按量收费模式,例如Amazon S3。持有TOK的用户可以免费使用EOS存储服务,当用户上传文件后,所持有的TOK会通过智能合约锁定在区块链上,这些TOK不能交易或者被重复锁定。当用户删除文件后,TOK会自动释放,然后用户可以将TOK转卖或者进行下一次锁定。如果TOK的价格保持不变,则用户相当于免费使用了EOS存储服务。其实,TOK每年会增发5%,发给区块生产者作为贡献奖励,所以用户持有的TOK会不断贬值(假设TOK价格不变),相当于用户把持有TOK产生的利息作为服务费,付给区块生产者。

2、TOK存储配额

区块生产者们通过投票产生他们想要提供的存储容量,存储容量集合的中位数是所有生产者必须提供的预期容量。为了赢得选票,生产者会增加提供的存储容量。每年的TOK总量是一定的,所以,如果生产者提供的存储容量增加,那么持有一个单位TOK所能使用的存储容量就会相应增加。否则,一个单位TOK对应的存储容量就会减少:

TOK存储配额 = 存储总量 / TOK总量

3、TOK价格

和EOS token一样,TOK的价格也受二级市场的供求关系影响,如果EOS存储的需求增加,则被锁定的TOK数量会相应的增加,导致市场的流通的TOK就会减少,最终使得TOK的价格提高,持有TOK的用户不但可以免费使用存储服务,还可能在二级市场上转卖盈利;相反,如果使用EOS存储的用户数量减少,则流向市场的TOK数量增加,TOK价格就会降低,持有TOK可能会承担一定经济损失。

EOS带宽经济学

在EOS存储系统中,只有锁定了TOK的用户才能上传和下载文件,而普通的匿名互联网用户没有权限下载IPFS中的文件。比如,我们在EOS系统中部署了一个类似YouTube的视频分享网站,某个TOK用户上传了一部电影,然后希望所有互联网用户能够观看该视频。但是,视频发布作者并不希望为这些互联网用户支付TOK,来观看视频,而且这也是一笔巨大的开销。在这种情况下,如果每个视频观察者都为自己的带宽支付费用就完美了。但是,这种小额的高频支付方式会让用户感觉每次观看视频都要付费,所以,并不是一个理想的解决方案。更合理的方案是所有用户永久的锁定足够覆盖他们所需带宽的TOK。

那么,谁会为这些普通用户的带宽费用买单呢?答案是那些将业务部署在EOS系统上的DAPP开发商。这些开发商根据自己的业务规模购入适量的TOK,并通过锁定TOK为用户提供免费的带宽服务。对于用户来说,其实不感知DAPP业务的底层技术是中心化的还是去中性化的,只要开发商能够向用户提供优质的服务,那么就可以通过收取增至服务费来盈利。并且,企业购入的TOK也相当于一笔投资,未来还有增值的可能。

总结

通过彻底改变经济模式,EOS存储有潜力从根本上改变去中心化存储市场。通过消除了小额高频率的支付,EOS将促进应用程序的创新发展,例如,上述提到的去中心化视频分享应用。史上第一次,一个去中心化的托管服务平台可以媲美当前由中心化服务商提供的免费增值服务的托管平台。

相关阅读:

EOS代码架构及分析(一)

EOS代码架构及分析(二)

EOS代码架构及分析(三)

EOS代码架构及分析(四)

本文由作者“极简主义”首发于资讯,未经允许不得转载。

相关资讯Relevent