CN109978546A - 一种联盟区块链架构及其分级存储和交易穿孔方法 - Google Patents
一种联盟区块链架构及其分级存储和交易穿孔方法 Download PDFInfo
- Publication number
- CN109978546A CN109978546A CN201910274204.7A CN201910274204A CN109978546A CN 109978546 A CN109978546 A CN 109978546A CN 201910274204 A CN201910274204 A CN 201910274204A CN 109978546 A CN109978546 A CN 109978546A
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- node
- chain
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供了一种联盟区块链架构,采用交易多级存储的联盟链架构,由多个节点构成,将节点作为联盟链的通信主体,每个节点有与之对应的组织或个人,每个加入联盟链的节点都需要获得授权,即用户注册证书,只有获得授权的节点才能修改和查询链上记录,节点分为:客户端、排序节点、存储节点和交易处理节点,客户端将交易请求提交给交易处理节点,交易处理节点之间协同处理交易请求,然后将处理完成的交易请求提交给排序节点,排序节点将交易按时间顺序排序,并打包成区块,返回给交易处理节点,交易处理节点将新生成的区块广播给存储节点,存储节点之间互相广播新区块,并将区块存储至本地账本中。还提供相应的分级存储和交易穿孔方法。
Description
技术领域
本发明涉及一种区块链技术领域,特别是涉及一种联盟区块链架构及其分级存储和交易穿孔方法。
背景技术
区块链实质上是一个由多方参与共同维护的持续增长的分布式账本,每个参与方都可以获得一份完整的账本拷贝,其特点在于:账本不断增长且不可篡改,通过多方协作对账本内容达成共识,账本去中心化存储。作为区块链的一种,联盟链上的参与方都被要求是可信的,即每个参与方都需要获得联盟链上的信用证书。
作为区块链技术的一种,联盟链的各个节点通常有与之对应的实体机构组织,每个组织或机构控制一个或多个节点,通过授权节点才能加入与退出网络。各组织机构组成利益相关的联盟,联盟链上的读写权限、参与记账权限由联盟成员共同制定。联盟链使得交易可以做到接近实时的校验和确认、自动结算,同时监管者可以利用密码学的安全保证来审计不可篡改的日志记录。由于联盟链能够控制节点的准入,在一定程度上保护了交易的隐私,因此适合于机构间的交易、结算或清算等B2B场景。
联盟链与广义的区块链相比,可以看作是部分的去中心化,节点得到精简,只有有限个参与方,它能够提供更快速的交易速度,与此相对的是存储成本的提高,在交易无限增长的情况下,每个节点都存储完整的交易记录是不现实的,不但占用大量的存储资源,还增加了交易追溯的时间成本。具体来说,随着交易数量的不断增长,数据库也不断增大,联盟链要求在一笔交易达成后向全网广播,系统内每个节点都要进行数据备份,此时用户运行一个完整节点时将会带来巨大的存储成本。为此,许多联盟链采用分链架构来提高联盟链的可扩展性和隔离性。但是,尽管采取了分链架构,在同一条链上各个节点的存储性能也会存在着较大差异,并非所有节点都有能力储存完整的区块链。在交易量飞速增长下,交易的分级和分类存储问题成为了联盟链商用道路上的一大难点。
发明内容
有鉴于此,为了解决联盟链存在的存储局限问题,提高联盟链的交易效率。本专利构建了一种联盟区块链架构,采用交易多级存储的联盟链架构,并设计了相应的分级存储和交易穿孔方法。
本发明的目的在于提供一种联盟区块链架构,采用交易多级存储的联盟链架构,由多个节点构成,将节点作为联盟链的通信主体,每个节点有与之对应的组织或个人。每个加入联盟链的节点都需要获得授权,即用户注册证书,只有获得授权的节点才能修改和查询链上记录,所述节点分为:客户端、排序节点、存储节点和交易处理节点,其中:
所述客户端代表用户最终操作的实体,用户通过所述客户端向联盟链发起请求;
所述排序节点负责完成所述区块链上的共识,所述共识是所有节点就所述区块链上存储账本内容达成一致,保证所有节点都存储着相同的账本拷贝;
所述存储节点负责存储账本,维护账本文件的完整性;
所述交易处理节点为特殊的动态存储节点,在交易过程中,部分所述存储节点分化为所述交易处理节点,处理客户端发来的交易请求;
所述节点的工作流程包括:所述客户端将交易请求提交给所述交易处理节点,所述交易处理节点之间协同处理交易请求,然后将处理完成的所述交易请求提交给所述排序节点,所述排序节点将交易按时间顺序排序,并打包成区块,返回给所述交易处理节点,所述交易处理节点将新生成的区块广播给所述存储节点,所述存储节点之间互相广播新区块,并将区块存储至本地账本中。
优选的,所述本地账本会以文件的形式被永久记录在所述存储节点中,所述文件形成区块,每一个所述区块存储着一段时间内产生的交易记录,所有区块构成一个链表,每一个区块内包含该区块的哈希值、该区块生成时间戳、前一个区块的哈希值和交易集,所述交易集是由一组交易按时间顺序排列的交易集合,从而使得整个区块链持续增长且数据不可逆。
优选的,根据一段时间内相关交易产生的密集度及相关交易总长度的差异,将所述联盟区块链上的所述交易划分为活跃交易和不活跃交易,划分方式如下:
①定义时间长度常量T1和常数α,在某一时间段t内,若链上产生的相关交易数量n>α,且t<T1,则这些交易都是活跃交易;
②定义时间长度常量T2和常数β,有长度为l的相关交易链,这些交易生成时间的最大时间间隔都不超过时间范围T2,若l>β,则该交易链上的交易都是活跃交易。
使用活跃度来标记交易的活跃程度,活跃度是一个二元组其中:
设有一相关交易组Group={Tx1,Tx2,...,Txi},Group的活跃度为定义可取的最低阈值,采用几种取值及对应的Group活跃状态:
根据交易活跃度将交易分类为高活跃交易、低活跃交易、存活交易和死亡交易。
本发明的目的还在于提供一种针对联盟区块链架构的交易分级存储的方法,所述存储节点被分为四个等级,分别为:
(1)一级存储节点:一级存储节点与客户端直接相连,只存储高活跃交易,将这类节点称为快速节点;
(2)二级存储节点:二级存储节点存储所有活跃交易,包括高活跃交易和低活跃交易,将这类节点称为近存储节点;
(3)三级存储节点:三级存储节点存储除了死亡交易外的所有交易,即存储活跃交易和生存交易,将这类节点称为远存储节点;和
(4)四级存储节点:四级存储节点存储所有链上产生的交易,包括活跃交易、存活交易和死亡交易,将这类节点称为归档节点;
交易依据活跃度,以块为单位存储在不同级别的存储节点中,在所述联盟区块链上,只将完整账本记录保存在少部分大型存储节点中,包括:
该联盟链为每个区块设置活跃度,存储在每个节点的区块索引中,设有区块block,分别存储着a个高活跃交易、b个低活跃交易、c个存活交易及d个死亡交易,为四类交易设权重wh、wl、ws和wd。block的区块活跃度为 则:
定义为可取的最低阈值,的取值及相应的区块活跃状态为:
所述一级存储节点存储高活跃区块;所述二级存储节点存储高活跃区块和低活跃区块;所述三级存储节点存储高活跃区块、低活跃区块和存活区块;所述四级存储节点存储高活跃区块、低活跃区块、存活区块和死亡区块。
优选的,对所述联盟区块链设置交易迁移机制,交易在节点间以区块为单位迁移,设区块在A级和B级节点间迁移,所述交易迁移机制实施步骤包括:
第一步,A级和B级节点定期更新本地区块索引中区块的活跃度;
第二步,A级和B级节点根据区块活跃度生成本地应存储的区块列表;
第三步,若A级节点区块列表包含本地未存储的区块,该区块存储在B级节点中,A级节点向B级节点广播迁移请求;
第四步,B级节点收到迁移请求,向A级节点广播该区块;
第五步,A级节点接收区块,修改区块索引中该区块的级别,并向B级节点广播迁移成功消息;
第六步,B级节点收到所有A级节点发来的迁移成功消息,修改区块索引中该区块的级别,若B级节点是A级节点的下级节点,B级节点在本地删除该区块。
优选的,对所述联盟区块链设置快速检索机制,从而在不同级别的所述存储节点中快速检索到指定的区块,所述快速检索机制包括为每个存储节点设置区块索引,索引存储所有区块的快速索引,节点通过区块号查找到指定区块的快速索引,获取级别字段,级别字段标示只有在该级别或之上级别的存储节点,才存储该区块的数据拷贝,客户端通过与快速节点连接参与所述联盟区块链上交易,如果客户端想要获取的交易记录在快速节点中没有保存,则快速节点通过区块索引向上级节点查询获取交易记录。
优选的,在交易过程中,相关交易的活跃度会根据交易的生成和删除而发生转换,包括:不活跃交易向活跃交易的转换以及活跃交易向不活跃交易的转换。
优选的,在所述联盟区块链中,所有交易划分为若干个相关交易组,当生成交易时,交易存储格式包括:
(1)组号,用于表明该交易所属的相关交易组;
(2)区块高度,是一个二元组,用于定位该交易所在的区块的区块号以及块内偏移;
每个所述存储节点所维护的相关交易组的状态元数据列表用于存储链上所有相关交易组的状态信息,其中状态元数据列表中每一行的存储格式包括:
(1)组号,用于标记一个相关交易组;
(2)活跃度,用于存储交易组的活跃度;
(3)交易链,是一个列表,存储交易组内所有交易的元数据,包括交易号、区块高度和前一个交易及状态,所述状态包括三种:正常、删除和标记,在计算交易组的活跃度时,只统计正常交易。
优选的,所述交易分级存储方法实施的交易流程包括:
第一步,客户端向快速节点提交交易请求,快速节点获取并处理交易请求;
第二步,快速节点生成完成该交易请求需要调用的交易记录集,并检查本地存储记录;
第三步,若交易记录集包含本地未存储的交易记录,快速节点通过区块索引向上级存储节点查询交易;
第四步,快速节点获取交易记录,在本地模拟交易;
第五步,快速节点将交易模拟结果和交易请求打包,提交至排序节点;
第六步,排序节点收集快速节点发送的交易请求,将交易按时间顺序排序,并将一系列排序后的交易打包成区块发送回快速节点。
第七步,快速节点将区块广播给上级存储节点,上级存储节点通过交易迁移机制将该区块迁移至相应级别的存储节点上。
本发明的目的还在于提供一种针对联盟区块链架构的交易穿孔机制,用于通过缩短相关交易链的长度,使交易不能一直保持在活跃状态,所述交易穿孔机制分为主动穿孔和被动穿孔,主动穿孔由用户自主发起,被动穿孔由系统自动完成,其中:
链上有相关交易组Group={Tx1,Tx2,Tx3,...,Txk,...,Txi},Group按时间顺序形成交易链,用户对交易链发起穿孔,选取交易Tx3和Txk,将它们从交易链上剔除,所述主动穿孔的步骤包括:
第一步,新建标记交易Tx3'和Txk',标记交易只存储区块高度和前一个交易的指针;
第二步,将T4和Tk+1的前一个交易指针分别连向Tx3'和Txk',并且将Tx3'和Txk'的前一个交易指针分别连向Tx2和Txk-1;
第三步,通过交易穿孔后,Group形成交易链被修剪;
第四步,在状态元数据列表中,往Group的状态元数据中添加Tx3'和Txk',并且删除Tx3和Txk,然后将Tx3'和Txk'的交易状态更改为标记;Group的交易链剔除了Tx3和Txk两个交易,链条长度得到缩短;
链上有相关交易组Group={Tx1,Tx2,Tx3,...,Txk,...,Txi},设定交易生存周期D,存在由连续交易构成的子集Groups={Txk,Txk+1,Txk+2,...,Txj},若Groups中所有交易的生成时间与链上最新交易生成时间的时间间隔大于生存周期D,则Groups满足被动穿孔条件,将会从Group的交易链上剔除子集Groups,所述被动穿孔的步骤包括:
第一步,若Group中第一个交易为Tx1,且Tx1∈Groups,将Tx1从Groups中移除;
第二步,为交易组Groups生成标记交易Txs,将Txs的前一个交易指针连向Txk-1,将Txj+1的前一个交易指针连向Txs;
第三步,在状态元数据列表中,往Group的状态元数据中添加Txs,并且删除交易组Groups,然后将Txs的交易状态更改为标记;
第四步,将Groups从Group交易链中剔除后,形成新的交易链,Group的交易链剔除了子集Groups,链条长度得到缩短。
本发明的有益效果:采用交易多级存储的联盟链架构的联盟区块链架构,并设计了相应的分级存储和交易穿孔方法,解决联盟链存在的存储局限问题,提高联盟链的交易效率。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为根据本发明实施例的联盟链的节点架构图。
图2为根据本发明实施例的区块链存储结构图。
图3为根据本发明实施例的区块索引的快速索引格式。
图4为根据本发明实施例的存储节点分级结构图。
图5为根据本发明实施例的区块链交易生成时交易存储的格式图。
图6为根据本发明实施例的存储链上所有相关交易组状态信息的行存储格式图。
图7为根据本发明实施例的分级存储下的交易流程图。
图8为根据本发明实施例的主动交易穿孔流程图。
图9为根据本发明实施例的主动交易穿孔中将交易从交易链中剔除第一流程子图。
图10为根据本发明实施例的主动交易穿孔中将交易从交易链中剔除第二流程子图。
图11为根据本发明实施例的被动交易穿孔流程子图。
图12为根据本发明实施例的被动交易穿孔中将交易从交易链中剔除的子流程图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此的描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
本实施例主要从节点架构、交易分类和分级存储机制几个方面来描述该架构。
1、联盟链的节点架构
本实施例将节点作为联盟链的通信主体,每个节点有与之对应的组织或个人。每个加入联盟链的节点都需要获得授权,即用户注册证书,只有获得授权的节点才能修改和查询链上记录。
本实施例设计了以下几类节点:客户端、排序节点、存储节点和交易处理节点。其中客户端代表用户最终操作的实体,用户通过客户端向联盟链发起请求;排序节点负责完成链上的共识,所谓共识,就是所有节点就链上存储账本内容达成一致,保证所有节点都存储着相同的账本拷贝;存储节点负责存储账本,维护账本文件的完整性;交易处理节点也是存储节点,它是动态的角色,在交易过程中,部分存储节点分化为交易处理节点,处理客户端发来的交易请求。
如图1所示,联盟链由多个节点构成,客户端将交易请求提交给交易处理节点,交易处理节点之间协同处理交易请求,然后将处理完成的交易请求提交给排序节点。排序节点将交易按时间顺序排序,并打包成区块,返回给交易处理节点。交易处理节点再将新生成的区块广播给存储节点,存储节点之间互相广播新区块,并将区块存储至本地账本中。
在存储节点中,账本会以文件的形式被永久记录,我们称这些文件为区块。每一个区块存储着一段时间内产生的交易记录,所有区块构成一个链表,每一个区块内包含该区块的哈希值(blockHash)、该区块生成时间戳(Timestamp)、前一个区块的哈希值(preHash)和交易集(Txsets),交易集是由一组交易按时间顺序排列的交易集合。这样使得整个区块链持续增长且数据不可逆。区块结构如图2所示。
2、交易分类
在联盟链上,一段时间内产生的相关交易数量及相关交易的总数量,往往存在较大差异。本实施例根据这一特性,对链上交易进行划分。将相关交易定义为:如果若干个交易对链上的同一个对象进行操作,则这些交易属于同一组相关交易。本实施例根据一段时间内相关交易产生的密集度及相关交易总长度的差异,将交易划分为活跃交易和不活跃交易,划分方式如下:
①定义时间长度常量T1和常数α,在某一时间段t内,若链上产生的相关交易数量n>α,且t<T1,则这些交易都是活跃交易;
②定义时间长度常量T2和常数β,有长度为l的相关交易链,这些交易生成时间的最大时间间隔都不超过时间范围T2,若l>β,则该交易链上的交易都是活跃交易。
使用活跃度来标记交易的活跃程度,活跃度是一个二元组其中:
设有一相关交易组Group={Tx1,Tx2,...,Txi},Group的活跃度为定义为可取的最低阈值,有以下几种取值及对应的Group活跃状态:
由上,根据交易活跃度将交易分类为高活跃交易、低活跃交易、存活交易和死亡交易。
3、存储节点分级与区块的快速检索机制
本实施例将交易按活跃度分类,活跃的交易会被频繁调用,不活跃的交易则很少被调用。因此,大部分存储节点不需要存储不活跃的交易。将存储节点进行分级,交易依据活跃度,以块为单位存储在不同级别的存储节点中。因此,在该联盟链上,只将完整账本记录保存在少部分大型存储节点中,减少了大部分存储节点的存储压力。
将存储节点分为以下四个等级:
(1)一级存储节点:一级存储节点与客户端直接相连,只存储高活跃交易,将这类节点称为快速节点。
(2)二级存储节点:二级存储节点存储所有活跃交易,包括高活跃交易和低活跃交易,将这类节点称为近存储节点。
(3)三级存储节点:三级存储节点存储除了死亡交易外的所有交易,即存储活跃交易和生存交易,将这类节点称为远存储节点。
(4)四级存储节点:四级存储节点存储所有链上产生的交易,包括活跃交易、存活交易和死亡交易,将这类节点称为归档节点。
由于在分级存储机制中,链上的区块由于活跃度不同,被放置在不同级别的存储节点中,为此我们设置了区块快速检索机制,支持在不同级别的存储节点中快速检索到指定的区块。本实施例为每个存储节点设置区块索引,索引存储所有区块的快速索引,格式如图3所示。
节点通过区块号查找到指定区块的快速索引,获取级别字段,级别字段标示只有在该级别或之上级别的存储节点,才存储该区块的数据拷贝。
如图4所示,客户端通过与快速节点连接参与链上交易,如果客户端想要获取的交易记录在快速节点中没有保存,则快速节点通过区块索引向上级节点查询获取交易记录。
4、交易在不同存储节点间迁移
4.1、交易活跃度的转换
在交易过程中,相关交易的活跃度会根据交易的产生和删除而发生转换。
有两种情况的交易活跃度转换:
①不活跃向活跃转换。有相关交易组Group={Tx1,Tx2,Tx3,...Txi},其活跃度为此时有新交易Tx加入Group,Group的活跃度转变为
若λ<T1/α且λ'>T1/α或Group由不活跃交易转变为活跃交易
②活跃向不活跃转换。有相关交易组Group={Tx1,Tx2,Tx3,...Txi},其活跃度为此时将交易Tx删除,Group的活跃度转变为
若λ>T1/α或λ'<T1/α且Group由活跃交易转变为活跃交易。
由上可知,在删除和新增交易时,有可能会更改相关交易组的活跃状态。
4.2、交易的生成和删除
在该区块链中,将所有交易划分为若干个相关交易组,当生成交易时,将交易存储格式如图5所示,其中,组号表明该交易所属的相关交易组,区块高度是一个二元组,用于定位该交易所在的区块的区块号以及块内偏移。
每个存储节点都需要维护一张相关交易组的状态元数据列表,存储链上所有相关交易组的状态信息,列表中每一行的存储格式如图6所示。
使用组号标记一个相关交易组,活跃度存储交易组的活跃度,交易链是一个列表,存储交易组内所有交易的元数据,包括交易号、区块高度和前一个交易及状态,分为三种状态:正常、删除和标记。在计算交易组的活跃度时,只统计正常交易。
用户可以生成和删除交易,对应的状态元数据列表改变方式如下:
①生成交易。链上有一对象object,有新生成的交易Tx对object进行操作,状态元数据列表中有相关交易组{Group1,Group2,...,Groupi},定义时间长度常量Tr。
首先,寻找对object进行操作的相关交易组,如果不存在对object进行操作的交易组,则新建相关交易组Groupi+1,将Tx放入交易组Groupi+1中;
如果有且仅有一个交易组Groupk对object进行操作,若Tx的生成时间与Groupk中最新交易生成时间的时间间隔大于Tr,则新建相关交易组Groupi+1,将Tx放入交易组Groupi+1中,若不大于Tr,将Tx放入交易组Groupk中;
如果存在不少于两个交易组对object进行操作,选择最新交易生成时间与Tx生成时间相隔最短的交易组Groupj,若时间间隔大于Tr,则新建相关交易组Groupi+1,将Tx放入交易组Groupi+1中,若不大于Tr,将Tx放入交易组Groupj中。
将Tx分组后,在状态元数据列表的对应行上,新增Tx的状态元数据,将Tx的状态修改为正常,其所属交易链的长度增一,并修改交易组的活跃度。
②删除交易。需要删除一个交易Tx时,系统通过组号定位到状态元数据列表的对应行,将该Tx状态元数据的状态字段修改为删除,其所属交易链的长度减一,并修改交易组的活跃度。
4.3、交易迁移机制
该联盟链为每个区块设置活跃度,存储在每个节点的区块索引中。设有区块block,分别存储着a个高活跃交易、b个低活跃交易、c个存活交易及d个死亡交易,为四类交易设权重wh、wl、ws和wd。block的区块活跃度为 则:
定义为可取的最低阈值,的取值及相应的区块活跃状态为:
一级存储节点存储高活跃区块;二级存储节点存储高活跃区块和低活跃区块;三级存储节点存储高活跃区块、低活跃区块和存活区块;四级存储节点存储高活跃区块、低活跃区块、存活区块和死亡区块。
交易在节点间以区块为单位迁移,设区块在A级和B级节点间迁移:
第一步,A级和B级节点定期更新本地区块索引中区块的活跃度;
第二步,A级和B级节点根据区块活跃度生成本地应存储的区块列表;
第三步,若A级节点区块列表包含本地未存储的区块,该区块存储在B级节点中,A级节点向B级节点广播迁移请求;
第四步,B级节点收到迁移请求,向A级节点广播该区块;
第五步,A级节点接收区块,修改区块索引中该区块的级别,并向B级节点广播迁移成功消息;
第六步,B级节点收到所有A级节点发来的迁移成功消息,修改区块索引中该区块的级别,若B级节点是A级节点的下级节点,B级节点在本地删除该区块。
4.4、分级存储下的交易流程
在分级存储架构下,每一个链上实体都需要从第三方证书机构获取注册证书,客户端与快速节点连接,客户端的请求都由快速节点来响应,在该联盟链架构下,链上的交易流程如图7所示:
第一步,客户端向快速节点提交交易请求,快速节点获取并处理交易请求;
第二步,快速节点生成完成该交易请求需要调用的交易记录集,并检查本地存储记录;
第三步,若交易记录集包含本地未存储的交易记录,快速节点通过区块索引向上级存储节点查询交易;
第四步,快速节点获取交易记录,在本地模拟交易;
第五步,快速节点将交易模拟结果和交易请求打包,提交至排序节点;
第六步,排序节点收集快速节点发送的交易请求,将交易按时间顺序排序,并将一系列排序后的交易打包成区块发送回快速节点。
第七步,快速节点将区块广播给上级存储节点,上级存储节点通过交易迁移机制将该区块迁移至相应级别的存储节点上。
5、交易穿孔机制
本实施例在联盟链上设置交易穿孔机制,目的是为了通过缩短相关交易链的长度,使交易不能一直保持在活跃状态。交易穿孔机制分为主动穿孔和被动穿孔,主动穿孔由用户自主发起,被动穿孔由系统自动完成。
(1)主动穿孔
链上有相关交易组Group={Tx1,Tx2,Tx3,...,Txk,...,Txi},Group按时间顺序形成交易链,如图8所示,用户对交易链发起穿孔,选取交易Tx3和Txk,将它们从交易链上剔除,剔除方式如下:
第一步,新建标记交易Tx3'和Txk',标记交易只存储区块高度和前一个交易的指针;
参见图9,第二步,将T4和Tk+1的前一个交易指针分别连向Tx3'和Txk',并且将Tx3'和Txk'的前一个交易指针分别连向Tx2和Txk-1;
参见图10,第三步,通过交易穿孔后,Group形成交易链被修剪为如图7所示;
第四步,在状态元数据列表中,往Group的状态元数据中添加Tx3'和Txk',并且删除Tx3和Txk,然后将Tx3'和Txk'的交易状态更改为标记。
Group的交易链剔除了Tx3和Txk两个交易,链条长度得到缩短。
②被动穿孔
链上有相关交易组Group={Tx1,Tx2,Tx3,...,Txk,...,Txi},设定交易生存周期D,存在由连续交易构成的子集Groups={Txk,Txk+1,Txk+2,...,Txj},若Groups中所有交易的生成时间与链上最新交易生成时间的时间间隔大于生存周期D,则Groups满足被动穿孔条件,将会从Group的交易链上剔除子集Groups,剔除方式如下:
第一步,若Group中第一个交易为Tx1,且Tx1∈Groups,将Tx1从Groups中移除;
第二步,参见图11,为交易组Groups生成标记交易Txs,将Txs的前一个交易指针连向Txk-1,将Txj+1的前一个交易指针连向Txs;
参见图12,第三步,在状态元数据列表中,往Group的状态元数据中添加Txs,并且删除交易组Groups,然后将Txs的交易状态更改为标记;
第四步,将Groups从Group交易链中剔除后,形成新的交易链,Group的交易链剔除了子集Groups,链条长度得到缩短。
采用本实施例构建的采用交易多级存储的联盟链架构的联盟区块链架构,并设计了相应的分级存储和交易穿孔方法,解决联盟链存在的存储局限问题,提高联盟链的交易效率。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。
Claims (10)
1.一种联盟区块链架构,其特征在于:采用交易多级存储的联盟链架构,由多个节点构成,将节点作为联盟链的通信主体,每个节点有与之对应的组织或个人,每个加入联盟链的节点都需要获得授权,即用户注册证书,只有获得授权的节点才能修改和查询链上记录,所述节点分为:客户端、排序节点、存储节点和交易处理节点,其中:
所述客户端代表用户最终操作的实体,用户通过所述客户端向联盟链发起请求;
所述排序节点负责完成所述区块链上的共识,所述共识是所有节点就所述区块链上存储账本内容达成一致,保证所有节点都存储着相同的账本拷贝;
所述存储节点负责存储账本,维护账本文件的完整性;
所述交易处理节点为特殊的动态存储节点,在交易过程中,部分所述存储节点分化为所述交易处理节点,处理客户端发来的交易请求。
所述节点的工作流程包括:所述客户端将交易请求提交给所述交易处理节点,所述交易处理节点之间协同处理交易请求,然后将处理完成的所述交易请求提交给所述排序节点,所述排序节点将交易按时间顺序排序,并打包成区块,返回给所述交易处理节点,所述交易处理节点将新生成的区块广播给所述存储节点,所述存储节点之间互相广播新区块,并将区块存储至本地账本中。
2.根据权利要求1所述的一种联盟区块链架构,其特征在于:所述本地账本会以文件的形式被永久记录在所述存储节点中,所述文件形成区块,每一个所述区块存储着一段时间内产生的交易记录,所有区块构成一个链表,每一个区块内包含该区块的哈希值、该区块生成时间戳、前一个区块的哈希值和交易集,所述交易集是由一组交易按时间顺序排列的交易集合,从而使得整个区块链持续增长且数据不可逆。
3.根据权利要求1所述的一种联盟区块链架构,其特征在于:根据一段时间内相关交易产生的密集度及相关交易总长度的差异,将所述联盟区块链上的所述交易划分为活跃交易和不活跃交易,划分方式如下:
①定义时间长度常量T1和常数α,在某一时间段t内,若链上产生的相关交易数量n>α,且t<T1,则这些交易都是活跃交易;
②定义时间长度常量T2和常数β,有长度为l的相关交易链,这些交易生成时间的最大时间间隔都不超过时间范围T2,若l>β,则该交易链上的交易都是活跃交易。
使用活跃度来标记交易的活跃程度,活跃度是一个二元组其中:
设有一相关交易组Group={Tx1,Tx2,...,Txi},Group的活跃度为定义为可取的最低阈值,采用几种取值及对应的Group活跃状态:
根据交易活跃度将交易分类为高活跃交易、低活跃交易、存活交易和死亡交易。
4.一种针对权利要求3所述的联盟区块链架构的交易分级存储方法,其特征在于:所述存储节点被分为四个等级,分别为:
(1)一级存储节点:一级存储节点与客户端直接相连,只存储高活跃交易,将这类节点称为快速节点;
(2)二级存储节点:二级存储节点存储所有活跃交易,包括高活跃交易和低活跃交易,将这类节点称为近存储节点;
(3)三级存储节点:三级存储节点存储除了死亡交易外的所有交易,即存储活跃交易和生存交易,将这类节点称为远存储节点;和
(4)四级存储节点:四级存储节点存储所有链上产生的交易,包括活跃交易、存活交易和死亡交易,将这类节点称为归档节点;
交易依据活跃度,以块为单位存储在不同级别的存储节点中,在所述联盟区块链上,只将完整账本记录保存在少部分大型存储节点中,包括:
所述联盟区块链为每个区块设置活跃度,存储在每个节点的区块索引中,设有区块block,分别存储着a个高活跃交易、b个低活跃交易、c个存活交易及d个死亡交易,为四类交易设权重wh、wl、ws和wd。block的区块活跃度为则:
定义为可取的最低阈值,的取值及相应的区块活跃状态为:
所述一级存储节点存储高活跃区块;所述二级存储节点存储高活跃区块和低活跃区块;所述三级存储节点存储高活跃区块、低活跃区块和存活区块;所述四级存储节点存储高活跃区块、低活跃区块、存活区块和死亡区块。
5.根据权利要求4所述的一种针对联盟区块链架构的交易分级存储方法,其特征在于:对所述联盟区块链设置交易迁移机制,交易在节点间以区块为单位迁移,设区块在A级和B级节点间迁移,所述交易迁移机制实施步骤包括:
第一步,A级和B级节点定期更新本地区块索引中区块的活跃度;
第二步,A级和B级节点根据区块活跃度生成本地应存储的区块列表;
第三步,若A级节点区块列表包含本地未存储的区块,该区块存储在B级节点中,A级节点向B级节点广播迁移请求;
第四步,B级节点收到迁移请求,向A级节点广播该区块;
第五步,A级节点接收区块,修改区块索引中该区块的级别,并向B级节点广播迁移成功消息;
第六步,B级节点收到所有A级节点发来的迁移成功消息,修改区块索引中该区块的级别,若B级节点是A级节点的下级节点,B级节点在本地删除该区块。
6.根据权利要求4所述的一种针对联盟区块链架构的交易分级存储方法,其特征在于:对所述联盟区块链设置快速检索机制,从而在不同级别的所述存储节点中快速检索到指定的区块,所述快速检索机制包括为每个存储节点设置区块索引,索引存储所有区块的快速索引,节点通过区块号查找到指定区块的快速索引,获取级别字段,级别字段标示只有在该级别或之上级别的存储节点,才存储该区块的数据拷贝,客户端通过与快速节点连接参与所述联盟区块链上交易,如果客户端想要获取的交易记录在快速节点中没有保存,则快速节点通过区块索引向上级节点查询获取交易记录。
7.根据权利要求4所述的一种针对联盟区块链架构的交易分级存储方法,其特征在于:在交易过程中,相关交易的活跃度会根据交易的生成和删除而发生转换,包括:不活跃交易向活跃交易的转换以及活跃交易向不活跃交易的转换。
8.根据权利要求7所述的一种针对联盟区块链架构的交易分级存储方法,其特征在于:在所述联盟区块链中,所有交易划分为若干个相关交易组,当生成交易时,交易存储格式包括:
(1)组号,用于表明该交易所属的相关交易组;
(2)区块高度,是一个二元组,用于定位该交易所在的区块的区块号以及块内偏移;
每个所述存储节点所维护的相关交易组的状态元数据列表用于存储链上所有相关交易组的状态信息,其中状态元数据列表中每一行的存储格式包括:
(1)组号,用于标记一个相关交易组;
(2)活跃度,用于存储交易组的活跃度;
(3)交易链,是一个列表,存储交易组内所有交易的元数据,包括交易号、区块高度和前一个交易及状态,所述状态包括三种:正常、删除和标记,在计算交易组的活跃度时,只统计正常交易。
9.根据权利要求4所述的一种针对联盟区块链架构的交易分级存储方法,其特征在于:所述交易分级存储方法实施的交易流程包括:
第一步,客户端向快速节点提交交易请求,快速节点获取并处理交易请求;
第二步,快速节点生成完成该交易请求需要调用的交易记录集,并检查本地存储记录;
第三步,若交易记录集包含本地未存储的交易记录,快速节点通过区块索引向上级存储节点查询交易;
第四步,快速节点获取交易记录,在本地模拟交易;
第五步,快速节点将交易模拟结果和交易请求打包,提交至排序节点;
第六步,排序节点收集快速节点发送的交易请求,将交易按时间顺序排序,并将一系列排序后的交易打包成区块发送回快速节点。
第七步,快速节点将区块广播给上级存储节点,上级存储节点通过交易迁移机制将该区块迁移至相应级别的存储节点上。
10.一种针对权利要求1-3任一所述联盟区块链架构的交易穿孔机制,用于通过缩短相关交易链的长度,使交易不能一直保持在活跃状态,其特征在于:所述交易穿孔机制分为主动穿孔和被动穿孔,主动穿孔由用户自主发起,被动穿孔由系统自动完成,其中:
链上有相关交易组Group={Tx1,Tx2,Tx3,...,Txk,...,Txi},Group按时间顺序形成交易链,用户对交易链发起穿孔,选取交易Tx3和Txk,将它们从交易链上剔除,所述主动穿孔的步骤包括:
第一步,新建标记交易Tx3'和Txk',标记交易只存储区块高度和前一个交易的指针;
第二步,将T4和Tk+1的前一个交易指针分别连向Tx3'和Txk',并且将Tx3'和Txk'的前一个交易指针分别连向Tx2和Txk-1;
第三步,通过交易穿孔后,Group形成交易链被修剪;
第四步,在状态元数据列表中,往Group的状态元数据中添加Tx3'和Txk',并且删除Tx3和Txk,然后将Tx3'和Txk'的交易状态更改为标记;Group的交易链剔除了Tx3和Txk两个交易,链条长度得到缩短;
链上有相关交易组Group={Tx1,Tx2,Tx3,...,Txk,...,Txi},设定交易生存周期D,存在由连续交易构成的子集Groups={Txk,Txk+1,Txk+2,...,Txj},若Groups中所有交易的生成时间与链上最新交易生成时间的时间间隔大于生存周期D,则Groups满足被动穿孔条件,将会从Group的交易链上剔除子集Groups,所述被动穿孔的步骤包括:
第一步,若Group中第一个交易为Tx1,且Tx1∈Groups,将Tx1从Groups中移除;
第二步,参见图11,为交易组Groups生成标记交易Txs,将Txs的前一个交易指针连向Txk-1,将Txj+1的前一个交易指针连向Txs;
第三步,在状态元数据列表中,往Group的状态元数据中添加Txs,并且删除交易组Groups,然后将Txs的交易状态更改为标记;
第四步,将Groups从Group交易链中剔除后,形成新的交易链,Group的交易链剔除了子集Groups,链条长度得到缩短。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910274204.7A CN109978546A (zh) | 2019-04-08 | 2019-04-08 | 一种联盟区块链架构及其分级存储和交易穿孔方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910274204.7A CN109978546A (zh) | 2019-04-08 | 2019-04-08 | 一种联盟区块链架构及其分级存储和交易穿孔方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109978546A true CN109978546A (zh) | 2019-07-05 |
Family
ID=67083211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910274204.7A Pending CN109978546A (zh) | 2019-04-08 | 2019-04-08 | 一种联盟区块链架构及其分级存储和交易穿孔方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109978546A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110490734A (zh) * | 2019-07-15 | 2019-11-22 | 杭州复杂美科技有限公司 | 交易组构建、广播方法和系统、设备及存储介质 |
CN111294356A (zh) * | 2020-02-11 | 2020-06-16 | 深圳壹账通智能科技有限公司 | 基于区块链的组织节点上链方法和系统 |
WO2019233500A3 (en) * | 2019-09-12 | 2020-07-09 | Alibaba Group Holding Limited | Log-structured storage systems |
CN111464335A (zh) * | 2020-03-10 | 2020-07-28 | 北京邮电大学 | 一种内生可信网络的服务智能定制方法及系统 |
CN112988470A (zh) * | 2021-04-27 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法、共识节点和系统 |
CN113362062A (zh) * | 2021-05-21 | 2021-09-07 | 山东大学 | 一种区块链交易排序方法、存储介质及设备 |
CN113538152A (zh) * | 2021-08-02 | 2021-10-22 | 浙江数秦科技有限公司 | 一种保护数据隐私的数据交易平台 |
CN114422151A (zh) * | 2022-03-29 | 2022-04-29 | 北京微芯感知科技有限公司 | 一种区块块内交易数扩展方法及系统 |
CN114553896A (zh) * | 2020-11-25 | 2022-05-27 | 富士通株式会社 | 信息处理系统、信息处理方法及计算机可读存储介质 |
CN114697343A (zh) * | 2022-03-08 | 2022-07-01 | 杭州锘崴信息科技有限公司 | 一种抗网络破坏的区块链系统及方法 |
CN115114378A (zh) * | 2022-08-31 | 2022-09-27 | 湖南三湘银行股份有限公司 | 基于区块链的债券配售数据存储方法及系统 |
CN115878729A (zh) * | 2023-03-03 | 2023-03-31 | 湖北省楚天云有限公司 | 一种基于联盟链的节点区块存储分配优化方法及系统 |
-
2019
- 2019-04-08 CN CN201910274204.7A patent/CN109978546A/zh active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110490734A (zh) * | 2019-07-15 | 2019-11-22 | 杭州复杂美科技有限公司 | 交易组构建、广播方法和系统、设备及存储介质 |
CN110490734B (zh) * | 2019-07-15 | 2022-05-24 | 杭州复杂美科技有限公司 | 交易组构建、广播方法和系统、设备及存储介质 |
WO2019233500A3 (en) * | 2019-09-12 | 2020-07-09 | Alibaba Group Holding Limited | Log-structured storage systems |
US10896006B1 (en) | 2019-09-12 | 2021-01-19 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
US11074017B2 (en) | 2019-09-12 | 2021-07-27 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
CN111294356A (zh) * | 2020-02-11 | 2020-06-16 | 深圳壹账通智能科技有限公司 | 基于区块链的组织节点上链方法和系统 |
CN111294356B (zh) * | 2020-02-11 | 2022-09-06 | 深圳壹账通智能科技有限公司 | 基于区块链的组织节点上链方法和系统 |
CN111464335A (zh) * | 2020-03-10 | 2020-07-28 | 北京邮电大学 | 一种内生可信网络的服务智能定制方法及系统 |
CN111464335B (zh) * | 2020-03-10 | 2021-04-23 | 北京邮电大学 | 一种内生可信网络的服务智能定制方法及系统 |
CN114553896A (zh) * | 2020-11-25 | 2022-05-27 | 富士通株式会社 | 信息处理系统、信息处理方法及计算机可读存储介质 |
CN112988470A (zh) * | 2021-04-27 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法、共识节点和系统 |
CN112988470B (zh) * | 2021-04-27 | 2021-09-07 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法、共识节点和系统 |
CN113362062B (zh) * | 2021-05-21 | 2024-01-05 | 山东大学 | 一种区块链交易排序方法、存储介质及设备 |
CN113362062A (zh) * | 2021-05-21 | 2021-09-07 | 山东大学 | 一种区块链交易排序方法、存储介质及设备 |
CN113538152A (zh) * | 2021-08-02 | 2021-10-22 | 浙江数秦科技有限公司 | 一种保护数据隐私的数据交易平台 |
CN113538152B (zh) * | 2021-08-02 | 2024-01-05 | 浙江数秦科技有限公司 | 一种保护数据隐私的数据交易平台 |
CN114697343A (zh) * | 2022-03-08 | 2022-07-01 | 杭州锘崴信息科技有限公司 | 一种抗网络破坏的区块链系统及方法 |
CN114697343B (zh) * | 2022-03-08 | 2023-10-27 | 杭州锘崴信息科技有限公司 | 一种抗网络破坏的区块链系统及方法 |
CN114422151B (zh) * | 2022-03-29 | 2022-07-05 | 北京微芯感知科技有限公司 | 一种区块块内交易数扩展方法及系统 |
CN114422151A (zh) * | 2022-03-29 | 2022-04-29 | 北京微芯感知科技有限公司 | 一种区块块内交易数扩展方法及系统 |
CN115114378A (zh) * | 2022-08-31 | 2022-09-27 | 湖南三湘银行股份有限公司 | 基于区块链的债券配售数据存储方法及系统 |
CN115114378B (zh) * | 2022-08-31 | 2022-10-28 | 湖南三湘银行股份有限公司 | 基于区块链的债券配售数据存储方法及系统 |
CN115878729A (zh) * | 2023-03-03 | 2023-03-31 | 湖北省楚天云有限公司 | 一种基于联盟链的节点区块存储分配优化方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109978546A (zh) | 一种联盟区块链架构及其分级存储和交易穿孔方法 | |
CN110399373A (zh) | 一种区块链账本存储系统、存储查询方法及删除方法 | |
US20210357390A1 (en) | Systems and methods for blockchain interlinking and relationships | |
US7636719B2 (en) | Contact schema | |
Dey et al. | Efficient techniques for online record linkage | |
CN109189782A (zh) | 一种区块链商品交易查询中的索引方法 | |
CN107247758B (zh) | 基于银行核心系统的数据处理方法 | |
KR102085140B1 (ko) | 전자 거래를 위한 인덱싱 블록체인 시스템 | |
CN105389370B (zh) | 一种面向社交活动组织的时间聚合查询方法 | |
WO2021057482A1 (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN106570145B (zh) | 一种基于分层映射的分布式数据库结果缓存方法 | |
CN110263225A (zh) | 一种千亿级知识图库的数据加载、管理、检索系统 | |
CN110493323A (zh) | 基于区块链的公平性文件分发方法、系统及存储介质 | |
EP3652660B1 (en) | Systems and methods for joining datasets | |
CN112598510B (zh) | 资源数据处理方法和装置 | |
CN113821500A (zh) | 一种基于政务服务场景的业务对象构建方法 | |
CN105959368A (zh) | 一种社交云热点资源预测与部署的方法 | |
CN110472111A (zh) | 权限管理、用户权限查询以及资源信息授权方法 | |
CN113643032B (zh) | 一种基于区块链的信息处理方法、装置及数据管理系统 | |
CN109949881A (zh) | 一种基于区块链的大数据处理方法及设备 | |
KR102594377B1 (ko) | 프라이빗 블록체인을 이용한 하이브리드 데이터베이스 시스템 | |
CN108280176A (zh) | 基于MapReduce的数据挖掘优化方法 | |
Memon et al. | Notice of Violation of IEEE Publication Principles: Harvesting Terrorists Information from Web | |
Dominguez | Groups and the party coalitions: A network analysis of overlapping donor lists | |
Li et al. | Research on network public opinion dissemination and risk management in the blockchain environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |