Simplechain的整体架构如下图:
顶层架构设计上
区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。
Simplechain最上层的是DApp,它是整个区块链的展示层,通过Web3.js和智能合约层进行交换,如Simplechain使用的是web3-js,区块链的应用层可以是移动端,web端,或是是融合进现有的服务器,把当前的业务服务器当成应用层。
所有的智能合约都运行在EVM(虚拟机)上,并会用到RPC(Remote Procedure Call Protocol,远程过程调用直观说法就是A通过网络调用B的过程方法)。
在EVM和RPC下面是Simplechain的四大核心内容,包括:blockChain, 共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在Simplechain的客户端sipe里。
从数据结构来看
协议层,是最底层的技术。这个层次通常是一个完整的区块链产品,类似于我们电脑的操作系统,它维护着网络节点,仅提供Api供调用。网络编程、分布式算法、加密签名、数据存储技术等4个方面,分布式算法基本上属于业务逻辑上的实现,什么语言都可以做到,加密签名技术是直接简单的使用,数据库技术也主要在使用层面。
存储层:
一个区块(Block) + 链表及区块链数据结构。Simplechain中使用的数据库是levelDB。
网络层:
p2p网络,P2P网络的实现和并发处理才是开发的难点,所以对于那些网络编程能力强,对并发处理简单的语言,Nodejs开发区块链应用,逐渐变得更加流行,Go语言就开始很火了。
共识层:
也就是激励层,通过挖矿机制,制定区块链的获取货币的方式。比如比特币用的是POW(Proof of Work工作量证明机制):电脑的性能越好,越容易获取到货币奖励。还有POS(Proof of Stake权益证明机制):类似于众筹分红的概念,会根据你持有的货币数量和时间,给持有者发放利息。
扩展层:
类似于电脑的驱动程序,Simplechain中这部分包括了EVM(虚拟机)和智能合约两部分。是为了让区块链产品更加实用,比如Simplechain的“智能合约”的概念,这是典型的扩展层面的应用开发。
合约层:
以往的区块链是没有这一层的。所以最初的区块链只能进行交易,而无法用于其他的领域或是进行其他的逻辑处理。但是合约层的出现,及智能合约”就是“可编程合约”,或者叫做“合约智能化”,其中的“智能”是执行上的智能,也就是说达到某个条件,合约自动执行使得在其他领域使用区块链成为了现实。
应用层:
类似于电脑中的各种软件程序,区块链的展示层。DAPP产品其实也是这个层面的应用,将智能合约发布到区块链上,人们通过地址对这个区块进行访问继而和智能合约交互,Simplechain使用的web3-js.区块链的应用层可以是移动端,web端,或是是融合进现有的服务器,把当前的业务服务器当成应用层。基于此开发的DAPP其实就是在智能合约基础上封装了一层Web应用,发行代币等都是在这个层面,通过DAPP提供的Web应用和智能合约交互。
聚合链架构
SimpleChain设计了一主链多子链的聚合链结构,支持多种业务场景的区块链部署与扩展。SimpleChain主链采用成熟的PoW机制,而子链可根据业务需求设置适合自己场景的共识算法,通过原子交换或跨链节点与主链形成双向锚定的方式,与其他子链进行跨链交易。这种主子链机制可帮助子链在满足每秒数千级别性能的前提下同时获得SimpleChain主链所提供的最终一致性保障。
Simplechain子链既可以是公链,也可以是联盟链,其链结构与主链类似(见区块链架构设计),但因业务需求不同,可以采用不同的共识算法,达到数千的TPS性能,或者其他的定制开发功能。
主链和子链之间通过跨链协议达到互相锚定,信息互通和资金流动的目的。跨链协议(见跨链协议)采用自由公证人机制,全网生态的任何用户皆可参与和监督,切实发挥社区自理能力,有效保障跨链信息可靠,交易安全有序。同时Simplechain基金会开展了主子链经济模型研究,建立一套Simplechain生态系统持续健康发展的激励机制,在该机制的作用下,主子链生态将协同融合,互相促进,共同发展。