区块链技术架构分析(1)-存储系统

数据层是最底层的技术,主要实现了两个功能:数据存储、账户和交易的实现与安全。数据存储主要基于Merkle树,通过区块的方式和链式结构实现,大多以KV数据库的方式实现持久化,比如比特币和以太坊采用的leveldb。账户和交易的实现与安全这个功能基于数字签名、哈希函数和非对称加密技术等多种密码学算法和技术,保证了交易在去中心化的情况下能够安全的进行。

数据层的系统模型有很多,比如比特币的UTXO 模型、迅雷链的账户模型等。

数据存储系统--数据库

数据层的一大功能是存储,存储系统的选择原则是性能和易用性。一个网络系统的整体性能,主要取决于网络或本地数据存储系统的I/O性能,比如比特币用的是谷歌的LevelDB,据说这个数据库读写性能很好,但是很多功能需要开发者自己实现。

数据库的历史:在IT界,其实一个特别古老的研究领域。从最初的文件系统,到后来的ER实体关系模型。实体关系模型的提出催生了一系列伟大的数据库公司和软件,例如IBM的DB2, Sybase,Oracle,微软的SQLServer,MySQL等等。以及,由此引发了传统数据库的三大成就,关系模型、事务处理、查询优化。再到后来随着互联网的盛行,MangoDB为典型代表的NOSQL数据库崛起。数据库技术本身在不停的演进,且一直是热门的方向,也包括XML为代表的半结构化,基于文本、语音和图像的非结构化数据处理等。

伴随着现实的需求不断升级,数据库也在不断发展的,我们通过ER实体关系模型、通过NOSQL,能很好的解决数据存储和数据访问的Scalability问题。我们通过NOSQL数据库、云存储等技术解决了互联网海量数据的处理问题后,下一个问题接踵而至。那就是如何以一种规模化的方式解决数据真实性和有效性的问题。

区块链的数据库和传统分布式数据库的比较。

img

从图中可以看出,区块链的数据库使用技术还是数据库,知识在管理权限、数据节点分布、去中心化等部分有差异。区块链的不可篡改数据,必然伴随着数据存储的膨胀,这个会不会是一个问题呢?

区块链资源汇总

区块链学习资源大汇总
http://www.nextblockchain.top/topics/6

区块链常用数据BoltDB数据库源码解析
http://www.nextblockchain.top/categories/boltdb

golang系统教程
http://www.nextblockchain.top/categories/golang

你可能感兴趣的:(区块链技术架构分析(1)-存储系统)