CN115409507A - 区块处理方法、区块处理装置、计算机设备及存储介质 - Google Patents
区块处理方法、区块处理装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115409507A CN115409507A CN202110579892.5A CN202110579892A CN115409507A CN 115409507 A CN115409507 A CN 115409507A CN 202110579892 A CN202110579892 A CN 202110579892A CN 115409507 A CN115409507 A CN 115409507A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction list
- processing
- proposal
- data
- 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
Images
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/3825—Use of electronic signatures
-
- 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/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- 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
- 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/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了区块处理方法、区块处理装置、计算机设备及存储介质,其中方法包括:提案节点获取包括区块头和交易列表的提案区块,对交易列表进行分片处理得到多个交易列表片段;通过至少两个线程对多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据;根据区块头以及各个编码数据构建目标数据结构,并将目标数据结构广播给验证节点。验证节点获取该目标数据结构,从目标数据结构中获取各个编码数据以及区块头;通过至少两个线程对各个编码数据进行并行数据解码处理,确定各个编码数据分别对应的交易列表片段;根据区块头以及各个交易列表片段构建该提案区块。采用上述方式可以有效提高提案区块处理的效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及区块处理方法、区块处理装置、计算机设备及计算机可读存储介质。
背景技术
随着科技时代的到来和移动互联网的发展,网络变革的步伐也愈来愈快,实现同一领域或多个领域的信息融合,为客户提供全方位信息化方案的过程亦面临着体系结构的改进、支撑重心转移等新的挑战。因此,区块链技术作为分布式账本的一种特定实现,凭借其存储和管理数据的天然优势,逐渐成为各个领域存储数据和交易数据的首选方式。
目前,常见的区块链应用,针对提案区块都是将其当作一个整体进行处理,这种处理方法虽然简单,但处理效率低,这样会降低整个区块链网络的交易吞吐量。
发明内容
本申请实施例提供了一种区块处理方法、区块处理装置、计算机设备及存储介质,可以有效提高提案区块处理的效率,进而提高整个区块链网络的交易吞吐量。
本申请实施例第一方面提供了一种区块处理方法,所述方法包括:
获取提案区块,所述提案区块包括区块头和交易列表;
对所述交易列表进行分片处理,得到多个交易列表片段;
通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据;
根据所述区块头以及各个编码数据构建目标数据结构,并将所述目标数据结构广播给区块链网络中的验证节点。
本申请实施例第二方面提供了一种区块处理方法,所述方法包括:
获取区块链网络中的提案节点广播的目标数据结构,所述目标数据结构是所述提案节点通过至少两个线程对多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据,并根据各个编码数据以及提案区块包括的区块头构建得到的,其中,所述多个交易列表片段是所述提案节点对所述提案区块包括的交易列表进行分片处理得到的;
从所述目标数据结构中获取所述各个编码数据以及所述区块头;
通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段;
根据所述区块头以及各个交易列表片段构建所述提案区块。
一方面,本申请实施例提供了一种区块处理装置,所述装置包括:
处理单元,用于获取提案区块,所述提案区块包括区块头和交易列表;
所述处理单元,还用于对所述交易列表进行分片处理,得到多个交易列表片段;
所述处理单元,还用于通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据;
所述处理单元,还用于根据所述区块头以及各个编码数据构建目标数据结构;
通信单元,用于将所述目标数据结构广播给区块链网络中的验证节点。
在一实施例中,所述处理单元具体用于:通过至少两个线程同时对所述多个交易列表片段中的至少两个交易列表片段进行序列化处理,确定各个交易列表片段分别对应的字节码;将所述各个交易列表片段分别对应的字节码确定为所述各个交易列表片段分别对应的编码数据。
在一实施例中,所述处理单元具体用于:根据各个交易列表片段在所述交易列表中的排列顺序,确定各个编码数据的目标排列顺序;构建目标数据结构,其中,所述目标数据结构包括所述区块头以及根据所述目标排列顺序进行排序后的所述各个编码数据。
在一实施例中,所述处理单元具体用于:获取系统的数据处理资源的相关信息;根据所述数据处理资源的相关信息,确定对所述交易列表进行并行数据编码处理的线程的线程数;根据所述线程数对所述交易列表进行分片处理,得到多个交易列表片段。
在一实施例中,所述处理单元还用于:在所述各个编码数据中添加起始标识和结尾标识中的一种或者多种;或者,在所述各个编码数据中添加相应的数据量信息。
在一实施例中,所述处理单元具体用于:当满足分片条件时,对所述交易列表进行分片处理,得到多个交易列表片段;其中,满足分片条件包括所述交易列表的数据量大于或等于数据量阈值、提案区块处理规则指示需要对提案区块中的交易列表进行分片处理、系统配置支持多线程并行处理中的一种或多种。
在一实施例中,所述处理单元还用于:生成区块提案消息,其中,所述区块提案消息包括所述目标数据结构以及分片标识;所述通信单元具体用于:将所述区块提案消息广播给区块链网络中的验证节点。
一方面,本申请实施例提供了另一种区块处理装置,所述装置包括:
通信单元,用于获取区块链网络中的提案节点广播的目标数据结构,所述目标数据结构是所述提案节点通过至少两个线程对多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据,并根据各个编码数据以及提案区块包括的区块头构建得到的,其中,所述多个交易列表片段是所述提案节点对所述提案区块包括的交易列表进行分片处理得到的;
处理单元,用于从所述目标数据结构中获取所述各个编码数据以及所述区块头;
所述处理单元,还用于通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段;
所述处理单元,还用于根据所述区块头以及各个交易列表片段构建所述提案区块。
在一实施例中,所述目标数据结构还包括分片数目,所述处理单元具体用于:从所述目标数据结构中获取所述分片数目,以及确定所述编码数据的数目;当所述编码数据的数目与所述分片数目一致时,通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段。
在一实施例中,所述通信单元具体用于:接收区块链网络中的提案节点广播的区块提案消息,其中,所述区块提案消息包括目标数据结构;从所述区块提案消息中获取所述目标数据结构;所述处理单元具体用于:当所述区块提案消息还包括分片标识时,从所述目标数据结构中获取所述各个编码数据以及所述区块头。
一方面,本申请实施例提供了一种计算机设备,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有第一可执行程序代码,所述处理器用于调用所述可执行程序代码,执行本申请实施例第一方面提供的区块处理方法;或者,所述存储器存储有第二可执行程序代码,所述处理器用于调用所述第二可执行程序代码,执行本申请实施例第二方面提供的区块处理方法。
相应地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有第一计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例第一方面提供的区块处理方法;或者,所述计算机可读存储介质中存储有第二计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例第二方面提供的区块处理方法。
相应地,本申请实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行本申请实施例第一方面提供的区块处理方法,或者执行本申请实施例第二方面提供的区块处理方法。
本申请实施例中,一方面,对提案区块中的交易列表进行分片处理,并通过至少两个线程对分片处理得到的多个交易列表片段进行并行数据编码处理,这样的处理方式相对于将交易列表当作一个整体进行数据编码处理(即利用一个线程进行数据编码处理),可以加快对交易列表编码的速度,编码效率更高;另一方面,通过至少两个线程对该交易列表所对应的编码数据进行并行数据解码处理,这样的处理方式相对于将该交易列表所对应的编码数据当作一个整体进行数据解码处理(即利用一个线程进行数据解码处理),可以加快对编码数据解码的速度,解码效率更高。由于提高了提案区块处理过程中的数据编码和数据解码速度,故能够有效提高提案区块处理的效率,从而能够提高区块链网络中的交易处理速度,进而提高整个区块链网络的交易吞吐量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是是本申请实施例提供的一种分布式系统的架构示意图;
图2是本申请实施例提供的一种区块的结构示意图;
图3是本申请实施例提供的一种网络系统的架构示意图;
图4是本申请实施例提供的一种区块处理方法的流程示意图;
图5示出了对交易列表的分片处理;
图6示出了交易列表片段和编码数据的对应关系;
图7是本申请实施例提供的一种区块处理装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为更好的理解本申请实施例,下面先对本申请实施例所涉及的区块链技术进行介绍。
区块链(blockchain或block chain):分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。
区块链网络是一种分布式系统,分布式系统可以由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成。参见图1,是本申请实施例提供的分布式系统应用于区块链网络的一个可选的架构示意图。区块链网络由多个节点形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在区块链网络中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链网络中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链网络中节点提交的记录数据,例如交易数据等。
参见图2,是本申请实施例提供的区块结构(Block Structure)的一个可选的示意图,每个区块中包括本区块存储数据记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链(Blockchain)。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
3)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链网络中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
3.1)钱包,用于提供进行虚拟资源的交易的功能,包括发起交易,即将当前交易的交易记录发送给区块链网络中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中。
3.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链网络中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
3.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的虚拟资源转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
4)共识,用于解决并保证每一笔交易或者数据在所有记账节点上的一致性和正确性问题。区块链的共识机制就是确定达成某种共识和维护共识的方式。区块链的共识机制使其在不依靠中心化组织的情况下,依然大规模高效协作完成运转。
区块链网络中的节点包括共识节点和其他类型的节点,其他类型的节点如图1中的节点10,共识节点如图1中的节点11和节点12。共识节点(或者说出块节点)是区块链网络中具备出块功能以及共识功能的节点,可以是区块链网络中存储完整区块链的全节点。区块链网络中的共识节点可分为主节点和从节点,所谓的主节点是指当前阶段负责出块(即生成区块,生成的区块也称之为提案区块)的共识节点,所谓的从节点是指区块链网络中除主节点以外的共识节点。当前阶段可以是指当前区块高度。普通节点可以是指区块链网络中除共识节点之外的节点。共识节点和其他类型的节点可以是终端或者服务器等计算机设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基于云计算服务的云服务器。终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
为解决目前存在的提案区块处理效率低,进而降低整个区块链网络的交易吞吐量的问题,本申请实施例基于区块链技术提供了一种区块处理方法,以有效提高提案区块处理的效率,进而提高整个区块链网络的交易吞吐量。该区块处理方法适用于图3所示的网络系统中,该网络系统可以基于区块链网络实现,包括提案节点30以及一个或多个验证节点31。提案节点30可以为区块链网络中的共识节点,也可以为区块链网络中除共识节点之外的其他类型的节点。当提案节点30为区块链网络中的共识节点时,可以为共识节点中的主节点,即当前阶段可以负责生成提案区块。验证节点31可以为区块链网络中的共识节点,也可以为区块链网络中除共识节点之外的其他类型的节点。当验证节点31为区块链网络中的共识节点时,验证节点31可以为共识节点中除主节点之外的从节点,当前阶段可以负责针对主节点生成的提案区块进行共识。
本申请实施例提供的区块处理方法由图3所示网络系统中的提案节点30和验证节点31共同执行,一方面,提案节点对提案区块中的交易列表进行分片处理,并通过至少两个线程对分片处理得到的多个交易列表片段进行并行数据编码处理,这样的处理方式相对于将交易列表当作一个整体进行数据编码处理(即利用一个线程进行数据编码处理),可以加快对交易列表编码的速度,编码效率更高;另一方面,验证节点通过至少两个线程对该交易列表所对应的编码数据进行并行数据解码处理,这样的处理方式相对于将该交易列表所对应的编码数据当作一个整体进行数据解码处理(即利用一个线程进行数据解码处理),可以加快对编码数据解码的速度,解码效率更高。由于提高了提案区块处理过程中的数据编码和数据解码速度,故能够有效提高提案区块处理的效率,从而能够提高区块链网络中的交易处理速度,进而提高整个区块链网络的交易吞吐量。
以下对本申请实施例提供的区块处理方法进行详细介绍。请参阅图4,为本申请实施例提供的区块处理方法的流程示意图,包括但不限于如下步骤:
S401、提案节点获取提案区块,所述提案区块包括区块头和交易列表。
本申请实施例中,提案区块是基于从交易池中获取的交易数据生成的,提案区块的区块头存储区块的头信息,可以包括上一个区块的哈希值(PreHash),本区块体的哈希值(Hash),以及时间戳(TimeStamp),等等;提案区块的交易列表是根据从交易池中获取的交易数据生成的,其包括在提案区块的区块体中。交易列表中的交易数据对应一笔或多笔交易,并按照一定的排列顺序进行排列。
在一实施例中,当提案节点为区块链网络中当前阶段的主节点时,可以由提案节点生成提案区块。在另一实施例中,当提案节点不为区块链网络中当前阶段的主节点,但提案节点可以代为主节点进行区块提案消息广播时,提案节点可以从主节点处获取主节点生成的提案区块。
在获取到提案区块之后,将提案区块广播给区块链网络中的验证节点时,通常需要先对提案区块中的诸如交易列表等数据进行数据编码处理后再进行广播。本申请实施例中,在获取到提案区块之后,确定是否满足分片条件;若满足分片条件,则执行步骤S402-S403,对该交易列表进行分片处理,并通过多个线程对分片处理得到的多个交易列表片段进行并行数据编码处理。其中,满足分片条件包括以下一种或多种:交易列表的数据量大于或等于数据量阈值、提案区块处理规则指示需要对提案区块中的交易列表进行分片处理、系统配置支持多线程并行处理。反之,若不满足分片条件,则将该交易列表当作一个整体进行数据编码处理,即利用一个线程对该交易列表进行数据编码处理。
S402、所述提案节点对所述交易列表进行分片处理,得到多个交易列表片段。如图5所示,可以将交易列表拆分成M个交易列表片段,M为大于1的正整数。每一个交易列表片段中的交易数据的排列顺序可以与其在原始交易列表中的排序顺序保持一致,也可以与其在原始交易列表中的排序顺序相反。在可行的实施方式中,在对交易列表进行分片时,保证同一笔交易所对应的交易数据被分到同一个交易列表片段中。
在一实施例中,提案节点获取其系统的数据处理资源的相关信息,该数据处理资源的相关信息可以包括以下一种或者多种:系统处理器(如中央处理器CPU)的个数、每个系统处理器的核心数以及每个核心所对应的线程数,当前处于空闲状态的系统处理器、当前处于空闲状态的核心以及当前处于空闲状态的线程,等等;根据该数据处理资源的相关信息可以确定系统当前能够对该交易列表进行并行数据编码处理的线程以及线程数。
进一步地,根据该数据处理资源的相关信息,确定需要对该交易列表进行并行数据编码处理的线程以及线程数,可以是将系统当前能够对该交易列表进行并行数据编码处理的部分或者全部线程确定为需要对该交易列表进行并行数据编码处理的线程。最后,根据确定的需要对该交易列表进行并行数据编码处理的线程的线程数N(N为大于1的正整数)对该交易列表进行分片处理,得到多个交易列表片段。在可行的实施方式中,将该交易列表分片成的多个交易列表片段的数目为该线程数N的K倍,K为大于或等于1的正整数。在可行的实施方式中,可以将该交易列表按照等交易笔数进行分片处理,例如,确定出的线程数N为10,交易列表片段的数目K*N为10或者20,交易列表中包括600笔交易所对应的交易数据,则每个交易列表片段中包括60或者30笔交易所对应的交易数据。
S403、所述提案节点通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据。如图6所示,针对M个交易列表片段进行数据编码处理后,得到M个编码数据。
本申请实施例中,该至少两个线程可以是上述确定的需要对该交易列表进行并行数据编码处理的线程,可以是系统当前能够对该交易列表进行并行数据编码处理的部分或者全部线程。
在一实施例中,提案节点通过该至少两个线程同时对该多个交易列表片段中的至少两个交易列表片段进行数据编码处理,以确定各个交易列表片段分别对应的编码数据。在一实施方式中,同时处理的交易列表片段的数目与同时进行处理的线程的线程数一致。
在一实施方式中,数据编码处理包括对数据进行序列化处理,即将数据转换为字节序列。提案节点通过该至少两个线程同时对该多个交易列表片段中的至少两个交易列表片段进行数据编码处理,以确定各个交易列表片段分别对应的编码数据,包括:通过该至少两个线程同时对该多个交易列表片段中的至少两个交易列表片段进行序列化处理,以确定各个交易列表片段分别对应的字节码;将各个交易列表片段分别对应的字节码确定为各个交易列表片段分别对应的编码数据。
在可行的实施例中,如果系统当前能够对该交易列表进行数据编码处理的线程只有一个,则可以先利用该线程对分片得到的多个交易列表片段进行数据编码处理,待存在能够进行并行数据编码处理的其他线程时,则利用之前的线程以及该其他线程对剩余未处理的交易列表片段进行并行数据编码处理。
S404、所述提案节点根据所述区块头以及各个编码数据构建目标数据结构。
本申请实施例中,提案节点根据各个交易列表片段在交易列表中的排列顺序,确定各个编码数据的目标排列顺序。各个编码数据的目标排列顺序可以与其对应的各个交易列表片段在交易列表中的排列顺序保持一致(如图6所示),也可以与其对应的各个交易列表片段在交易列表中的排列顺序相反;当然,两者的排列顺序也可以是其他对应关系;两者的排列顺序的具体对应关系可以在区块链网络中进行事先约定,例如写入智能合约中。
提案节点获取提案区块的区块头,并根据该目标排列顺序对各个编码数据进行排序;然后构建包括该区块头以及排序后的各个编码数据的目标数据结构。
在一实施例中,目标数据结构中除了包括该区块头以及排序后的各个编码数据之外,还可以包括分片数目,分片数目可以是指将交易列表分片处理得到的多个交易列表片段的数目,或者说为编码数据的数目。在目标数据结构中添加分片数目可以使得后续能够对编码数据的数目进行校验。
在一实施例中,在根据各个编码数据构建目标数据结构之前,可以在各个编码数据中添加起始标识和结尾标识中的一种或者多种,或者,在各个编码数据中添加相应的数据量信息,以便于后续在对各个编码数据进行解码时,能够快速准确获取各个编码数据。
在一实施例中,在根据该区块头构建目标数据结构之前,可以在该区块头中添加签名数据,该签名数据可以是对原始提案区块进行签名得到的。
需要说明的是,还需要在目标数据结构中添加提案区块中除了区块头以及交易列表之外的其他数据,以便于后续恢复得到的提案区块与原始提案区块一致。
S405、所述提案节点将所述目标数据结构广播给区块链网络中的验证节点。
本申请实施例中,提案节点生成包括该目标数据结构的区块提案消息,并将该区块提案消息广播给区块链网络中的验证节点。
在一实施例中,区块提案消息中除了包括该目标数据结构之外,还可以包括分片标识,分片标识用于指示该目标数据结构中存在经过分片处理的数据。
S406、验证节点获取所述提案节点广播的所述目标数据结构。
本申请实施例中,验证节点接收提案节点广播的包括该目标数据结构的区块提案消息,并从该区块提案消息中获取该目标数据结构。
在一实施例中,验证节点获取到该目标数据结构之后,则立即执行步骤S407-S409以完成提案区块的构建,即恢复提案区块。
在另一实施例中,如果当目标数据结构中存在经过分片处理的数据时提案节点需要在区块提案消息中携带分片标识,则验证节点在从区块提案消息中获取该目标数据结构时,还会从区块提案消息中查询分片标识,若从中查询到分片标识,则执行步骤S407-S409以完成提案区块的构建;反之,若未从中查寻到分片标识,则将该目标数据结构中的编码数据当作一个整体进行数据解码处理,即利用一个线程对该目标数据结构中的编码数据进行数据解码处理。
S407、所述验证节点从所述目标数据结构中获取所述各个编码数据以及所述区块头。
在一实施例中,如果目标数据结构中除了包括编码数据和提案区块的区块头之外,提案节点还需要将分片数目写入目标数据结构中,则验证节点在从该目标数据结构中获取各个编码数据以及提案区块的区块头时,还会从该目标数据结构中获取分片数目,以及确定目标数据结构中的编码数据的数目;当编码数据的数目与该分片数目一致时,执行步骤S408-S409。当编码数据的数目与该分片数目不一致时,可以向提案节点返回编码数据错误的指示信息;当提案节点接收到超过预设比例(如2/3)的验证节点均返回编码数据错误的指示信息时,可以重新构建并广播目标数据结构。
S408、所述验证节点通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段。
本申请实施例中,该至少两个线程可以是系统当前能够对该各个编码数据进行并行数据解码处理的部分或者全部线程。
在一实施例中,验证节点通过该至少两个线程同时对该各个编码数据中的至少两个编码数据进行数据解码处理,以确定各个编码数据分别对应的解码数据,即交易列表片段。在一实施方式中,同时处理的编码数据的数目与同时进行处理的线程的线程数一致。
在一实施方式中,如果数据编码处理为对数据进行序列化处理,则验证节点通过该至少两个线程同时对该各个编码数据中的至少两个编码数据进行数据解码处理,以确定各个编码数据分别对应的交易列表片段,包括:通过该至少两个线程同时对该各个编码数据中的至少两个编码数据进行反序列化处理,以确定各个编码数据分别对应的交易列表片段。
在可行的实施例中,如果系统当前能够对该各个编码数据进行数据解码处理的线程只有一个,则可以先利用该线程对编码数据进行数据解码处理,待存在能够进行并行数据解码处理的其他线程时,则利用之前的线程以及该其他线程对剩余未处理的编码数据进行并行数据解码处理。
S409、所述验证节点根据所述区块头以及各个交易列表片段构建所述提案区块,即进行提案区块恢复。
本申请实施例中,验证节点确定出各个编码数据分别对应的交易列表片段之后,根据各个交易列表片段构建交易列表,并根据该区块头以及该交易列表构建得到提案区块。如果验证节点获取到的数据无误,且数据恢复处理过程无误的话,验证节点构建得到的提案区块与提案节点获取到的提案区块一致。
在一实施方式中,验证节点根据各个交易列表片段构建交易列表的方式可以为:验证节点根据各个编码数据在该目标数据结构中的排列顺序,确定各个交易列表片段的排列顺序。各个交易列表片段的排列顺序可以与其对应的各个编码数据在该目标数据结构中的排列顺序保持一致,也可以与其对应的各个编码数据在该目标数据结构中的排列顺序相反;当然,两者的排列顺序也可以是其他对应关系;两者的排列顺序的具体对应关系,可以与目标数据结构构建过程中两者的排列顺序的对应关系保持一致,可以在区块链网络中进行事先约定,例如写入智能合约中。验证节点按照确定出的各个交易列表片段的排列顺序对各个交易列表片段进行拼接处理,得到交易列表。如果验证节点获取到的数据无误,且数据恢复处理过程无误的话,验证节点构建得到的交易列表与原始提案区块中的交易列表一致。
本申请实施例中,验证节点在构建得到提案区块之后,就可以对提案区块(即真实的区块数据)进行验证,例如,对区块头中携带的签名数据进行验证、验证交易列表中的交易的有效性。当提案区块验证通过后,就可以通过诸如调用虚拟机等执行提案区块中的交易。另外,验证节点和提案节点还可以对该提案区块以及针对该提案区块的交易执行结果进行共识,当达成共识后,可以将该提案区块以及针对该提案区块的交易执行结果写入账本,并开启下一轮共识,或者说,从交易池中获取新的交易数据,并根据获取的新交易数据重新执行步骤S401-S409。
本申请实施例中,一方面,提案节点对提案区块中的交易列表进行分片处理,并通过至少两个线程对分片处理得到的多个交易列表片段进行并行数据编码处理,这样的处理方式相对于将交易列表当作一个整体进行数据编码处理(即利用一个线程进行数据编码处理),可以加快对交易列表编码的速度,编码效率更高,并且可以充分利用系统的数据处理资源;另一方面,验证节点通过至少两个线程对该交易列表所对应的编码数据进行并行数据解码处理,这样的处理方式相对于将该交易列表所对应的编码数据当作一个整体进行数据解码处理(即利用一个线程进行数据解码处理),可以加快对编码数据解码的速度,解码效率更高,并且可以充分利用系统的数据处理资源。由于提高了提案区块处理过程中的数据编码和数据解码速度,故能够有效提高提案区块处理的效率,从而能够提高区块链网络中的交易处理速度,进而提高整个区块链网络的交易吞吐量。
下面以本申请实施例提供的区块处理方法中涉及的数据编码处理为序列化处理,数据解码处理为反序列化处理为例,对本申请实施例提供的区块处理方法进行举例说明。
本申请实施例中,区块链网络中的节点可以维护两种数据结构,一种数据结构为与已知区块链类似的区块结构Block,该区块结构包含区块头Block Header和交易列表Transaction list,该区块结构Block将被区块链网络中的节点可识别执行(例如节点调用虚拟机执行);另一种数据结构Proposal Block是对区块结构Block的分片处理结果,同样包含区块头Block Header,另外包含各分片的字节码,并且可以包含分片数目Total。
区块提案消息Proposal Msg针对分片功能提供了分片字段use Shard Flag,通过该分片字段来指示该区块提案消息所包含的数据结构是否采用分片处理得到的,如果采用分片处理,区块提案消息会包含上述数据结构Proposal Block,而不包含上述区块结构Block;如果不采用分片处理,区块提案消息会包含上述区块结构Block,而不包含上述数据结构Proposal Block。
以下对提案区块采用分片处理的过程进行介绍。提案节点在构建区块提案消息的时候,首先从交易池获取足够的交易数据,根据获取的交易数据构建交易列表,并根据该交易列表构建成上述区块结构Block,以及对区块结构Block进行签名,将签名得到的签名数据写入区块结构Block的区块头Block Header。提案节点接着确定是否要分片处理,如果是(如提案区块处理规则指示需要进行分片处理),则对区块结构Block进行分片处理,以构建数据结构Proposal Block。可以是:将区块结构Block的区块头Block Header赋值给数据结构Proposal Block的区块头Block Header;将该区块结构Block中的交易列表按照系统资源情况进行分片,假设交易列表中有2000笔交易,系统CPU为8核,每个CPU能处理50笔交易,则将交易列表分为40个分片,通过多线程同时对这40个分片进行序列化处理,将每个分片序列化处理后得到的字节码集合按照相应分片在区块结构Block(或者说该交易列表)中的顺序附加到数据结构Proposal Block中的数据字段。同时可以在数据结构Proposal Block中记录分片数目Total,其值为40。
提案节点按照上述过程处理完分片后,将得到的数据结构Proposal Block填充到区块提案消息Proposal Msg中,同时区块提案消息Proposal Msg的分片字段use ShardFlag标记为采用分片。提案节点将构建好的区块提案消息广播给区块链网络中的其他验证节点。
区块链网络中的其他验证节点收到提案节点广播的区块提案消息后,需要对提案区块进行验证以及后续虚拟机执行,首先判断区块提案消息Proposal Msg的分片字段useShard Flag是否有标记为采用分片,如果有,则需要对分片进行解码处理(或者说恢复处理)。首先构建上述区块结构Block,从区块提案消息Proposal Msg中获取数据结构Proposal Block,将数据结构Proposal Block的区块头Block Header赋值给构建的区块结构Block的区块头Block Header。接着基于区块头Block Header里的交易笔数分配对应大小的交易列表空间,该交易列表空间将用来对分片进行恢复使用。启用多个线程对数据结构Proposal Block中的分片数据进行并行反序列化处理,将每个分片数据(即每个字节码集合)恢复成交易列表片段。在一实施方式中,可以检查数据结构Proposal Block里的分片数量Total,并启用等量的多个线程对数据结构Proposal Block中的分片数据进行并行反序列化处理,将每个分片数据恢复成交易列表片段。然后将恢复出的交易列表片段按照在数据结构Proposal Block中的相应分片数据的位置,写入构建的区块结构Block中的交易列表空间对应位置。
验证节点通过对分片恢复后,就可以对真实的区块数据(即提案区块)Block进行验证,例如验证区块头Block Header中的签名数据、验证交易列表里的交易有效性。当真实的区块数据验证通过后,就可以调用虚拟机执行提案区块里的交易。验证节点和提案节点还可以对提案区块以及针对提案区块的交易执行结果进行共识,当达成共识后,可以将该提案区块以及针对该提案区块的交易执行结果写入账本,并开启下一轮共识,或者说,从交易池中获取新的交易数据,并根据获取的新交易数据重新执行上述步骤。
采用上述方法,区块链网络中的提案节点和验证节点通过分片处理方法可以充分利用系统资源(如CPU计算资源、内存资源等),通过多个进程进行并行处理可以加速提案区块的预处理(如序列化处理)、恢复处理和验证等,可以加速处理区块提案广播给验证节点的速度,以及在整体上提高共识效率,从而可以提前进入下一轮共识,包括提前生成下一个提案区块等等,进而可以有效提高区块链网络的交易吞吐量。
需要说明的是,用于执行上述方法实施例中各步骤的执行主体可以是由硬件构成,也可以是由软件构成,还可以是由软硬件结合构成。
请参阅图7,为本申请实施例提供的一种区块处理装置的结构示意图。本申请实施例中所描述的区块处理装置,可以对应于前文所述的提案节点,所述装置包括:
处理单元701,用于获取提案区块,所述提案区块包括区块头和交易列表;
所述处理单元701,还用于对所述交易列表进行分片处理,得到多个交易列表片段;
所述处理单元701,还用于通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据;
所述处理单元701,还用于根据所述区块头以及各个编码数据构建目标数据结构;
通信单元702,用于将所述目标数据结构广播给区块链网络中的验证节点。
在一实施例中,所述处理单元701具体用于:通过至少两个线程同时对所述多个交易列表片段中的至少两个交易列表片段进行序列化处理,确定各个交易列表片段分别对应的字节码;将所述各个交易列表片段分别对应的字节码确定为所述各个交易列表片段分别对应的编码数据。
在一实施例中,所述处理单元701具体用于:根据各个交易列表片段在所述交易列表中的排列顺序,确定各个编码数据的目标排列顺序;构建目标数据结构,其中,所述目标数据结构包括所述区块头以及根据所述目标排列顺序进行排序后的所述各个编码数据。
在一实施例中,所述处理单元701具体用于:获取系统的数据处理资源的相关信息;根据所述数据处理资源的相关信息,确定对所述交易列表进行并行数据编码处理的线程的线程数;根据所述线程数对所述交易列表进行分片处理,得到多个交易列表片段。
在一实施例中,所述处理单元701还用于:在所述各个编码数据中添加起始标识和结尾标识中的一种或者多种;或者,在所述各个编码数据中添加相应的数据量信息。
在一实施例中,所述处理单元701具体用于:当满足分片条件时,对所述交易列表进行分片处理,得到多个交易列表片段;其中,满足分片条件包括所述交易列表的数据量大于或等于数据量阈值、提案区块处理规则指示需要对提案区块中的交易列表进行分片处理、系统配置支持多线程并行处理中的一种或多种。
在一实施例中,所述处理单元701还用于:生成区块提案消息,其中,所述区块提案消息包括所述目标数据结构以及分片标识;所述通信单元702具体用于:将所述区块提案消息广播给区块链网络中的验证节点。
在另一实施例中,本申请实施例中所描述的区块处理装置,可以对应于前文所述的验证节点,所述装置包括的处理单元701和通信单元702用于实现如下功能:
通信单元702,用于获取区块链网络中的提案节点广播的目标数据结构,所述目标数据结构是所述提案节点通过至少两个线程对多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据,并根据各个编码数据以及提案区块包括的区块头构建得到的,其中,所述多个交易列表片段是所述提案节点对所述提案区块包括的交易列表进行分片处理得到的;
处理单元701,用于从所述目标数据结构中获取所述各个编码数据以及所述区块头;
所述处理单元701,还用于通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段;
所述处理单元701,还用于根据所述区块头以及各个交易列表片段构建所述提案区块。
在一实施例中,所述目标数据结构还包括分片数目,所述处理单元701具体用于:从所述目标数据结构中获取所述分片数目,以及确定所述编码数据的数目;当所述编码数据的数目与所述分片数目一致时,通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段。
在一实施例中,所述通信单元702具体用于:接收区块链网络中的提案节点广播的区块提案消息,其中,所述区块提案消息包括目标数据结构;从所述区块提案消息中获取所述目标数据结构;所述处理单元701具体用于:当所述区块提案消息还包括分片标识时,从所述目标数据结构中获取所述各个编码数据以及所述区块头。
可以理解的是,本申请实施例的区块处理装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例中的相关描述,此处不再赘述。
在可行的实施例中,本申请实施例提供的区块处理装置可以采用软件方式实现,区块处理装置可以存储在存储器中,其可以是程序和插件等形式的软件,并包括一系列的单元,包括处理单元和通信单元;其中,处理单元和通信单元用于实现本申请实施例提供的区块处理方法。
在其它可行的实施例中,本申请实施例提供的区块处理装置也可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的区块处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的区块处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
本申请实施例中,一方面,对提案区块中的交易列表进行分片处理,并通过至少两个线程对分片处理得到的多个交易列表片段进行并行数据编码处理,这样的处理方式相对于将交易列表当作一个整体进行数据编码处理(即利用一个线程进行数据编码处理),可以加快对交易列表编码的速度,编码效率更高;另一方面,通过至少两个线程对该交易列表所对应的编码数据进行并行数据解码处理,这样的处理方式相对于将该交易列表所对应的编码数据当作一个整体进行数据解码处理(即利用一个线程进行数据解码处理),可以加快对编码数据解码的速度,解码效率更高。由于提高了提案区块处理过程中的数据编码和数据解码速度,故能够有效提高提案区块处理的效率,从而能够提高区块链网络中的交易处理速度,进而提高整个区块链网络的交易吞吐量。
请参阅图8,为本申请实施例提供的一种计算机设备的结构示意图。本申请实施例中所描述的计算机设备可以对应于前文所述的提案节点,包括:处理器801、通信接口802及存储器803。其中,处理器801、通信接口802及存储器803可通过总线或其他方式连接,本申请实施例以通过总线连接为例。
其中,处理器801(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:CPU可以用于解析用户向计算机设备所发送的开关机指令,并控制计算机设备进行开关机操作;再如:CPU可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口802可选的可以包括标准的有线接口、无线接口(如Wi-Fi、移动通信接口等),受处理器801的控制用于收发数据。存储器803(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器803既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器803提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在本申请实施例中,处理器801通过运行存储器803中的可执行程序代码,执行如下操作:
获取提案区块,所述提案区块包括区块头和交易列表;对所述交易列表进行分片处理,得到多个交易列表片段;通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据;根据所述区块头以及各个编码数据构建目标数据结构,并通过通信接口802将所述目标数据结构广播给区块链网络中的验证节点。
在一实施例中,所述处理器801通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据时,具体用于:通过至少两个线程同时对所述多个交易列表片段中的至少两个交易列表片段进行序列化处理,确定各个交易列表片段分别对应的字节码;将所述各个交易列表片段分别对应的字节码确定为所述各个交易列表片段分别对应的编码数据。
在一实施例中,所述处理器801根据所述区块头以及各个编码数据构建目标数据结构时,具体用于:根据各个交易列表片段在所述交易列表中的排列顺序,确定各个编码数据的目标排列顺序;构建目标数据结构,其中,所述目标数据结构包括所述区块头以及根据所述目标排列顺序进行排序后的所述各个编码数据。
在一实施例中,所述处理器801对所述交易列表进行分片处理,得到多个交易列表片段时,具体用于:获取系统的数据处理资源的相关信息;根据所述数据处理资源的相关信息,确定对所述交易列表进行并行数据编码处理的线程的线程数;根据所述线程数对所述交易列表进行分片处理,得到多个交易列表片段。
在一实施例中,所述处理器801还用于:在所述各个编码数据中添加起始标识和结尾标识中的一种或者多种;或者,在所述各个编码数据中添加相应的数据量信息。
在一实施例中,所述处理器801具体用于:当满足分片条件时,对所述交易列表进行分片处理,得到多个交易列表片段;其中,满足分片条件包括所述交易列表的数据量大于或等于数据量阈值、提案区块处理规则指示需要对提案区块中的交易列表进行分片处理、系统配置支持多线程并行处理中的一种或多种。
在一实施例中,所述处理器801还用于:生成区块提案消息,其中,所述区块提案消息包括所述目标数据结构以及分片标识;通过通信接口802将所述区块提案消息广播给区块链网络中的验证节点。
在可行的实施例中,本申请实施例中所描述的计算机设备可以对应于前文所述的提案节点,处理器801通过运行存储器803中的可执行程序代码,执行如下操作:
通过通信接口802获取区块链网络中的提案节点广播的目标数据结构,所述目标数据结构是所述提案节点通过至少两个线程对多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据,并根据各个编码数据以及提案区块包括的区块头构建得到的,其中,所述多个交易列表片段是所述提案节点对所述提案区块包括的交易列表进行分片处理得到的;
从所述目标数据结构中获取所述各个编码数据以及所述区块头;通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段;根据所述区块头以及各个交易列表片段构建所述提案区块。
在一实施例中,所述目标数据结构还包括分片数目,处理器801具体用于:从所述目标数据结构中获取所述分片数目,以及确定所述编码数据的数目;当所述编码数据的数目与所述分片数目一致时,通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段。
在一实施例中,处理器801具体用于:通过通信接口802接收区块链网络中的提案节点广播的区块提案消息,其中,所述区块提案消息包括目标数据结构;从所述区块提案消息中获取所述目标数据结构;当所述区块提案消息还包括分片标识时,从所述目标数据结构中获取所述各个编码数据以及所述区块头。
具体实现中,本申请实施例中所描述的处理器801、通信接口802及存储器803可执行本申请实施例提供的区块处理方法中所描述的提案节点或者验证节点的实现方式,也可执行本申请实施例提供的区块处理装置中所描述的实现方式,在此不再赘述。
本申请实施例中,一方面,对提案区块中的交易列表进行分片处理,并通过至少两个线程对分片处理得到的多个交易列表片段进行并行数据编码处理,这样的处理方式相对于将交易列表当作一个整体进行数据编码处理(即利用一个线程进行数据编码处理),可以加快对交易列表编码的速度,编码效率更高;另一方面,通过至少两个线程对该交易列表所对应的编码数据进行并行数据解码处理,这样的处理方式相对于将该交易列表所对应的编码数据当作一个整体进行数据解码处理(即利用一个线程进行数据解码处理),可以加快对编码数据解码的速度,解码效率更高。由于提高了提案区块处理过程中的数据编码和数据解码速度,故能够有效提高提案区块处理的效率,从而能够提高区块链网络中的交易处理速度,进而提高整个区块链网络的交易吞吐量。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如本申请实施例提供的区块处理方法。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行如本申请实施例提供的区块处理方法。其具体实现方式可参考前文描述,此处不再赘述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请部分实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种区块处理方法,其特征在于,所述方法包括:
获取提案区块,所述提案区块包括区块头和交易列表;
对所述交易列表进行分片处理,得到多个交易列表片段;
通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据;
根据所述区块头以及各个编码数据构建目标数据结构,并将所述目标数据结构广播给区块链网络中的验证节点。
2.如权利要求1所述的方法,其特征在于,所述通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据,包括:
通过至少两个线程同时对所述多个交易列表片段中的至少两个交易列表片段进行序列化处理,确定各个交易列表片段分别对应的字节码;
将所述各个交易列表片段分别对应的字节码确定为所述各个交易列表片段分别对应的编码数据。
3.如权利要求1所述的方法,其特征在于,所述根据所述区块头以及各个编码数据构建目标数据结构,包括:
根据各个交易列表片段在所述交易列表中的排列顺序,确定各个编码数据的目标排列顺序;
构建目标数据结构,其中,所述目标数据结构包括所述区块头以及根据所述目标排列顺序进行排序后的所述各个编码数据。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述对所述交易列表进行分片处理,得到多个交易列表片段,包括:
获取系统的数据处理资源的相关信息;
根据所述数据处理资源的相关信息,确定对所述交易列表进行并行数据编码处理的线程的线程数;
根据所述线程数对所述交易列表进行分片处理,得到多个交易列表片段。
5.如权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
在所述各个编码数据中添加起始标识和结尾标识中的一种或者多种;
或者,在所述各个编码数据中添加相应的数据量信息。
6.如权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
当满足分片条件时,对所述交易列表进行分片处理,得到多个交易列表片段;
其中,满足分片条件包括所述交易列表的数据量大于或等于数据量阈值、提案区块处理规则指示需要对提案区块中的交易列表进行分片处理、系统配置支持多线程并行处理中的一种或多种。
7.如权利要求1-3中任一项所述的方法,其特征在于,所述将所述目标数据结构广播给区块链网络中的验证节点,包括:
生成区块提案消息,其中,所述区块提案消息包括所述目标数据结构以及分片标识;
将所述区块提案消息广播给区块链网络中的验证节点。
8.一种区块处理方法,其特征在于,所述方法包括:
获取区块链网络中的提案节点广播的目标数据结构,所述目标数据结构是所述提案节点通过至少两个线程对多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据,并根据各个编码数据以及提案区块包括的区块头构建得到的,其中,所述多个交易列表片段是所述提案节点对所述提案区块包括的交易列表进行分片处理得到的;
从所述目标数据结构中获取所述各个编码数据以及所述区块头;
通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段;
根据所述区块头以及各个交易列表片段构建所述提案区块。
9.如权利要求8所述的方法,其特征在于,所述目标数据结构还包括分片数目,所述方法还包括:
从所述目标数据结构中获取所述分片数目,以及确定所述编码数据的数目;
当所述编码数据的数目与所述分片数目一致时,执行所述通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段的步骤。
10.如权利要求8或9所述的方法,其特征在于,所述获取区块链网络中的提案节点广播的目标数据结构,包括;
接收区块链网络中的提案节点广播的区块提案消息,其中,所述区块提案消息包括目标数据结构;
从所述区块提案消息中获取所述目标数据结构;
其中,所述方法还包括:
当所述区块提案消息还包括分片标识时,执行所述从所述目标数据结构中获取所述各个编码数据以及所述区块头的步骤。
11.一种区块处理装置,其特征在于,所述装置包括:
处理单元,用于获取提案区块,所述提案区块包括区块头和交易列表;
所述处理单元,还用于对所述交易列表进行分片处理,得到多个交易列表片段;
所述处理单元,还用于通过至少两个线程对所述多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据;
所述处理单元,还用于根据所述区块头以及各个编码数据构建目标数据结构;
通信单元,用于将所述目标数据结构广播给区块链网络中的验证节点。
12.一种区块处理装置,其特征在于,所述装置包括:
通信单元,用于获取区块链网络中的提案节点广播的目标数据结构,所述目标数据结构是所述提案节点通过至少两个线程对多个交易列表片段进行并行数据编码处理,确定各个交易列表片段分别对应的编码数据,并根据各个编码数据以及提案区块包括的区块头构建得到的,其中,所述多个交易列表片段是所述提案节点对所述提案区块包括的交易列表进行分片处理得到的;
处理单元,用于从所述目标数据结构中获取所述各个编码数据以及所述区块头;
所述处理单元,还用于通过至少两个线程对所述各个编码数据进行并行数据解码处理,确定所述各个编码数据分别对应的交易列表片段;
所述处理单元,还用于根据所述区块头以及各个交易列表片段构建所述提案区块。
13.一种计算机设备,其特征在于,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有第一可执行程序代码,所述处理器用于调用所述第一可执行程序代码,执行如权利要求1-7中任一项所述的区块处理方法;或者,所述存储器存储有第二可执行程序代码,所述处理器用于调用所述第二可执行程序代码,执行如权利要求8-10中任一项所述的区块处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有第一计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-7中任一项所述的区块处理方法;或者,所述计算机可读存储介质中存储有第二计算机程序,当其在计算机上运行时,使得计算机执行如权利要求8-10中任一项所述的区块处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110579892.5A CN115409507A (zh) | 2021-05-26 | 2021-05-26 | 区块处理方法、区块处理装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110579892.5A CN115409507A (zh) | 2021-05-26 | 2021-05-26 | 区块处理方法、区块处理装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115409507A true CN115409507A (zh) | 2022-11-29 |
Family
ID=84155737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110579892.5A Pending CN115409507A (zh) | 2021-05-26 | 2021-05-26 | 区块处理方法、区块处理装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115409507A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055064A (zh) * | 2023-03-17 | 2023-05-02 | 安徽中科晶格技术有限公司 | 区块链分片中多区块同时共识方法、系统、介质及设备 |
CN117097736A (zh) * | 2023-10-19 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 资源数据处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-05-26 CN CN202110579892.5A patent/CN115409507A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055064A (zh) * | 2023-03-17 | 2023-05-02 | 安徽中科晶格技术有限公司 | 区块链分片中多区块同时共识方法、系统、介质及设备 |
CN117097736A (zh) * | 2023-10-19 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 资源数据处理方法、装置、电子设备及存储介质 |
CN117097736B (zh) * | 2023-10-19 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 资源数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN108932348B (zh) | 区块链的合并处理方法、装置、区块链节点及存储介质 | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN108572986B (zh) | 一种数据更新的方法及节点设备 | |
EP4300323A1 (en) | Data processing method and apparatus for blockchain network, computer device, computer readable storage medium, and computer program product | |
CN108769264B (zh) | 一种区块链分域方法 | |
CN108876384B (zh) | 一种交易数据的处理方法及装置 | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN103927338A (zh) | 日志信息入库处理方法和装置 | |
CN115409507A (zh) | 区块处理方法、区块处理装置、计算机设备及存储介质 | |
CN112837163A (zh) | 基于区块链的批量交易上链方法及系统 | |
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN111507717A (zh) | 数据处理方法、装置、区块节点及计算机可读存储介质 | |
CN110570311B (zh) | 区块链的共识方法、装置及设备 | |
CN112182113B (zh) | 区块链共识方法、系统、电子设备及存储介质 | |
CN110597922A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN114127724A (zh) | 针对多副本存储的完整性审计 | |
CN111177121A (zh) | 订单数据反馈方法、装置、计算机设备及存储介质 | |
CN111629063A (zh) | 基于区块链的分布式文件下载的方法和电子设备 | |
CN110659905A (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN110825706A (zh) | 一种数据压缩的方法和相关设备 | |
CN108776665B (zh) | 一种数据处理方法及装置 | |
CN114448972A (zh) | 分布式存储日志压缩下载方法、系统、终端及存储介质 | |
CN115988001A (zh) | 区块链系统的共识投票处理方法、装置、设备以及介质 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 |
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 |