CN108427601A - 一种私有链节点的集群交易处理方法 - Google Patents
一种私有链节点的集群交易处理方法 Download PDFInfo
- Publication number
- CN108427601A CN108427601A CN201710074936.2A CN201710074936A CN108427601A CN 108427601 A CN108427601 A CN 108427601A CN 201710074936 A CN201710074936 A CN 201710074936A CN 108427601 A CN108427601 A CN 108427601A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- cluster
- verification
- global state
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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
-
- 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/3825—Use of electronic signatures
Abstract
本发明提供了一种私有链节点的集群交易处理方法,包括如下步骤:(1)负载均衡,区块链集群节点接收上层应用层发来的交易,将其负载到不同的交易处理机上;(2)交易校验和交易执行,每个交易处理机接收负载均衡机发送来的交易对其校验,通过后进行交易执行;(3)生成全局状态树根和Merkle树根;(4)构建区块,将构建的区块广播到区块链网络中其他节点;(5)区块网络中的其他节点收到区块后,对区块进行校验;(6)共识区块决策。通过将区块链功能部署到一个集群中的不同节点,使交易执行以及区块构造和共识能在集群的不同节点并行执行,提高计算资源的利用率,加快区块链系统的性能,使区块链更适用于高频交易的业务场景。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及到高性能区块链模型的设计。
背景技术
近年来,区块链(BlockChain)获得来自各行各业的越来越多的关注,甚至各国战略层面的关注,被认为是“21世纪最创新的技术之一”。区块链是一个去中心化的、自治的、防止篡改、公开的、可追踪和可审计的分布式账本,是一个支持建立交易各方的信任机制、具有极大公信力的数字解决方案。区块链的这些特性使其对许多行业带来巨大的创新,甚至是颠覆性的革命,其中包括计算机(加密、通信、可信计算)、金融(数字货币和金融市场)、医疗、法律、税收、供应链、存证等领域,比较明显的应用如公共交易账本、数字版权保护、可信数字证据以及电子货币等。
区块链最早出现在比特币(Bitcoin)中。比特币是中本聪在2008年发明的一个P2P(Peer-to-Peer)电子现金系统,其目的是无需第三方来解决电子货币中双重花费(double-spending)的问题。由于比特币是一个自治系统,不为任何一个组织和个人所有,也很难做大货币监管,因此,大多数国家不承认比特币的货币特性。随着近年来社会数字化进程的推进,区块链技术脱离了比特币的限制,再加上智能合约(Smart Contract)、DAO/DAC(Decentralized Autonomous Organization/Corporation)等概念的引入,区块链具备了在各行各业广泛开展应用的前景。从金融、医疗、能源到保险、供应链、法律、存证、版权、社会救助等各个领域,人们都在积极探索区块链的应用场景、业务模式和实现方法,区块链在这些行业得到广泛应用将会在不久的将来实现。
从表面来看,区块链是一个由一个个的数据区块链接起来的数据链表,而本质上,区块链技术背后由很多技术来支持。因此其实质是将交易或数据加上时间戳,通过哈希函数进行散列,采用加密和数字签名技术保证数据安全和隐私,从而将数据打包成一个数据区块,并按时间顺序链接在一起后在P2P网络中传播,在各个区块链节点中进行冗余备份,通过共识算法达成全局一致并防止数据篡改。区块链的这种机制,在加上智能合约的引入,使其支持了各个行业的众多应用场景,形成了一个具有公信力的、安全自治的数据库系统。
但是,目前各种区块链系统的性能还是比较低,如使用时间最长的比特币系统每秒的交易数仅为7笔,一笔交易要等待6个区块的确认,而生成每个区块的平均时间为10分钟左右;而以太坊的区块确认时间在5-30s,每个块中的交易数量一般不超过1000笔;Hyperledger系统平均交易速度也仅仅有每秒几千笔,远远不能满足一些高频交易的业务场景,例如,Visa处理交易的峰值约为1.4万笔/秒。
根据CAP理论,分布式系统的数据一致性、可用性和分区容错性三个特性中只能同时满足两项,区块链作为一种典型的分布式模型也适用这个理论。对区块链共识算法的改进只是在CAP三者之间的平衡。而对于区块链这种去中心化的分布式模型,每个交易需要在所有节点进行校验和计算,因此,节点的计算能力成为制约区块链模型发展的瓶颈之一,如一个2.6GHz的i7核每秒只能做10000次数字签名校验,而校验只是交易开始执行的第一步。另外,当前的大多数区块链模型都是串行的流程,无法充分利用计算资源。
因此,现有技术存在一种需求,即针对区块链模型性能较低、不足以处理高频交易的问题,开发一种私有链节点的集群交易处理方法,使交易执行速度更高,使区块链系统吞吐率满足高频交易的场景。
发明内容
为解决区块链模型无法充分利用计算资源且性能较低的问题,本发明提出了一种私有链节点的集群交易处理方法。本发明解决技术问题方案的基本思想在于将区块链的流程进行功能切分,将不同功能模块分布部属到集群的不同机器上,整个集群互相协作,对外共同充当一个区块链节点,不同模块可以并行执行,交易执行机上可以不停的执行交易,而区块构造与校验机负责参与区块链网络的共识。
一种私有链节点的集群交易处理方法,包括如下步骤:
(1)负载均衡,即区块链集群节点接收上层应用层发来的交易,将其负载到不同的交易处理机上;
(2)交易校验和交易执行,即每个交易处理机接收到负载均衡机发送来的交易,首先对交易进行校验,校验交易数据通过后,进行交易执行;
(3)生成全局状态树根和Merkle树根;
(4)构建区块,将构建的区块广播到区块链网络中其他节点;
(5)区块校验,区块网络中的其他节点收到区块后,对区块进行校验;
(6)共识区块决策,如果区块通过共识,则将区块头部的全局状态树根代表的全局状态转换为稳定状态,并将区块进行持久化,如果区块没有通过验证,则将全局状态回滚到前一个稳定状态。
优选的,所述步骤(1)的所述交易分为价值转移类交易和数据存储类交易两类,对于所述价值转移类交易,根据其价值发送者和接受者将交易负载到不同的交易处理机上,对于所述数据存储类的交易,进行随机负载,将交易平均负载到不同的交易处理机上。
优选的,所述步骤(2)的所述交易校验包括校验交易的完整性和数字签名。
优选的,所述校验交易的完整性包括校验交易的各个数据区域是否正确的,所述校验数字签名用于验证交易是否合法的,是否是发送者同意的以及经认证的上层应用发来的交易。
优选的,每个交易是一个事务,符合事务的ACID特性,所述步骤(2)的所述交易执行修改一个全局状态树。
优选的,所述步骤(3)生成全局状态树根和Merkle树根按照如下流程进行:一批交易被执行后的一个全局状态被具体化为一个全局状态树根,全局状态树根将放到区块头部,等待区块链网络确认,对这一批交易的每个交易进行哈希,将哈希后的交易再次进行两两哈希生成一个Merkle树,将Merkle树根视为这批交易的指纹,将Merkle树根放到区块头部以验证这批交易的完整性。
优选的,所述步骤(4)构建区块按照如下流程进行:区块生成和校验机收集交易处理机执行的交易以及交易执行后的全局状态树根和Merkle树根,将最新的全局状态树根以及Merkle树根再次进行Merkle的树根放到区块头部,然后在将时间戳、前一个区块哈希等字段填充到区块头中,将交易列表作为区块体,从而构建一个区块。
优选的,所述步骤(5)区块校验包括校验区块的完整性,校验区块的前一个区块以及校验全局状态,如果以上三个校验都通过,则说明区块正确;如果有任意一项校验失败,则说明区块错误。
优选的,所述校验区块的完整性包括区块头部的完整性的校验以及区块体的完整性的校验。
优选的,所述区块头部的完整性的校验是对区块头部进行哈希,与区块中的区块哈希字段进行对比,如果一致,则说明区块头数据正确;否则,说明区块头错误。
优选的,所述区块体的完整性的校验是对区块体的交易进行哈希,将哈希后的数据再次进行两两哈希,重现Merkle树,将Merkle树根与区块头中的Merkle树根进行对比,如果相同,则说明区块体的数据正确;否则,说明区块体数据错误。
优选的,所述校验区块的前一个区块包括区块链存储中取前一个区块的哈希,与当前区块的区块头中的hash比较,如果相同,则说明当前区块是合适的区块;否则,是不合适的区块。
优选的,所述校验全局状态包括将区块体中的交易负载到交易处理机上,从前一个稳定状态开始执行过程交易验证,执行完这批交易后判断全局状态树的树根与当前区块中区块头部封装的全局状态根是否一致,如果一致,则说明交易执行正确;否则,则说明交易执行错误。
优选的,所述步骤(6)的所述共识区块决策使用PoW、PoS、DPoS、PBFT中的一种或多种共识算法。
相比现有技术的区块链节点算法,本发明具有如下优势:
(1)适用于高频交易。通过流程的分开部署和并行,提高了区块链系统的吞吐率,减小了时延,适合高频交易场景;
(2)模块灵活、可替换。本发明的功能模块之间的耦合性较低,可以方便进行升级和替换。
(3)适用于大数据处理。由于交易的分布式并行,可以采用大数据框架和在线学习等数据分析方法,对数据进行处理和分析。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为根据本发明优选实施例的区块链系统示意图。
图2为根据本发明优选实施例的集群节点示意图。
图3为根据本发明优选实施例的全局状态机的状态转图。
图4为根据本发明的优选实施例的集群节点内部数据流向图。
图5为根据本发明优选实施例的全局状态树示意图。
具体实施方式
在进行具体实施方式的说明之前,为了更为清楚的表达所论述的内容,首先定义和说明一些非常重要的概念。
(1)集群节点内的消息通信:集群节点内部的不同流程机之间需要消息通信,可以选择常用的消息系统,如ZeroMQ、ActiveMQ、Kafka等,或者使用网络通信或基于网络通信实现适用于交易业务的消息系统。
(2)交易负载机:交易负载机负责接收上层应用发送来的交易,并将交易负载到集群节点中的不同的交易处理机。
(3)随机负载策略:对于没有依赖关系的交易,如数据存储类交易,可以采用随机负载策略,具体实现为:将交易内容进行哈希,将哈希值对交易处理机的数量进行取余,得到的结果即这个交易需要负载到的节点。因为哈希具有随机性和均匀性,因此,随机负载策略起到了负载均衡的作用。
(4)基于交易发起者的负载策略:价值转移类交易一般都具有一定的依赖关系,而依赖关系主要与交易发起者的价值余额,因此将具有相同交易发起者的交易负载到一个交易处理机中,有助于保证全局状态的一致性。
(5)交易处理机:交易处理机主要是对交易负载机负载过来的交易进行校验和执行。交易校验即校验交易的完整性和数字签名;执行交易即驱动全局状态转移,生成全局状态树。
其中,全局状态树可以部署到一个分布式K-V数据库中,分布式数据库部署在交易处理机上,从而可以拉近数据与操作的距离,加快执行速度。全局状态树的一个稳定状态是在执行一批交易并得到全网共识后的状态。因此,执行完区块链的交易后,却没有得到全网共识时是一个不稳定状态,如果区块得到全网共识则转换为稳定状态,否则,则进行回滚,转到上一个稳定状态。因此,可以理解,本发明涉及的全局状态的实现自上而下包括逻辑操作层、缓存层和持久化层。其中,逻辑操作层向上层服务提供基本的操作接口,如get()、update()、delete()等,另外,为了对新加入节点进行同步,因此需要提供序列化与反序列化接口以及转储接口。缓存层存储了MPT树的不稳定状态,即执行完区块中的交易但还没有得到确认时的状态。缓存层除了要提供get、put、delete等基本方法外,最重要的方法是commit方法和undo方法,分别实现了区块得到确认后变为稳定状态以及区块没有通过后回滚到前一个稳定状态。持久化层存储了全局状态树所有的稳定状态。持久化层采用K-V数据库实现,数据库中的每个条目是一个(key,value)对,其中value是节点数据的编码,key是value数据的哈希。交易执行完成之后会有一个标识,用来标识交易是否成功,这个标识在验证区块期间对交易在其他节点执行起到辅助作用,从而使在同一个起始状态下,在不同节点执行同一批交易,得到的状态是一致的。交易处理机处理完交易之后,将交易和最新的全局状态树根发送到区块构造与验证机。
(5)区块构造与验证机:负责生成和验证区块,区块构造和验证机作为集群节点的代理,参与区块链网络的共识过程。其中:
①生成区块表示区块构造与验证机收集交易处理机处理完的交易与最小的全局状态树根后,生成Merkle树,将这些信息打包进区块,生成一个区块广播到区块链网络中其他节点进行验证。
②验证区块表示区块构造和验证机收到其他区块链节点生成的区块后,校验区块的完整性和正确性,同时将交易列表负载到交易处理机上进行处理交易,生成最新的全局状态,验证交易处理的正确性。
参见附图1-2,表示一个集群节点的部署优选实施利,用来处理转账类交易,具体部署方式是部署在五台计算机上,包括一台交易负载机、三个交易处理机以及一个区块生成和验证机。采用Kafka通信系统作为集群节点内部的通信,连接集群节点内的交易负载机、交易处理机、区块生成和验证机。采用Cassandra数据库作为存储全局状态状态的K-V数据库,上层实现全局状态的缓存层,全局状态的逻辑层采用基于哈希桶的Merkle树。采用PBFT算法作为共识算法,根据附图3-5阐述的流程,部署了一个基于集群节点的私有区块链,用于处理高频交易,适用于清算、实时交易、实时数据处理等场景。
参见附图3-5,分别根据本发明优选实施例的全局状态机的状态转图,集群节点内部数据流向图以及全局状态树示意图,共同展示本实施例的私有链节点的集群交易处理方法的步骤(1)-(6),参见图4,对应如下步骤(1)-(2)的流程,其中:
(1)负载均衡,即区块链集群节点接收上层应用层发来的交易,将其负载到不同的交易处理机上。区块链中的交易一般有两类:一类是价值转移类交易,一类是数据存储类交易。对于价值转移类交易,由于交易具有依赖关系,因此根据其价值发送者和接受者将交易负载到不同的交易处理机上,假设一个交易系统中有1,000,000个账户,一个集群节点有5个交易处理机,那么一种比较明显的负载策略是将1,000,000个账户分为5个账户组,每个账户组包含200,000个账户,每个交易处理机负责一个账户组内的交易,而不同账户组之间的交易进行随机负载。对于数据存储类的交易,交易直接没有依赖关系,则可以进行随机负载,将交易平均负载到不同的交易处理机上。
(2)交易校验和交易执行,即每个交易处理机接收到负载均衡机发送来的交易,首先对交易进行校验,校验交易数据通过后,进行交易执行;首先对交易进行校验,主要是校验交易的完整性和数字签名。完整性校验包括交易的各个数据区域是不是正确的,如发送者和接受者账户是不是符合一定的规则,转移的价值是不是合法等;数字签名校验是为了验证交易是不是合法的,是否是发送者同意的以及经认证的上层应用发来的交易。校验交易数据通过后,进行交易执行,将每个交易视为一个事务,符合事务的ACID特性,交易的执行需要修改一个全局状态树。全局状态是一个区块链节点数据状态,一个状态是从键(一般是地址)到值的映射的集合,如一个账本系统,全局状态是所有账户、余额映射对的集合。尽管所有全局状态不存储在区块链中,但是,通常会将全局状态按照一定的方法提取出一个指纹作为全局状态的代表,将指纹存入区块链中经过共识算法进行共识,进而验证所有节点的全局状态一致。其中,参见附图3的全局状态机的状态转图,全局状态可以看作一个由交易来驱动的自动机,全局状态自动机Φ为五元组(Q,Σ,δ*,s*,F*),其中Q是全局状态自动机的所有状态的集合;Σ是交易的集合;δ*是状态转移函数;δ*:Q×Σ→Q;s*是初始状态值s*∈Q;F*是终止状态的集合全局状态树是由全局状态哈希而成的一颗哈希树,全局状态树的树根相当于当前全局状态的指纹,树根放在区块中,通过共识算法进行全网共识。因此,全局状态也分为暂时状态和稳定状态,暂时状态是从前一个状态开始执行交易转移到另一个状态,但没有经过全局确认的状态,而稳定状态是经过共识算法使全网得到共识的状态。交易执行时修改全局状态树,如在该实施例中执行一笔转账交易:从账户A转到账户B金额100,交易的执行过程是,确认并修改全局状态树中A账户,先判断A的余额是否大于等于100,然后将A的余额减100,修改全局状态树中B账户,将其余额加上100。由于一个交易即是一个事务,因此,可以保证价值的平衡。多个交易处理机共同修改同一个分布式的全局状态树,这样保证了整个集群节点全局状态的一致。
参见图5,对应如下步骤(3)-(5)的流程,其中:
(3)生成全局状态树根和Merkle树根,一批交易被执行后的一个全局状态被具体化为一个全局状态树根,全局状态树根将放到区块头部,等待区块链网络确认。对这一批交易的每个交易进行哈希,将哈希后的交易再次进行两两哈希生成一个Merkle树,而Merkle树根可以看作这批交易的指纹,将Merkle树根放到区块头部,用于验证这批交易的完整性,通过这种方法来保证交易数据的不可篡改,而且可以抵抗量子攻击。
(4)构建区块,区块生成和校验机收集交易处理机执行的交易以及交易执行后的全局状态树根和Merkle树根,将最新的全局状态树根以及Merkle树根再次进行Merkle的树根放到区块头部,然后在将时间戳、前一个区块哈希等字段填充到区块头中,将交易列表作为区块体,从而构建一个区块。构建的区块将会广播到区块链网络中其他节点,其他节点将会对区块进行验证。
(5)区块校验,区块网络中的其他节点收到区块后,对区块进行校验验。首先,校验区块的完整性,其包括区块头部的完整性和区块体的完整性。区块头的完整性校验是,对区块头部进行哈希,与区块中的区块哈希字段进行对比,如果一致,则说明区块头数据正确;否则,说明区块头错误。对区块体的完整性校验是对区块体的交易进行哈希,将哈希后的数据再次进行两两哈希,重现Merkle树,将Merkle树根与区块头中的Merkle树根进行对比,如果相同,则说明区块体的数据正确;否则,说明区块体数据错误。然后,校验区块的前一个区块,具体方法是区块链存储中取前一个区块的哈希,与当前区块的区块头中的hash比较,如果相同,则说明当前区块是合适的区块;否则,是不合适的区块。最后校验全局状态,具体方法是将区块体中的交易负载到交易处理机上从前一个稳定状态开始执行,如果执行完这批交易全局状态树的树根与当前区块中区块头部封装的全局状态根是否一致,如果一致,则说明交易执行正确;否则,则说明交易执行错误。如果以上验证都通过,则说明区块正确;如果有任意一项校验失败,则说明区块错误。
(6)共识区块决策,本优选实施例可以使用包括PoW、PoS、DPoS、PBFT等大多数在内的共识算法。无论是哪种共识算法,如果区块通过共识,则将区块头部的全局状态树根代表的全局状态转换为稳定状态,并将区块进行持久化。如果区块没有通过验证,则将全局状态回滚到前一个稳定状态。。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。
Claims (14)
1.一种私有链节点的集群交易处理方法,其特征在于包括如下步骤:
(1)负载均衡,即区块链集群节点接收上层应用层发来的交易,将其负载到不同的交易处理机上;
(2)交易校验和交易执行,即每个交易处理机接收到负载均衡机发送来的交易,首先对交易进行校验,校验交易数据通过后,进行交易执行;
(3)生成全局状态树根和Merkle树根;
(4)构建区块,将构建的区块广播到区块链网络中其他节点;
(5)区块校验,区块网络中的其他节点收到区块后,对区块进行校验;
(6)共识区块决策,如果区块通过共识,则将区块头部的全局状态树根代表的全局状态转换为稳定状态,并将区块进行持久化,如果区块没有通过验证,则将全局状态回滚到前一个稳定状态。
2.根据权利要求1所述的一种私有链节点的集群交易处理方法,其特征在于:所述步骤(1)的所述交易分为价值转移类交易和数据存储类交易两类,对于所述价值转移类交易,根据其价值发送者和接受者将交易负载到不同的交易处理机上,对于所述数据存储类的交易,进行随机负载,将交易平均负载到不同的交易处理机上。
3.根据权利要求1所述的一种私有链节点的集群交易处理方法,其特征在于:所述步骤(2)的所述交易校验包括校验交易的完整性和数字签名。
4.根据权利要求3所述的一种私有链节点的集群交易处理方法,其特征在于:所述校验交易的完整性包括校验交易的各个数据区域是否正确的,所述校验数字签名用于验证交易是否合法的,是否是发送者同意的以及经认证的上层应用发来的交易。
5.根据权利要求1所述的一种私有链节点的集群交易处理方法,其特征在于:每个交易是一个事务,符合事务的ACID特性,所述步骤(2)的所述交易执行修改一个全局状态树。
6.根据权利要求1所述的一种私有链节点的集群交易处理方法,其特征在于:所述步骤(3)生成全局状态树根和Merkle树根包括如下流程,一批交易被执行后的一个全局状态被具体化为一个全局状态树根,全局状态树根将放到区块头部,等待区块链网络确认,对这一批交易的每个交易进行哈希,将哈希后的交易再次进行两两哈希生成一个Merkle树,将Merkle树根视为这批交易的指纹,将Merkle树根放到区块头部以验证这批交易的完整性。
7.根据权利要求1所述的一种私有链节点的集群交易处理方法,其特征在于:所述步骤(4)构建区块按照如下流程进行:区块生成和校验机收集交易处理机执行的交易以及交易执行后的全局状态树根和Merkle树根,将最新的全局状态树根以及Merkle树根再次进行Merkle的树根放到区块头部,然后在将时间戳、前一个区块哈希等字段填充到区块头中,将交易列表作为区块体,从而构建一个区块。
8.根据权利要求1所述的一种私有链节点的集群交易处理方法,其特征在于:所述步骤(5)区块校验包括校验区块的完整性,校验区块的前一个区块以及校验全局状态,如果以上三个校验都通过,则说明区块正确;如果有任意一项校验失败,则说明区块错误。
9.根据权利要求8所述的一种私有链节点的集群交易处理方法,其特征在于:所述校验区块的完整性包括区块头部的完整性的校验以及区块体的完整性的校验。
10.根据权利要求9所述的一种私有链节点的集群交易处理方法,其特征在于:所述区块头部的完整性的校验是对区块头部进行哈希,与区块中的区块哈希字段进行对比,如果一致,则说明区块头数据正确;否则,说明区块头错误。
11.根据权利要求9所述的一种私有链节点的集群交易处理方法,其特征在于:所述区块体的完整性的校验是对区块体的交易进行哈希,将哈希后的数据再次进行两两哈希,重现Merkle树,将Merkle树根与区块头中的Merkle树根进行对比,如果相同,则说明区块体的数据正确;否则,说明区块体数据错误。
12.根据权利要求8所述的一种私有链节点的集群交易处理方法,其特征在于:所述校验区块的前一个区块包括区块链存储中取前一个区块的哈希,与当前区块的区块头中的hash比较,如果相同,则说明当前区块是合适的区块;否则,是不合适的区块。
13.根据权利要求8所述的一种私有链节点的集群交易处理方法,其特征在于:所述校验全局状态包括将区块体中的交易负载到交易处理机上,从前一个稳定状态开始执行过程交易验证,执行完这批交易后判断全局状态树的树根与当前区块中区块头部封装的全局状态根是否一致,如果一致,则说明交易执行正确;否则,则说明交易执行错误。
14.根据权利要求1所述的一种私有链节点的集群交易处理方法,其特征在于:所述步骤(6)的所述共识区块决策使用PoW、PoS、DPoS、PBFT中的一种或多种共识算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710074936.2A CN108427601A (zh) | 2017-02-13 | 2017-02-13 | 一种私有链节点的集群交易处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710074936.2A CN108427601A (zh) | 2017-02-13 | 2017-02-13 | 一种私有链节点的集群交易处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108427601A true CN108427601A (zh) | 2018-08-21 |
Family
ID=63147208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710074936.2A Pending CN108427601A (zh) | 2017-02-13 | 2017-02-13 | 一种私有链节点的集群交易处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108427601A (zh) |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980649A (zh) * | 2017-02-28 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
CN109145651A (zh) * | 2018-08-22 | 2019-01-04 | 何晓行 | 一种数据处理方法及装置 |
CN109255057A (zh) * | 2018-09-18 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 区块生成方法、装置、设备及存储介质 |
CN109360096A (zh) * | 2018-09-27 | 2019-02-19 | 中国联合网络通信集团有限公司 | 一种基于公有链的私有链的记账方法及系统 |
CN109359860A (zh) * | 2018-10-16 | 2019-02-19 | 湘潭大学 | 一种基于智能合约的钢铁生产数据的存取方法 |
CN109445919A (zh) * | 2018-10-19 | 2019-03-08 | 曙光信息产业(北京)有限公司 | 基于云服务的在线计算资源交易系统 |
CN109614411A (zh) * | 2018-11-19 | 2019-04-12 | 杭州复杂美科技有限公司 | 数据存储方法、设备和存储介质 |
CN109729093A (zh) * | 2019-01-17 | 2019-05-07 | 重庆邮电大学 | 一种基于区块链的数字版权登记技术 |
CN109949158A (zh) * | 2019-03-15 | 2019-06-28 | 北京世纪诚链科技有限公司 | 一种超级节点交易验签并行加速方法 |
CN110032892A (zh) * | 2019-01-29 | 2019-07-19 | 香港贝尔科技有限公司 | 一种基于区块链dpos共识机制的改进算法 |
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110209671A (zh) * | 2019-05-17 | 2019-09-06 | 无锡朝阳供应链科技股份有限公司 | 一种分布式账本数据的存取系统及其应用 |
CN110222537A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 应用于区块链节的验证方法及装置 |
CN110309160A (zh) * | 2019-05-22 | 2019-10-08 | 平安科技(深圳)有限公司 | 数据入链事务处理方法、装置、计算机设备及存储介质 |
CN110347684A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
CN110443073A (zh) * | 2019-07-31 | 2019-11-12 | 南瑞集团有限公司 | 一种基于区块链的防篡改数据存储方法、装置及系统 |
CN110443713A (zh) * | 2019-09-06 | 2019-11-12 | 江门职业技术学院 | 一种针对区块链交易效率提升的方法及系统 |
CN110599139A (zh) * | 2019-08-19 | 2019-12-20 | 杭州秘猿科技有限公司 | 一种区块链共识算法中的出块方法和装置 |
CN110730241A (zh) * | 2019-10-22 | 2020-01-24 | 河海大学常州校区 | 面向全局规模的区块链基础设施 |
WO2020056570A1 (zh) * | 2018-09-18 | 2020-03-26 | 柯宾汉数位金融科技有限公司 | 应用分片机制的区块网的区块产生方法及区块网系统 |
CN111095324A (zh) * | 2019-04-12 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 在分布式账本系统中执行交易的并行执行 |
CN111428277A (zh) * | 2020-03-20 | 2020-07-17 | 中国建设银行股份有限公司 | 区块链数据的校验方法、装置及系统 |
CN111476671A (zh) * | 2020-04-08 | 2020-07-31 | 杭州复杂美科技有限公司 | 区块链回滚保险方法、设备和存储介质 |
CN111490994A (zh) * | 2020-04-16 | 2020-08-04 | 杭州萌格信息科技有限公司 | 区块链节点群间dpos与节点群内pow结合的共识机制方法 |
CN111552676A (zh) * | 2020-04-26 | 2020-08-18 | 北京众享比特科技有限公司 | 基于区块链的存证方法、装置、设备及介质 |
CN111651790A (zh) * | 2020-06-11 | 2020-09-11 | 上海分布信息科技有限公司 | 一种开放区块链中隐私信息的保护方法及系统 |
CN111723406A (zh) * | 2020-06-08 | 2020-09-29 | 上海朝夕网络技术有限公司 | 一种区块链的共识算法及系统 |
US10853341B2 (en) | 2019-06-28 | 2020-12-01 | Advanced New Technologies Co., Ltd. | Blockchain based hierarchical data storage |
US10880077B2 (en) | 2019-04-03 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Processing blockchain data based on smart contract operations executed in a trusted execution environment |
CN112486726A (zh) * | 2019-08-20 | 2021-03-12 | 厦门本能管家科技有限公司 | 一种用于区块链的时光回滚方法及系统 |
CN112507014A (zh) * | 2021-02-07 | 2021-03-16 | 支付宝(杭州)信息技术有限公司 | 一种基于可信账本数据库的数据存储方法、装置及系统 |
CN112883107A (zh) * | 2020-12-31 | 2021-06-01 | 杭州趣链科技有限公司 | 区块链中交易异步执行方法、系统及相关设备 |
CN114157550A (zh) * | 2021-12-06 | 2022-03-08 | 东北大学 | 一种基于无冲突事务合并的联盟区块链系统 |
WO2022063223A1 (zh) * | 2020-09-28 | 2022-03-31 | 华为技术有限公司 | 数据校验方法、装置和系统 |
CN114782043A (zh) * | 2021-08-05 | 2022-07-22 | 北京天德科技有限公司 | 一种基于多链的安全交易系统及安全交易方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868985A (zh) * | 2016-03-28 | 2016-08-17 | 谷江涛 | 多端口均衡负载的数字加密货币交易处理方法及系统 |
CN106375317A (zh) * | 2016-08-31 | 2017-02-01 | 北京明朝万达科技股份有限公司 | 一种基于区块链的大数据安全认证方法和系统 |
-
2017
- 2017-02-13 CN CN201710074936.2A patent/CN108427601A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868985A (zh) * | 2016-03-28 | 2016-08-17 | 谷江涛 | 多端口均衡负载的数字加密货币交易处理方法及系统 |
CN106375317A (zh) * | 2016-08-31 | 2017-02-01 | 北京明朝万达科技股份有限公司 | 一种基于区块链的大数据安全认证方法和系统 |
Non-Patent Citations (4)
Title |
---|
TRANSITER: ""区块链原理详解"", 《百度文库》 * |
WEI-TEK TSAI 等: ""A System View of Financial Blockchains"", 《2016 IEEE SYMPOSIUM ON SERVICE-ORIENTED SYSTEM ENGINEERING (SOSE)》 * |
华师傅资讯编著: "《局域网组建应用与维护使用宝典》", 31 October 2007 * |
李董 等: ""区块链技术原理、应用领域及挑战"", 《电信科学》 * |
Cited By (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642643B2 (en) | 2017-02-28 | 2020-05-05 | Alibaba Group Holding Limited | Method and apparatus for writing service data into block chain and method for determining service subset |
CN106980649A (zh) * | 2017-02-28 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
CN106980649B (zh) * | 2017-02-28 | 2020-07-10 | 创新先进技术有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
US10664305B1 (en) | 2017-02-28 | 2020-05-26 | Alibaba Group Holding Limited | Method and apparatus for writing service data into block chain and method for determining service subset |
CN109145651A (zh) * | 2018-08-22 | 2019-01-04 | 何晓行 | 一种数据处理方法及装置 |
CN109145651B (zh) * | 2018-08-22 | 2021-12-28 | 何晓行 | 一种数据处理方法及装置 |
CN109255057A (zh) * | 2018-09-18 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 区块生成方法、装置、设备及存储介质 |
CN109255057B (zh) * | 2018-09-18 | 2021-05-07 | 百度在线网络技术(北京)有限公司 | 区块生成方法、装置、设备及存储介质 |
WO2020056570A1 (zh) * | 2018-09-18 | 2020-03-26 | 柯宾汉数位金融科技有限公司 | 应用分片机制的区块网的区块产生方法及区块网系统 |
CN109360096A (zh) * | 2018-09-27 | 2019-02-19 | 中国联合网络通信集团有限公司 | 一种基于公有链的私有链的记账方法及系统 |
CN109360096B (zh) * | 2018-09-27 | 2020-12-08 | 中国联合网络通信集团有限公司 | 一种基于公有链的私有链的记账方法及系统 |
CN109359860A (zh) * | 2018-10-16 | 2019-02-19 | 湘潭大学 | 一种基于智能合约的钢铁生产数据的存取方法 |
CN109445919A (zh) * | 2018-10-19 | 2019-03-08 | 曙光信息产业(北京)有限公司 | 基于云服务的在线计算资源交易系统 |
CN109445919B (zh) * | 2018-10-19 | 2021-07-23 | 曙光信息产业(北京)有限公司 | 基于云服务的在线计算资源交易系统 |
CN109614411A (zh) * | 2018-11-19 | 2019-04-12 | 杭州复杂美科技有限公司 | 数据存储方法、设备和存储介质 |
CN109729093A (zh) * | 2019-01-17 | 2019-05-07 | 重庆邮电大学 | 一种基于区块链的数字版权登记技术 |
CN110032892A (zh) * | 2019-01-29 | 2019-07-19 | 香港贝尔科技有限公司 | 一种基于区块链dpos共识机制的改进算法 |
CN109949158A (zh) * | 2019-03-15 | 2019-06-28 | 北京世纪诚链科技有限公司 | 一种超级节点交易验签并行加速方法 |
US11153072B2 (en) | 2019-04-03 | 2021-10-19 | Advanced New Technologies Co., Ltd. | Processing blockchain data based on smart contract operations executed in a trusted execution environment |
US10880077B2 (en) | 2019-04-03 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Processing blockchain data based on smart contract operations executed in a trusted execution environment |
CN111095324B (zh) * | 2019-04-12 | 2023-12-12 | 创新先进技术有限公司 | 在分布式账本系统中执行交易的并行执行 |
CN111095324A (zh) * | 2019-04-12 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 在分布式账本系统中执行交易的并行执行 |
CN110113388B (zh) * | 2019-04-17 | 2020-01-14 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110209671A (zh) * | 2019-05-17 | 2019-09-06 | 无锡朝阳供应链科技股份有限公司 | 一种分布式账本数据的存取系统及其应用 |
CN110309160A (zh) * | 2019-05-22 | 2019-10-08 | 平安科技(深圳)有限公司 | 数据入链事务处理方法、装置、计算机设备及存储介质 |
CN110222537A (zh) * | 2019-06-17 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 应用于区块链节的验证方法及装置 |
CN110347684A (zh) * | 2019-06-28 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
US10853341B2 (en) | 2019-06-28 | 2020-12-01 | Advanced New Technologies Co., Ltd. | Blockchain based hierarchical data storage |
US11288247B2 (en) | 2019-06-28 | 2022-03-29 | Advanced New Technologies Co., Ltd. | Blockchain based hierarchical data storage |
US11030175B2 (en) | 2019-06-28 | 2021-06-08 | Advanced New Technologies Co., Ltd. | Blockchain based hierarchical data storage |
CN110443073A (zh) * | 2019-07-31 | 2019-11-12 | 南瑞集团有限公司 | 一种基于区块链的防篡改数据存储方法、装置及系统 |
CN110599139A (zh) * | 2019-08-19 | 2019-12-20 | 杭州秘猿科技有限公司 | 一种区块链共识算法中的出块方法和装置 |
CN110599139B (zh) * | 2019-08-19 | 2022-09-13 | 杭州秘猿科技有限公司 | 一种区块链共识算法中的出块方法和装置 |
CN112486726B (zh) * | 2019-08-20 | 2024-01-30 | 本无链科技(深圳)有限公司 | 一种用于区块链的时光回滚方法及系统 |
CN112486726A (zh) * | 2019-08-20 | 2021-03-12 | 厦门本能管家科技有限公司 | 一种用于区块链的时光回滚方法及系统 |
CN110443713A (zh) * | 2019-09-06 | 2019-11-12 | 江门职业技术学院 | 一种针对区块链交易效率提升的方法及系统 |
CN110730241B (zh) * | 2019-10-22 | 2022-01-25 | 河海大学常州校区 | 面向全局规模的区块链基础设施 |
CN110730241A (zh) * | 2019-10-22 | 2020-01-24 | 河海大学常州校区 | 面向全局规模的区块链基础设施 |
CN111428277A (zh) * | 2020-03-20 | 2020-07-17 | 中国建设银行股份有限公司 | 区块链数据的校验方法、装置及系统 |
CN111428277B (zh) * | 2020-03-20 | 2023-08-18 | 中国建设银行股份有限公司 | 区块链数据的校验方法、装置及系统 |
CN111476671A (zh) * | 2020-04-08 | 2020-07-31 | 杭州复杂美科技有限公司 | 区块链回滚保险方法、设备和存储介质 |
CN111490994A (zh) * | 2020-04-16 | 2020-08-04 | 杭州萌格信息科技有限公司 | 区块链节点群间dpos与节点群内pow结合的共识机制方法 |
CN111552676A (zh) * | 2020-04-26 | 2020-08-18 | 北京众享比特科技有限公司 | 基于区块链的存证方法、装置、设备及介质 |
CN111723406B (zh) * | 2020-06-08 | 2023-04-28 | 上海朝夕网络技术有限公司 | 一种区块链的共识算法及系统 |
CN111723406A (zh) * | 2020-06-08 | 2020-09-29 | 上海朝夕网络技术有限公司 | 一种区块链的共识算法及系统 |
CN111651790B (zh) * | 2020-06-11 | 2023-04-11 | 上海分布信息科技有限公司 | 一种开放区块链中隐私信息的保护方法及系统 |
CN111651790A (zh) * | 2020-06-11 | 2020-09-11 | 上海分布信息科技有限公司 | 一种开放区块链中隐私信息的保护方法及系统 |
WO2022063223A1 (zh) * | 2020-09-28 | 2022-03-31 | 华为技术有限公司 | 数据校验方法、装置和系统 |
CN112883107B (zh) * | 2020-12-31 | 2022-05-17 | 杭州趣链科技有限公司 | 区块链中交易异步执行方法、系统及相关设备 |
CN112883107A (zh) * | 2020-12-31 | 2021-06-01 | 杭州趣链科技有限公司 | 区块链中交易异步执行方法、系统及相关设备 |
CN112507014A (zh) * | 2021-02-07 | 2021-03-16 | 支付宝(杭州)信息技术有限公司 | 一种基于可信账本数据库的数据存储方法、装置及系统 |
CN114782043A (zh) * | 2021-08-05 | 2022-07-22 | 北京天德科技有限公司 | 一种基于多链的安全交易系统及安全交易方法 |
CN114157550A (zh) * | 2021-12-06 | 2022-03-08 | 东北大学 | 一种基于无冲突事务合并的联盟区块链系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427601A (zh) | 一种私有链节点的集群交易处理方法 | |
US10965445B2 (en) | Blockchain-based unexpected data detection | |
US10659217B2 (en) | Blockchain-based automated user matching | |
US11669811B2 (en) | Blockchain-based digital token utilization | |
CN109074562B (zh) | 基于区块链的合并式数据传输控制方法和系统 | |
Kaur et al. | Scalability in blockchain: Challenges and solutions | |
US11468411B2 (en) | Method and system of mining blockchain transactions provided by a validator node | |
WO2020107919A1 (zh) | 基于创新性的信誉证明共识协议的分布式网络及生态系统 | |
CN109118214A (zh) | 运行智能合约的方法和装置 | |
US20190164150A1 (en) | Using Blockchain Ledger for Selectively Allocating Transactions to User Accounts | |
CN108694575A (zh) | 基于区块链的转账验证方法、装置及存储介质 | |
US10693646B2 (en) | Event execution using a blockchain approach | |
CN108269072A (zh) | 用于区块链的交易处理方法和网络节点 | |
KR101936759B1 (ko) | Kyc 블록체인을 이용한 kyc 수행 장치 및 방법 | |
CN107615317A (zh) | 区块链交易记录的系统和方法 | |
CN110390524B (zh) | 区块链中作业数据处理方法、装置、电子设备及存储介质 | |
Jani | Smart contracts: Building blocks for digital transformation | |
CN110334053A (zh) | 一种基于区块链的数据存证数据处理方法 | |
Balagolla et al. | Credit card fraud prevention using blockchain | |
US10642826B1 (en) | Mixed-mode method for combining active/active and validation architectures utilizing a check integrity module | |
KR102455870B1 (ko) | 암호화폐 지갑 주소의 클러스터링 기법 | |
CN115152177A (zh) | 提供机密知识的专门证明的系统和方法 | |
CN110222532A (zh) | 一种基于命名空间实现联盟链隐私保护的分区共识方法 | |
Yi et al. | Research on a suitable blockchain for IoT platform | |
Cai et al. | Introduction to blockchain basics |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180821 |