BigchainDB项目及相关资料
BigchainDB是在一个企业级的分布式数据库上构建的,采用Tendermint共识,具有高吞吐量,大容量特性,全NoSQL查询语言支持。针对BigchainDB研究,整理相关资料。
更多区块链技术应用内容分类:
一. BigchainDB架构与关键组件
1.网络架构
如下图所示,在BigchainDB中,每个节点拥有自己独立的mongodb数据库,节点之间的通信采用Tendermint协议。当节点本地的MongoDB数据库受到攻击时,其他节点的MongoDB数据库不会受到影响。
网络架构示意图
内容来自:https://docs.bigchaindb.com/en/latest/query.html
2. 服务组件
在BigChainDB网络中,每个节点必须包括BigchainDB Server、MongoDB Server以及Scalable storage for MongoDB。这些关键组件的关系如下图所示,其中BigChainDB server必须能够与所有mongod实例相连,所有的mongod之间相互连接组成分布式数据库。
单节点组件服务示意图
综上所述,BigchainDB是在一个企业级的分布式数据库上构建的,因此BigchainDB继承了高吞吐量,大容量,全NoSQL查询语言支持,高效的查询和权限管理。因此可以通过增加节点来增加吞吐量和容量。
二.源码
语言:Python
源码:https://github.com/bigchaindb/bigchaindb
三.共识:Tendermint(一种拜占庭容错)
BFT共识之Tendermint算法介绍:
https://blog.****.net/niyuelin1990/article/details/80537329
https://cloud.tencent.com/developer/news/217750
Tendermint框架
Tendermint框架由两部分组成:Tendermint Core以及ABCI (Application BlockChain Interface)。Tendermint Core也就是Tendermint的核心,是POS+BFT共识引擎。应用是指基于Tendermint Core的区块数据的具体应用。ABCI是Tendermint Core和应用间的接口。
四.智能合约
支持合约:ERC-20 (fungible token) or ERC-721 (non-fungible token)以太坊合约
https://docs.bigchaindb.com/en/latest/smart-contracts.html
五.存储结构——MongoDB数据库
MongoDB介绍:
https://www.cnblogs.com/clsn/p/8214194.html
MongoDB优点:
MongoDB的3大技术特色
除了上图所示外MongoDB还支持:二级索引、动态查询、全文搜索 、聚合框架、MapReduce、GridFS、地理位置索引、内存引擎 、地理分布等一系列的强大功能。
MongoDB缺点:
- 多表关联: 仅仅支持Left Outer Join
- SQL 语句支持: 查询为主,部分支持
- 多表原子事务: 不支持
- 多文档原子事务:不支持
- 16MB 文档大小限制,不支持中文排序 ,服务端 Javascript 性能欠佳
六.基于MongoDB的大数据系统搭建
如果使用该链作为数据存储的底层,则大数据平台可采用MongoDB + Spark架构。
MongoDB + Spark方案:
https://blog.****.net/u011596455/article/details/77018202
七 其他
1.官方文档:
https://docs.bigchaindb.com/en/latest/
2. BigchainDB白皮书中文
https://blog.****.net/u010159842/article/details/79635694
3. BigchainDB分布式数据库分析
http://www.elecfans.com/blockchain/833231.html
4. 新型数据库区块链与人工智能
http://www.raincent.com/content-10-8273-1.html
原文链接:BigchainDB项目及相关资料
来源【关注区块链及新金融科技的个人网站】:https://www.wanghaoyi.com/