区块链技术何去何从(四)?

关于这个系列,专员之前已经写了大概三篇了,专员在这个系列的观点其实并不一定是主流的观点,只是专员在日常的学习和工作中总会遇到一些区块链技术的瓶颈问题,结合着专员小伙伴跟专员介绍的一些方向和专员自己的自己的思考来跟大家介绍的。这个系列,在专员的记忆中应该很久没更新了,之前主要是介绍了专员对区块链中共识协议,虚拟机模块以及密码学模块三个方向发展思路的介绍和想法。小伙伴们,要是有想法可以回过头去看一下,《区块链技术何去何从(一)?》,《区块链技术何去何从(二)?》,《区块链技术何去何从(三)?》这三篇文章。

专员简单的概括一下,针对共识协议,专员觉得主要是三个方向:低能耗,分层共识和部分共识;针对虚拟机模块,虚拟机更加多样化,安全性也会更高;而密码学模块主要方向就是高效率,隐私保护以及高安全。

而今天,专员主要是想讲讲存储模块的优化

1

简单介绍一下现在的存储模块的一些事情

其实,专员觉得,现阶段做公链的很少会注意到存储本身的优化,其实也是有原因的,因为其实现在公链的瓶颈也还没到存储的模块,更多主要的是共识模块导致整个区块链网络的效率低下,但其实在联盟链领域,很多时候会发现,存储模块就会是一部分的瓶颈了,所以也有技术人员在这方面着重思考。

首先来聊一下最近很火的EOS RAM

EOS要达到百万级别的TPS,必然会遇到存储瓶颈的问题,但是EOS的解决方案其实就是EOS RAM,最近也闹得特别火,其实学过计算机的人都知道,内存的存储效率会大大大高于硬盘存储的效率,但是有个问题就是说内存的数据是不能持久化的,也就是说,一旦系统宕机,数据就不能恢复了。但是EOS则是通过超级节点这个架构体系的优化,来解决了这个宕机这个事情。也就是通过RAM这种内存级别的存储优化来提高了整个网络的存储效率。

但是,其实现在很多模式,还是要把数据持久化下来的.

比如现在日益发展壮大的以太坊

其实整个存储模型就很简单,最最底层的持久化存储引擎就是LevelDB,Leveldb是一个google实现的非常高效的kv数据库,LevelDB也是开源的大家有兴趣也是可以去研究一下的。专员简单的介绍一下LevelDB吧,LevelDB是一个基于LSM树的存储引擎,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。但是,LevelDB的架构始终也是有存储的性能的,一旦存储数据量过大,LevelDB会不断的Compaction,导致整个数据写入以及读取的效率大大降低,但是我们都知道,以太坊数据也会日益增大,导致整个区块链网络的性能也会降低。

现在的处理方向专员觉得主要有那么几个:

首先针对区块链连续性区块数据的特点,编写特殊的存储引擎,利用磁盘的顺序写的效率高的特点来特高存储的效率,现阶段,专员发现超级账本的fabric已经逐渐往这个方向发展了。

其次,是针对数据量大的问题,利用分布式数据来存储数据,例如EOS利用IPFS来进行某些大数据量的存储,利用分布式存储的特点来进行分散单机存储压力的特点,由此可以降低LSM类引擎大数据量存储效率低下的问题。

最后,针对LSM类型的存储引擎的读取效率的低下,很多区块链项目逐步通过增加完善的Cache机制来进行读取方面的存储的优化,使读取的数据能够尽量在Cache层面目中,不必在LevelDB等持久化引擎中读取,大大提供数据读取的效率。

文末

综上,专员觉得,其实区块链很多技术都是传统技术演变并且优化得来的,专员所说的那些方案,其实放在传统的互联网模式中也会不断的被用到,而区块链也能很好的借助这种思维去优化自己的整个系统网络,是区块链的执行效率更高,能够帮助更多的业务实现落地,使区块链能真正的用到实处。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180730G0T6PW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券