全面解析FinChain金融链的区块链框架
image 区块链金融 10/12

众所周知,区块链技术领域有三大生态体系: 一是比特币生态系 ,包括作为区块链鼻祖的比特币与其众多的分叉币; 二是以太坊生态系 ,包括以太坊和众多基于以太坊的智能合约项目; 第三种便是石墨烯生态系 ,以BM所创立的Bitshares,Steem, EOS为代表,同样基于石墨烯框架开发的知名区块链项目还有 金融链JRC 、YOYOW、公信宝等等。

而石墨烯区块链技术(Graphene Blockchain Technology)是由天才区块链开发者丹尼尔·拉里默(BM)领导开发的, 用C++实现的一个开源的区块链开发框架。

全面解析FinChain金融链的区块链框架

石墨烯框架中设计和实现了区块链的基本功能, 如DPOS共识、P2P,对象模型、存储、插件机制等多方面的内容。 在石墨烯框架上,结合业务进行二次开发,可以实现满足特定业务功能的区块链。bitshares、steemit、EOS、金融链JRC都是基于石墨烯框架实现的。

石墨烯体系的主要优势包括高效的处理能力、极低的网络手续费、公平的社区管理方式、完善的账户和资产管理功能等等。

所以,石墨烯区块链技术是目前最受瞩目的区块链技术。下面我们就详细说说石墨烯框架的 区块结构、存储、共识算法 方面的内容。

1 区块结构

链式区块的基本数据结构都是一棵树,石墨烯的区块链也不例外,一个区块中包含上一个区块的id,每个区块的id为区块内容的MAC。

全面解析FinChain金融链的区块链框架

石墨烯的区块链中,每个block由block header和transaction list构成。block header中包含previous、block_num、digest、witness和transaction_merkle_root等主要内容。其中previous为前一个块的id,digest为块id,witness为出块者。transaction list为本块打包的交易集合,transaction list的结构与其他区块链不一样。石墨烯的transaction list中的每个transaction并不只是一个交易的操作,而是支持多个operation的集合。一个operation是一个基本操作的定义,如转账、投票等。一个transaction里可以包含多个operation。但是这些在一个transaction里的operations依然保持事务的特性,也就是在同一个transaction里的operation要么都执行,要么都不执行。石墨烯区块链没有独立的虚拟机,不支持智能合约。所有操作都由operation来定义,如gas计算、撮单等。如果需要扩展operation,只需要实现相应的接口即可。

2 存储

石墨烯中的存储使用的是文件存储。也就是说石墨烯中所有数据都以文件的形式进行组织和管理,并没有使用数据库。这样的存储选择有着明显的特点,框架需要实现数据的管理功能,石墨烯框架在启动和运行时,需要将大部分数据加载到内存,因此对内存的要求非常之高。石墨烯框架中定义了对象模型和索引模型,所有的对象实例都有一个全局唯一的id编号。

全面解析FinChain金融链的区块链框架

一个对象编号包括三部分内容,space_id、type_id和id。space_id标识是否协议对象,正常都为1,type_id表示对象类型,id为此类型是第几个创建的实例。space id 占最高 8 位, type id 占中间 8 位, 最低 48 位是 id。如一个账户的对象id为1.2.12376。石墨烯的对象索引实现其实使用的是vector和map,由于所有的索引数据都会加载到内存,所以B+树无法发挥减少IO的优势。

3 共识算法

石墨烯的共识算法使用的是DPOS机制,系统中最重要的角色是witness(节点)和committee(理事会)。witness是通过投票产生的,系统有个witness维护时间周期,每到周期进行一次witness、committee等的更新。Committee由得票最多的11个人组成,Committee的职责是修改系统参数,无法左右出块。Witness负责出块。

其中投票统计和洗牌过程决定了出块的witness。

全面解析FinChain金融链的区块链框架

在收到一个new block时,如果new block前一个block不是当前块,并且如果块高比当前块高要高,则系统会进行分叉判断和处理:

1)找到两个叉的LCA。

2)回滚到LCA。

3)沿最长链,依次push_block()。

石墨烯通过记录每一步的undo日志,实现了操作的回滚。每当出现切换分支时,先找到最近公共祖先进行回滚操作,然后执行新的block的操作。

石墨烯的共识中,并没有对数据状态进行共识,只对操作序列进行共识。也就是说,如果出现某个节点的数据状态不一致,只有事务还能正常执行,那么这些不一致并不会被发现,也不影响整个链的运行。

全面解析FinChain金融链的区块链框架

FinChain金融链也是基于石墨烯底层架构的项目,不过FinChain金融链在石墨烯框架之上,进行了许多必要的创新开发。

最大的创新就是共识算法。

其它项目都是直接基于石墨烯体系采用的DPOS共识机制,但FinChain金融链在石墨烯框架内独创InFi-loop共识机制: 21节点为组实现无限循环,性能规模和安全之间首次实现完美均衡。

具体而言就是无限分组循环共识机制,将节点分为21xN组。 也是21个超级节点记账,但这21个超级记账走完一边后,由下一组记账,接着下下一组,就这样一直到最后一组。每组都有21个超级节点,21个记账人,等到最后一组记完账后,将所有节点打乱,重新分组,重新记账。这相当于无限循环,而且每个人记账人都是平等的。

全面解析FinChain金融链的区块链框架

FinChain金融链采用无限循环共识机制最主要的目的是利益最大化、成本最小化,兼具了公平、性能和效率。既保证了秒级的共识验证,又尽可能的打破垄断,让更多的人参与记账。

展望未来,无论区块链技术如何演变,兼具快速交易和吞吐量大等优点的石墨烯技术也依旧会成为很多技术团队首选的技术方向。反过来,如此巨大的行业需求,将会成为石墨烯技术稳步发展的重要基石,值得所有区块链投资者长期的关注。

简介:
众所周知,区块链技术领域有三大生态体系:一是比特币生态系...
本文采集自互联网,如有版权问题请联系我们进行处理。
联系方式:system@shangyexinzhi.com
2000+知识点 7000+案例
商业新知助力数字化转型
下载