【揭秘区块链技术从入门到精通】比原链总体设计&架构解读视频连接:html
优酷视频:https://v.youku.com/v_show/id_XMzcxNjc1NjQwMA==.html算法
腾讯视频:https://v.qq.com/x/page/l0718b48kp4.html数据库
Bilibili:https://www.bilibili.com/video/av26608101网络
本文将会给你们介绍一下比原链整体的技术架构。以下图所示:比原链分为三个层次架构
第一层就是你们接触比较多的钱包层,就是进行收款和打款的模块,钱包通常带操做界面,你们均可以平常使用,因此会比较熟悉。分布式
第二层是最核心的内核层,内核能够理解为分布式系统中每一个节点认同的一套规则,只有有相同的规则,两个节点才能达成一致。若是规则不一样,其实就是发生分叉了。ide
第三层是通讯层,通讯层是节点之间交换信息的方式,包含区块同步,交易同步等。性能
首先来看内核层,内核层主要由五个模块构成:区块链
孤儿块管理:孤儿块就是由矿工挖出但未成为主链区块的区块(在相同高度产生2个甚至更多的合法区块,一个区块成为主链,剩下的则称为孤儿块),孤儿块管理就是将未成为主链区块的孤儿块存储起来。.net
共识层:确认一个块是否合法。分为区块头验证和交易验证。区块头验证须要验证它的父块和时间戳,同是须要算力来保证记帐权利。交易验证比原特别的设计了一层BC层,这层在交易验证时会得到更好的性能,交易验证还和智能合约相关,交易被验证时参数会参入虚拟机验证该交易是否合法。
区块树管理:又成为Block Index,做用是记录全网全部的块,保存了全网全部块的一张镜像图。由于有孤儿块,全部它并非链式结构的,会有分叉的状况,因此称为区块树
数据存储:将区块数据作持久化存储。包含两种数据,第一种是区块数据,会在网络上进行广播的原生区块信息;第二种是UTXO数据,存储UTXO数据是为了更快的验证一笔UTXO是否能够花费,而不须要去遍历全部区块信息
交易池:维护了全部全网发出的可是还未被确认的交易。跟它关联最大的是挖矿模块,挖矿模块每次要产生一个新区块的时候,它会从交易池拿一些交易打包成块,而后用Tensority共识算法进行工做量验算。
而后来讲一下钱包层:
私钥模块:主要用于管理私钥(私钥的生成,存储,备份等)和签名。
帐户模块:在比原的设计中,使用了帐户-地址-密钥三层体系,每一个人能够拥有多把私钥,经过私钥不一样的组合形式造成帐户,每一个帐户能够又无限多个地址,地址是由帐户的私钥派生出的二级私钥造成的地址,使用多地址能够更好的保护用户的隐私。
资产模块:管理帐户下建立资产的模块,任何issue的资产都是在这个模块中交互。
交易模块:能够理解成跟我相关的交易数据,它主要作了两件事:
将和你相关的交易从全部交易所中筛选出来;
维护钱包层UTXO的数据库,记录本人所拥有的UTXO;
最后说一下通信层:
节点发现:P2P相关,是很是独立和成熟的一块,经过节点发现这个模块得到种子节点,而后经过种子节点来获取其余更多的节点。
交易同步:在各个节点以前同步交易。
区块同步:又称为被动区块同步,若是发现存在区块高度高于本身的其余节点时,不断请求区块同步。
新区块快速广播模块:新区块主动同步,当挖到一个新的区块时进行强制广播,从而更快的在全网传播。
上述内容为比原链的基本架构,后续咱们将进一步深刻探讨和讲解具体流程。