CN117011033A - 基于区块链系统的交易处理方法、装置及相关设备 - Google Patents

基于区块链系统的交易处理方法、装置及相关设备 Download PDF

Info

Publication number
CN117011033A
CN117011033A CN202210454695.5A CN202210454695A CN117011033A CN 117011033 A CN117011033 A CN 117011033A CN 202210454695 A CN202210454695 A CN 202210454695A CN 117011033 A CN117011033 A CN 117011033A
Authority
CN
China
Prior art keywords
transaction
node
block
batch
batches
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
Application number
CN202210454695.5A
Other languages
English (en)
Inventor
邵珠光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210454695.5A priority Critical patent/CN117011033A/zh
Publication of CN117011033A publication Critical patent/CN117011033A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种基于区块链系统的交易处理方法、装置及相关设备,可以应用于云技术、人工智能、区块链、车联网、智慧交通、智能家居等各种领域或场景,该方法包括:当满足出块条件时,将第一节点的交易池中M个交易批次的批次标识打包到第一区块,第一节点的交易池包括的各个交易批次中的交易与第一节点对应的辅助值相匹配;基于第一区块生成第一处理指令,第一处理指令包括第一区块;将第一处理指令发送给第二节点,第一处理指令用于指示第二节点在对第一区块共识通过后,获取第一区块对应的第二区块,并将第二区块写入区块链中,第二区块包括M个交易批次对应的交易内容数据以及交易结果数据。通过本申请的方法,可以提升区块链系统的交易处理性能。

Description

基于区块链系统的交易处理方法、装置及相关设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链系统的交易处理方法、一种基于区块链系统的交易处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。
背景技术
目前,区块链系统中的各个节点会对每个收到的交易进行广播,以通知其他所有节点知晓,每个节点都会将交易放入自己的交易池,在交易打包时从交易池中选择指定数量的交易生成区块,再将区块广播给各个节点,由各个节点对区块进行共识,以在共识通过后对区块上链。这种交易处理方式,要把每笔交易广播至其他所有节点,很容易导致网络消息拥塞,尤其是在高并发时,另外,由于要把所有交易相关数据打包进区块,也意味着区块的传输消息体较大。
因此设计一种新的交易处理机制,提升区块链系统的交易处理性能是有必要的。
发明内容
本申请实施例提供了一种基于区块链系统的交易处理方法、装置及相关设备,可以基于交易批次设计一种新的交易处理机制,提升区块链系统的交易处理性能。
一方面,本申请实施例提供了一种基于区块链系统的交易处理方法,应用于所述区块链系统中的第一节点,所述方法包括:
当满足出块条件时,对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,所述第一区块包括M个交易批次的批次标识,所述第一节点的交易池包括的各个交易批次中的交易与所述第一节点对应的辅助值相匹配,所述M为正整数;
基于所述第一区块生成第一处理指令,所述第一处理指令包括所述第一区块;
将所述第一处理指令发送给所述区块链系统中的第二节点,所述第一处理指令用于指示所述第二节点在对所述第一区块共识通过后,获取所述第一区块对应的第二区块,并将所述第二区块写入区块链中,所述第二区块包括所述M个交易批次对应的交易内容数据以及交易结果数据。
一方面,本申请实施例提供了一种基于区块链系统的交易处理装置,应用于所述区块链系统中的第一节点,所述装置包括:
处理单元,用于当满足出块条件时,对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,所述第一区块包括M个交易批次的批次标识,所述第一节点的交易池包括的各个交易批次中的交易与所述第一节点对应的辅助值相匹配,所述M为正整数;
所述处理单元,还用于基于所述第一区块生成第一处理指令,所述第一处理指令包括所述第一区块;
发送单元,用于将所述第一处理指令发送给所述区块链系统中的第二节点,所述第一处理指令用于指示所述第二节点在对所述第一区块共识通过后,获取所述第一区块对应的第二区块,并将所述第二区块写入区块链中,所述第二区块包括所述M个交易批次对应的交易内容数据以及交易结果数据。
一方面,本申请实施例提供了一种计算机设备,该计算机设备包括处理器、通信接口和存储器,该处理器、通信接口和存储器相互连接,其中,该存储器存储有计算机程序,该处理器用于调用该计算机程序,执行上述任一可能实现方式的基于区块链系统的交易处理方法。
一方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现该任一可能实现方式的基于区块链系统的交易处理方法。
相应地,本申请实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行实现本申请实施例提供的基于区块链系统的交易处理方法的步骤。
相应地,本申请实施例还提供了一种计算机程序,上述计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行本申请实施例提供的基于区块链系统的交易处理方法。
本申请提供的基于区块链系统的交易处理方法,设计了一种新的交易处理机制,在该交易处理机制中,第一节点的交易池只保存与第一节点对应的辅助值相匹配的交易,因此针对每笔交易可以直接转发给指定节点,无需广播给所有节点,可以解决交易广播过程导致的网络消息拥塞的问题;另外,区块链系统中的第一节点可以将第一节点的交易池中M个交易批次的批次标识打包到第一区块中,并基于第一区块生成第一处理指令,由区块链系统中的第二节点响应第一处理指令,在对第一区块共识通过后,将包括M个交易批次对应的交易内容数据以及交易结果数据的第二区块写入区块链中,因此本申请只需将一个或多个批次标识打包到第一区块中,再将第一区块广播给各个节点,可以解决区块的传输消息体比较大的问题,可以有效地提升区块链系统的交易处理性能。
附图说明
为了更清楚地说明本申请实施例技术方法,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种区块链系统的系统结构示意图;
图2为本申请实施例提供的一种区块结构的示意图;
图3为本申请实施例提供的单一交易池方案的示意图;
图4为本申请实施例提供的一种打包交易生成区块的示意图;
图5为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图一;
图6为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图二;
图7为本申请实施例提供的一种交易转发方式的示意图;
图8为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图三;
图9为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图四;
图10为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图五;
图11为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图六;
图12为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图七;
图13为本申请实施例提供的一种基于区块链系统的交易处理装置的结构示意图;
图14为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方法进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图1,图1是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer ToPeer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行数字资产的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的数字资产转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
记账节点是区块链系统中具备出块功能以及共识功能的节点,可以是区块链系统中存储完整区块链的全节点。区块链系统中的记账节点可分为主节点和从节点,主节点是指当前阶段负责出块(即生成区块)的记账节点,从节点是指区块链系统中除主节点以外的记账节点。记账节点可以是终端或者服务器等计算机设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
目前,业内交易池采用的是单一交易池的方案,参阅图3,节点A对每个收到的交易进行广播,以通知其他所有节点知晓,每个节点都会将接收到的交易放入自己的交易池。当主节点在生成区块时,如图4所示,主节点会从交易池中打包指定数量的交易(例如m个交易)生成目标区块,再基于目标区块生成区块提案信息,并广播该区块提案消息给区块链系统中的各个从节点,区块链系统中的各个从节点可以针对目标区块进行共识,在共识通过后,将目标区块写入本地的区块链中。在共识过程中,各个从节点可以针对目标区块进行投票,例如可以针对目标区块中的交易数据的合法性、和/或该交易数据所对应的各笔交易的执行顺序等进行投票得到投票结果,投票结果包括赞成和反对,当赞成票数和区块链系统中的记账节点的数量的比值大于预设比值(例如2/3)时,则可以认为目标区块共识成功。例如,主节点接收各个从节点的投票结果,若超过2/3的投票结果为赞成,则认为从节点同意将目标区块上链,可以将目标区块添加到存储的区块链上。另外,从节点也可以获取区块链系统中其他节点关于目标区块的投票结果,并基于投票结果确定是否将该目标区块添加到本地的区块链上。
上述交易处理方式,要把每笔交易广播至其他所有节点,很容易导致网络消息拥塞,尤其是在高并发时,会影响到整体的交易处理性能,另外,由于要把所有交易数据打包进区块,也意味着在将区块广播给其他从节点时,区块的传输消息体较大,不利于区块的广播。
基于上述问题,本申请提供了一种基于区块链系统的交易处理方法,该方法大致包括:
区块链系统中的每个节点均保存了辅助值与节点标识之间的对应关系,当任一节点接收到待处理交易时,可以确定与待处理交易相匹配的匹配辅助值,再利用保存的对应关系,得到该匹配辅助值对应的节点标识,若该节点标识指示的节点是该任一节点,则该任一节点将待处理交易保存在自己的交易池中,否则该任一节点可以将该待处理交易直接发送给该节点标识指示的节点。通过该方法,可以将每笔交易直接转发给指定节点,无需广播给所有节点,可以解决交易广播过程导致的网络消息拥塞的问题。
当满足出块条件时,区块链系统的中的主节点(即负责出块的节点)可以将主节点的交易池中的交易批次的批次标识打包到第一区块中,并基于第一区块生成第一处理指令,进一步将第一处理指令广播给区块链系统中的各个从节点,由各个从节点响应第一处理指令,并在对第一区块共识通过后,将包括M个交易批次对应的交易内容数据以及交易结果数据的第二区块写入区块链中。采用该方法,主节点可以只将一个或多个批次标识打包到第一区块中,再将第一区块进行广播,可以解决区块的传输消息体比较大的问题。
同时,各个从节点在对第一区块共识时,是利用第一区块中的批次标识从各个节点的内存中获取该M个交易批次,再基于M个交易批次中的交易对第一区块进行的共识,各个节点具体可以采用并行的方式执行M个交易批次中的交易,在各个节点的执行结果一致时,对第一区块共识通过。在现有方案中,只能以串行的方式逐个执行交易,而采用本方案,可以基于并行的方式执行各个交易批次,能够充分利用多核CPU的能力,提高交易的处理性能和处理效率。
另外,当区块提交后或者说上链后,需要从交易池中删除已经打包进区块的交易,现在的方案只能逐个删除,即需要针对区块中的每笔交易进行逐个比对、删除,删除的效率较低,而本申请可以获取已打包进区块中的批次标识,利用批次标识删除交易池中的交易批次,可以实现交易的批量删除,从而提高交易的删除效率。
综上所述,本申请提供的基于区块链系统的交易处理方法,设计了一种新的交易处理机制,该交易处理机制涉及了交易从接收到打包,以及打包完成后从交易池删除的整个流程,可以有效地提升区块链系统的交易处理性能。
下面对基于区块链系统的交易处理方法的具体实现方式进行详细阐述。
请参阅图5,图5为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图一。该方法应用于上述区块链系统中的第一节点,该方法包括但不限于如下步骤:
S501、当满足出块条件时,对第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,第一区块包括M个交易批次的批次标识,第一节点的交易池包括的各个交易批次中的交易与第一节点对应的辅助值相匹配,M为正整数。
在本申请实施例中,第一节点是区块链系统中当前阶段负责出块的记账节点,记账节点是指区块链系统中具备出块功能以及共识功能的节点。若区块链系统中的各个记账节点是按照预设顺序轮流出块,则第一节点是当前阶段轮询到的记账节点;或者,各个记账节点可分别具有一个出块周期,第一节点为当前对应的出块周期到达的记账节点。
区块链系统中的各个节点可以保存辅助值与节点标识之间的对应关系,当任一节点接收到待处理交易时,可以确定与待处理交易相匹配的匹配辅助值,再利用保存的对应关系,得到该匹配辅助值对应的节点标识,若该节点标识指示的节点是该任一节点,则该任一节点将待处理交易保存在自己的交易池中,否则该任一节点可以将该待处理交易直接发送给该节点标识指示的节点。因此第一节点的交易池包括的各个交易批次中的交易均与第一节点对应的辅助值相匹配。通过该方法,可以将每笔交易直接转发给指定节点,无需广播给所有节点,可以解决交易广播过程导致的网络消息拥塞的问题。
在一实施方式中,第一节点可以从第一节点的交易池中按照各个交易批次创建的先后顺序获取待处理交易批次,若第一区块能够容纳该待处理交易批次,则将该待处理交易批次作为目标交易批次,将该目标交易批次的批次标识打包到第一区块中,可以重复该步骤,直到第一区块不能够容纳下一待处理交易批次为止,最终第一区块可以包括M个交易批次的批次标识,M为正整数。
S502、基于第一区块生成第一处理指令,第一处理指令包括第一区块。
第一节点可以基于第一区块生成第一处理指令。在一实施例中,第一处理指令可以包括第一区块和第一数字签名,第一数字签名可以是第一节点利用第一节点的私钥对第一区块的摘要数据进行加密得到的,第一区块的摘要数据可以是第一节点按照预设哈希算法对第一区块进行哈希处理得到的。
S503、将第一处理指令发送给区块链系统中的第二节点,第一处理指令用于指示第二节点在对第一区块共识通过后,获取第一区块对应的第二区块,并将第二区块写入区块链中,第二区块包括M个交易批次对应的交易内容数据以及交易结果数据。
第二节点是区块链系统中除第一节点以外的记账节点。一实施方式中,当第一处理指令包括第一区块和第一数字签名时,第二节点可以按照预设哈希算法对第一区块进行加密,得到第一哈希数据,以及利用第一节点的公钥对第一数字签名进行解密,得到第一解密数据,若第一哈希数据和第一解密数据一致,则对第一区块进行共识。
第二节点的内存中包括其他节点的交易池中已广播的交易批次。在一可行的实现方式中,第二节点的内存中包括上述M个交易批次,第二节点在对第一区块进行共识时,第二节点可以获取第一区块包括的区块标识,利用该区块标识从第二节点的内存中获取上述M个交易批次,并执行M个交易批次中的交易,得到M个交易批次对应的交易结果数据,第二节点可以获取区块链系统中其它节点,针对M个交易批次得到的交易结果数据,若其它节点得到的交易结果数据与第二节点得到的交易结果数据一致,则第二节点可以确定对第一区块共识通过,并将M个交易批次对应的交易内容数据(即交易本身包括的内容数据)以及交易结果数据打包到第一区块中,具体是打包到第一区块的区块体中,得到第一区块对应的第二区块,再将第二区块写入本地的区块链上。另外,第一节点也可以获取各个第二节点针对M个交易批次得到的交易结果数据,若第二节点得到的交易结果数据一致,则第一节点可以将第二区块写入本地的区块链上。
在本申请实施例中,当满足出块条件时,区块链系统中的第一节点可以将第一节点的交易池中M个交易批次的批次标识打包到第一区块中,并基于第一区块生成第一处理指令,通过将第一处理指令发给区块链系统中的第二节点,可以由第二节点响应第一处理指令,在对第一区块共识通过后,将包括M个交易批次对应的交易内容数据以及交易结果数据的第二区块写入区块链中。采用本申请的方法,可以只将一个或多个批次标识打包到第一区块中,可以避免区块的传输消息体比较大的问题;同时,每个节点的交易池只保存与每个节点对应的辅助值相匹配的交易,可以将每笔交易直接转发给指定节点,解决交易广播过程导致的网络消息拥塞的问题,可以有效地提升区块链系统的交易处理性能。
请参阅图6,图6为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图二。该方法由区块链系统中的第一节点和第二节点共同执行,该方法包括但不限于如下步骤:
S601、当满足出块条件时,区块链系统中的第一节点对第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,第一区块包括M个交易批次的批次标识,第一节点的交易池包括的各个交易批次中的交易与第一节点对应的辅助值相匹配,M为正整数。
一实现方式中,第一节点可以获取待处理交易,待处理交易可以是区块链账户所在的终端发送给第一节点的,也可以是由区块链系统中的其他节点发送给第一节点的。进一步可以获取待处理交易的交易标识,该交易标识具体可以是待处理交易的key值,该key值可以是字符串,用于唯一标识该待处理交易。然后第一节点可以利用待处理交易的交易标识确定待处理交易对应的模值,具体地,将待处理交易的交易标识(例如key值)转换成二进制数,将区块链系统中的记账节点的数量-1作为除数,将该二进制数除以(区块链系统中的记账节点的数量-1)得到的余数作为待处理交易对应的模值。
在可行的实施方式中,第一节点可以获取待处理交易和第二数字签名,该第二数字签名是利用该待处理交易的发送方的私钥对待处理交易的摘要数据进行加密得到的,待处理交易的摘要数据可以是按照预设哈希算法对待处理交易进行哈希处理得到的,第一节点利用该发送方的公钥对第二数字签名进行解密得到第二解密数据,按照预设哈希算法对待处理交易进行哈希处理得到第二哈希数据,若第二哈希数据与第二解密数据一致,则执行上述获取待处理交易的交易标识的步骤。
在一实施例中,若待处理交易对应的模值与第一节点对应的辅助值不一致,则获取区块链系统中与待处理交易对应的模值匹配的第三节点,并将待处理交易发送给第三节点,第三节点在对待处理交易验证通过后,可以将待处理交易写入第三节点的交易池中。
一可行的实现方式中,第一节点可以利用第一节点的私钥对待处理交易的摘要数据进行加密得到第三数字签名,待处理交易的摘要数据可以是按照预设哈希算法对待处理交易进行哈希处理得到的,再将第三数字签名和待处理交易发送给第三节点,第三节点利用第一节点的公钥对第三数字签名进行解密得到第三解密数据,按照预设哈希算法对待处理交易进行哈希处理得到第三哈希数据,若第三哈希数据与第三解密数据一致,则利用待处理交易的交易标识得到待处理交易的模值,若确定待处理交易的模值与第一节点对应的辅助值一致,则确定对待处理交易验证通过。
在另一实施例中,若待处理交易对应的模值与第一节点对应的辅助值一致,则第一节点可以确定待处理交易与第一节点对应的辅助值相匹配,并将待处理交易添加到第一节点的第一待广播交易批次中,第一待广播交易批次是第一节点的交易池中未广播的最新交易批次或新创建的交易批次。
具体地,第一节点在确定待处理交易与第一节点对应的辅助值相匹配时,可以从交易池中获取最新交易批次,若最新交易批次未被广播,则将未广播的最新交易批次作为第一待广播交易批次,将待处理交易添加到该第一待广播交易批次中;若该最新交易批次被广播,则可以创建新的交易批次,将新创建的交易批次作为第一待广播交易批次,将待处理交易添加到该第一待广播交易批次中。
一实现方式中,最新交易批次可以是指交易池中创建时间距离当前时间点最近的交易批次,或者是指交易池中包含的交易数量小于预设数量的多个未被广播的交易批次。当最新交易批次是交易池中创建时间距离当前时间点最近的交易批次时,每次会将接收到的交易添加到该距离当前时间点最近的交易批次中,若该距离当前时间点最近的交易批次包括的交易数量等于预设数量时,或该距离当前时间点最近的广播周期到达时,将该距离当前时间点最近的交易批次广播给区块链系统中的节点。当最新交易批次是指交易池中包含的交易数量小于预设数量的多个未被广播的交易批次时,可以将接收到的交易添加到该多个未被广播的交易批次中的任一交易批次中,当该任一交易批次包含的交易数量等于预设数量,或该任一交易批次的广播周期到达时,将该任一交易批次广播给区块链系统中的各个节点。
进一步地,若第一待广播交易批次中的交易数量满足预设广播条件,例如第一待广播交易批次中的交易数量等于预设数量,或,预设的广播周期到达,则将第一待广播交易批次发送至第二节点,第二节点再将第一待广播交易批次写入第二节点的内存中。
在一可行的方式中,第一节点可以利用第一节点的私钥对第一待广播交易批次的摘要数据进行加密得到第四数字签名,第一待广播交易批次的摘要数据是按照预设哈希算法对第一待广播交易批次进行哈希处理得到的。第一节点可以将第四数字签名和第一待广播交易批次发送给第二节点,第二节点利用第一节点的公钥对第四数字签名解密,得到第四解密数据,利用预设哈希算法对第一待广播交易批次进行哈希处理得到第四哈希数据,判断四解密数据和第四哈希数据是否一致,若四解密数据和第四哈希数据一致,第二节点则将第一待广播交易批次写入第二节点的内存中。
在一实施例中,第二节点将第一待广播交易批次写入第二节点的内存中,具体为:第二节点接收第一节点发送的第一待广播交易批次,利用第一待广播交易批次中的首个交易的交易标识,确定首个交易与第一节点对应的辅助值是否匹配,即利用首个交易的交易标识得到首个交易对应的模值,若首个交易对应的模值与第一节点对应的辅助值一致,则匹配,若首个交易对应的模值与第一节点对应的辅助值不一致,则不匹配。进一步地,若首个交易与第一节点对应的辅助值匹配,则利用第一待广播交易批次的批次标识,确定第二节点的内存中是否存在第一待广播交易批次。第一待广播交易批次的批次标识是基于第一待广播交易批次中的首个交易的交易标识生成的,可以是将第一待广播交易批次中的首个交易的交易标识作为第一待广播交易批次的批次标识,若第二节点的内存中各个交易批次的首个交易的交易标识都不是该第一待广播交易批次的批次标识,则确定第二节点的内存中不存在第一待广播交易批次,可以将第一待广播交易批次写入第二节点的内存中。
可理解的,第二节点的内存中会包括其他节点的交易池中被广播的各个交易批次,第二节点可以利用第二节点的内存中存储的交易批次获取上述M个交易批次,以对第一区块进行共识,以及获取第一区块对应的第二区块。
在一具体的实现方式中,如图7所示,节点A在接收到交易时,可以根据交易的key值进行取模,即将交易的key值转换为二进制数,利用该二进制数除以(区块链系统中的记账节点的数量-1)得到余数,将该余数作为交易对应的模值,模值指示与哪一个节点对应的辅助值一致,则将交易发送给该节点。因此,本申请可以通过对交易的key值进行取模判断,再将交易发送至对应的指定节点,可以解决交易广播过程导致的网络消息拥塞的问题。
另外,第一交易批次在广播给第二节点时,是以序列化数据的形式进行传输的,因此区块链系统中的第二节点需要对序列化数据进行反序列操作才能得到第一交易批次。在一实施例中,区块链系统中的节点可以并行地将多个交易批次广播给区块链系统中的其他节点,区块链系统中的节点也可以采用并行的方式对多个反序列数据进行反序列化操作得到多个被广播的交易批次,例如启动多个线程分别对多个被广播的交易批次对应的序列化数据进行反序列化操作,可见,基于交易批次可以充分利用多核CPU的能力,提高区块链系统的交易处理性能,降低资源的消耗。
其中,序列化数据是指对交易批次进行序列化操作得到的数据,序列化是将对象或者数据结构转化成特定的格式,使其可在网络中传输。反序列化则是与序列化相反的操作,可以将对象从序列化数据中还原出来。
在一实施例中,第一节点对第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,具体包括:第一节点从第一节点的交易池中获取第一交易批次,第一交易批次包括第一数量的交易,第一交易批次可以是按照交易批次创建的先后顺序从第一节点的交易池中获取到的先创建的交易批次。进一步地,第一节点可以获取第一区块中已打包的交易批次包括的交易,将第一区块中已打包的交易批次包括的交易的交易数量之和作为第一区块中已打包的交易批次包括的交易的第二数量。若第一数量与第二数量之和小于或等于预设的数量阈值(可以人为设定或按区块链系统的默认设置确定),则将第一交易批次确定为目标交易批次,并将目标交易批次的批次标识打包到第一区块中;若第一数量和第二数量之和大于数量阈值,则确定打包完成,并得到第一区块。本申请实施例,在将交易池中的交易批次打包至同一个区块时,需要保证该区块中的交易数量不超过预设的数量阈值。
S602、第一节点基于第一区块生成第一处理指令,并将第一处理指令发送给区块链系统中的第二节点,第一处理指令包括第一区块。
在一实施例中,第一处理指令可以包括第一区块和第一数字签名,第一数字签名可以是第一节点利用第一节点的私钥对第一区块的摘要数据进行加密得到的,第一区块的摘要数据可以是第一节点按照预设哈希算法对第一区块进行哈希处理得到的。进一步地,第一节点可以将该第一处理指令发送给区块链系统中的第二节点。
S603、第二节点接收区块链系统中的第一节点发送的第一处理指令。
一实施方式中,当第一处理指令包括第一区块和第一数字签名时,第二节点可以按照预设哈希算法对第一区块进行加密,得到第一哈希数据,利用第一节点的公钥对第一数字签名进行解密,得到第一解密数据,若第一哈希数据和第一解密数据一致,则对第一区块进行共识。
S604、第二节点利用第一区块包括的批次标识从第二节点的内存中获取M个交易批次,并基于M个交易批次中的交易对第一区块进行共识。
在一实施例中,第二节点在对第一区块进行共识时,可以利用第一区块包括的批次标识从第二节点的内存中获取M个交易批次。具体地,每个交易批次的批次标识可以是每个交易批次的首个交易的交易标识,第二节点可以查看第二节点的内存中各个交易批次的首个交易的交易标识是否与第一区块包括的批次标识一致,在一致时,将对应的交易批次作为M个交易批次中的交易批次。
进一步地,第二节点基于M个交易批次中的交易对第一区块进行共识,具体包括:第二节点可以采用并行的方式,启动M个线程分别执行M个交易批次中的交易,得到M个交易批次对应的交易结果数据,接着针对M个交易批次中的交易,获取区块链系统中其他节点得到的交易结果数据,根据其他节点得到的交易结果数据,对第二节点得到的交易结果数据进行验证,若其它节点得到的交易结果数据与第二节点得到的交易结果数据一致,则验证通过,可以确定对第一区块共识通过。
在可行的实施例中,针对M个交易批次中的任一交易批次,第二节点可以执行该任一交易批次中的任一交易,得到任一交易对应的交易结果数据,再获取其他节点针对该任一交易得到的交易结果数据,若第二节点和其他节点针对该任一交易得到的交易结果数据一致,则执行该任一交易批次中该任一交易的下一交易得到下一交易的交易结果数据,并再次与其他节点进行一致性对比,在确定M个交易批次中的所有交易的交易结果数据都一致时,验证通过,并确定对第一区块共识通过。
若各个节点的内存中的M个交易批次中的交易包括交易内容数据和交易结果数据,则第二节点可以利用M个交易批次中每个交易包括的交易内容数据(交易的输入)和交易结果数据(交易的输出)检查交易的输入和输出是否正确,在正确时,对第一区块共识通过的投票结果为赞成,第二节点可以获取其他节点对第一区块共识通过的投票结果,若赞成票数与区块链系统中的记账节点的数量的比值大于预设比值(例如2/3),或赞成票数大于反对票数时,则可以确定对第一区块共识通过。
S605、若对第一区块共识通过,则第二节点将M个交易批次对应的交易内容数据以及交易结果数据打包到第一区块中,得到第二区块,并将第二区块写入区块链中。
在一实施例中,第二节点在对第一区块共识通过后,可以将M个交易批次对应的交易内容数据以及交易结果数据打包到第一区块中,以及将第一区块包括的区块标识进行删除,得到第二区块,并将第二区块写入本地的区块链中。另外,第一节点也可以获取各个节点针对M个交易批次得到的交易结果数据,在各个节点得到的交易结果数据一致时,第一节点可以将第二区块写入本地的区块链中。
在一实施例中,第一节点可以在第二区块上链后,或者在生成第一区块后,获取第一区块包括的批次标识,利用第一区块包括的批次标识,将M个交易批次从第一节点的交易池中删除,可以获取已打包进区块中的批次标识,利用批次标识删除交易池中的交易批次,本申请实施例可以实现交易的批量删除,提高交易的删除效率。
在可行的实施方式中,第二节点可以在第二区块上链后,获取第一区块包括的批次标识,利用第一区块包括的批次标识,将M个交易批次从第二节点的内存中删除,可以获取已打包进区块中的批次标识,利用批次标识删除内存中的交易批次,可以实现交易的批量删除,从而提高交易的删除效率。
本申请提供的基于区块链系统的交易处理方法,设计了一种新的交易处理机制,该交易处理机制涉及了交易从接收到打包,以及打包完成后从交易池或内存删除的整个流程;可以将交易由独立(单一)的方式放在交易池调整为以交易批次的方式放入到交易池,从而减少交易打包时交易的遍历次数,并且删除时不需要遍历所有的交易,只需要根据批次标识删除指定的交易批次,提高交易处理性能;可以将每笔交易转发至指定的节点,可有效降低交易广播时对网络的性能损耗和拥塞,可以有效地提升区块链系统的交易处理性能。
请参阅图8,图8为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图三。该方法由区块链系统中的第一节点执行,该方法包括但不限于如下步骤:
S801、接收区块链系统中的第四节点发送的第二处理指令,第二处理指令包括第三区块,第三区块是由第四节点在满足出块条件时,对第四节点的交易池中的参考交易批次的批次标识进行打包处理得到的,第三区块包括N个交易批次的批次标识,N为正整数。
在本申请实施例中,第四节点是区块链系统中当前阶段负责出块的记账节点。第一节点是区块链系统中除第四节点以外的记账节点。
在一实施例中,第四节点可以在满足出块条件时,对第四节点的交易池中的参考交易批次的批次标识进行打包处理,得到第三区块。具体地,第四节点从第四节点的交易池中获取第二交易批次,第二交易批次包括第三数量的交易,第二交易批次可以是按照创建交易批次的先后顺序从第四节点的交易池中获取到的先创建的交易批次。进一步地,获取第三区块中已打包的交易批次包括的交易的第四数量,即将第三区块中已打包的交易批次包括的交易的交易数量之和作为第四数量,若第三数量与第四数量之和小于或等于预设的数量阈值(可以人为设定或按区块链系统的默认设置确定),则将第一交易批次确定为参考交易批次,并将参考交易批次的批次标识打包到第三区块中,若第一数量和第二数量之和大于数量阈值,则确定打包完成,并得到第三区块。即将交易池中的交易批次打包至同一个区块时,需要保证该区块中的交易数量不能超过预设的数量阈值。接着,第四节点可以基于第三区块得到第二处理指令,该第二处理指令可以包括第三区块和第五数字签名,第五数字签名可以利用第四节点的私钥对第三区块的摘要数据进行加密得到,第四区块的摘要数据是按照预设哈希算法对第四区块进行哈希处理得到的。第一节点可以利用第四节点的公钥对第五数字签名进行解密得到第五解密数据,按照预设哈希算法对第三区块进行哈希处理得到第五哈希数据,若第五哈希数据与第五解密数据一致,则执行S802。
在一实施例中,第一节点可以接收第四节点发送的第二待广播交易批次,第二待广播交易批次是第四节点在第二待广播交易批次中的交易数量满足预设广播条件,例如第二待广播交易批次中的交易数量等于预设数量,或,预设的广播周期到达时发送的,第一节点可以利用第二待广播交易批次中的首个交易的交易标识,确定首个交易与第四节点对应的辅助值是否匹配,即利用首个交易的交易标识得到首个交易对应的模值,若首个交易对应的模值与第四节点对应的辅助值一致,则匹配,若首个交易对应的模值与第四节点对应的辅助值不一致,则不匹配。若首个交易与第四节点对应的辅助值匹配,则利用第二待广播交易批次的批次标识,确定第一节点的内存中是否存在第二待广播交易批次。具体地,第二待广播交易批次的批次标识是基于第二待广播交易批次中的首个交易的交易标识生成的,可以是将第二待广播交易批次中的首个交易的交易标识作为第二待广播交易批次中的首个交易的交易标识,若第一节点的内存中各个交易批次的首个交易的交易标识都不是该第二待广播交易批次的批次标识,则确定第一节点的内存中不存在第二待广播交易批次,可以将第二待广播交易批次写入第一节点的内存中。
在一可行的方式中,第四节点可以利用第四节点的私钥对第二待广播交易批次的摘要数据进行加密得到第六数字签名,第二待广播交易批次的摘要数据是按照预设哈希算法对第二待广播交易批次进行哈希处理得到的。第四节点可以将第六数字签名和第二待广播交易批次发送给第一节点,第一节点利用第四节点的公钥对第六数字签名解密,得到第六解密数据,利用预设哈希算法对第二待广播交易批次进行哈希处理得到第六哈希数据,若六解密数据和第六哈希数据一致,第一节点则将第二待广播交易批次写入第一节点的内存中。
S802、利用第三区块包括的批次标识从第一节点的内存中获取N个交易批次,并基于N个交易批次中的交易对第三区块进行共识。
在一实施例中,第一节点可以执行N个交易批次中的交易,得到N个交易批次对应的交易结果数据,具体地,可以采用并行的方式,启动N个线程分别执行N个交易批次中的交易,以得到交易结果数据。接着针对N个交易批次中的交易,获取区块链系统中其他节点得到的交易结果数据,根据其他节点得到的交易结果数据,对第一节点得到的交易结果数据进行验证,若其它节点得到的交易结果数据与第一节点得到的交易结果数据一致,则验证通过,可以确定对第三区块共识通过。
S803、若对第三区块共识通过,则将N个交易批次对应的交易内容数据以及交易结果数据打包到第三区块中,得到第四区块,并将第四区块写入区块链中。
在一实施例中,第一节点在对第三区块共识通过后,可以将N个交易批次对应的交易内容数据以及交易结果数据打包到第三区块中,还可以将第三区块包括的区块标识进行删除,得到第四区块,并将第四区块写入本地的区块链中。另外,第四节点也可以获取各个节点针对N个交易批次得到的交易结果数据,在各个节点得到的交易结果数据一致时,第四节点可以也将第四区块写入本地的区块链中。
在一实施例中,第四节点可以在第四区块上链后,或者在生成第三区块后,获取第三区块包括的批次标识,利用第三区块包括的批次标识,将N个交易批次从第四节点的交易池中删除。
在可行的实施方式中,第一节点可以在第四区块上链后,获取第三区块包括的批次标识,利用第三区块包括的批次标识,将N个交易批次从第一节点的内存中删除。
本申请提供的基于区块链系统的交易处理方法,设计了一种新的交易处理机制,该交易处理机制涉及了交易从接收到打包,以及打包完成后从交易池或内存删除的整个流程;可以将交易由独立(单一)的方式放在交易池调整为以交易批次的方式放入到交易池,从而减少交易打包时交易的遍历次数,并且删除时不需要遍历所有的交易,只需要根据批次标识删除指定的交易批次,提高交易处理性能;可以将每笔交易转发至指定的节点,可有效降低交易广播时对网络的性能损耗和拥塞,可以有效地提升区块链系统的交易处理性能。
请参阅图9,图9为本申请实施例提供的一种基于区块链系统的交易处理方法的流程示意图四。该方法由区块链系统中接收到待处理交易的当前节点执行,该方法包括:
当前节点在接收到待处理交易时,可以对待处理交易进行验签,验签即S601中判断第二哈希数据与第二解密数据是否一致的过程,在第二哈希数据与第二解密数据一致时,验签通过,在第二哈希数据与第二解密数据不一致时,验签失败,在验签失败时可以丢弃待处理交易。在验签通过时,可以对待处理交易的key值取模,得到模值。
若模值与当前节点不一致,即与当前节点对应的辅助值不一致,则可以获取与模值一致的指定节点,即对应的辅助值与模值一致的指定节点,并获取指定节点的节点信息,例如指定节点的地址,然后利用当前节点的私钥对待处理交易进行签名,再利用指定节点的地址将待处理交易发送给指定节点。指定节点可以在对待处理交易验签通过后,将待处理交易写入指定节点的内存中。
若模值与当前节点一致,即与当前节点对应的辅助值一致,则可以从当前节点的交易池中获取最新交易批次,判断最新交易批次是否已广播,若最新交易批次未广播,则将待处理交易添加到最新交易批次中,并判断待处理交易是否为最新交易批次的最后一笔,即判断最新交易批次的交易数据是否等于预设数量。若待处理交易是最新交易批次的最后一笔,则将最新交易批次作为目标交易批次,并在对目标交易批次进行签名后,将目标交易批次广播给区块链系统中的其他节点;若待处理交易不是最新交易批次的最后一笔,则不做处理。若最新交易批次已广播,则创建新的交易批次,并将待处理交易添加到新的交易批次中,当广播周期到达时,判断新的交易批次是否已广播,若新的交易批次未广播,则将新的交易批次作为目标交易批次,并在对目标交易批次进行签名后,将目标交易批次广播给区块链系统中的其他节点。该处理的核心就是交易池中保存的是交易批次,为保证交易批次可以及时广播至其他节点,对交易批次设置了定时器,当定时器指示的广播周期到达或交易批次满的时候都会广播。
在一实施例中,当待处理交易是目标交易批次中的第一笔交易时,可以将待处理交易的key值作为目标交易批次的批次标识。
参阅图10,其他节点在接收到广播的目标交易批次时,可以对目标交易批次进行验签,即S601中判断第四解密数据和第四哈希数据是否一致的过程,若第四解密数据和第四哈希数据一致,则验签通过,若第四解密数据和第四哈希数据不一致,则验签失败。在验签通过时,可以利用初始交易的key值进行合法性验证,即利用初始交易的key值进行取模,得到模值,判断模值与发送目标交易批次的当前节点对应的辅助值是否一致,若一致,则验证通过,若不一致,则验证未通过。当验证通过时,可以判断内存中是否包含目标交易批次,例如判断目标交易批次的初始交易的key值与内存中各个交易批次的初始交易的key值是否一致,若都不一致,则内存中未包含有目标交易批次,可以将目标交易批次放入内存中。
当满足出块条件时,参阅图11,主节点可以遍历交易池中的交易批次,可以是按照各个交易批次创建的先后顺序进行遍历的,获取遍历到的交易批次包含的交易的第一数量,以及获取第一区块中已打包的交易批次包含的交易的第二数量,判断第一数量和第二数量是否大于预设的数量阈值,当第一数量和第二数量小于或等于预设的数量阈值时,可以将遍历到的交易批次的批次标识打包到第一区块中,并继续遍历;当第一数量和第二数量大于预设的数量阈值时,则打包完成,主节点得到了第一区块,可以将第一区块广播至区块链系统中的其他从节点。其他从节点可以在对第一区块共识通过后,得到第一区块对应的第二区块,将第二区块写入本地的区块链中。
当第二区块上链之后,各个节点可以将第二区块中已打包的交易从交易池或内存中删除。参阅图12,各个节点可以获取批次标识集合,该批次标识集合可以根据第一区块包括的批次标识得到,可以遍历批次标识集合中的批次标识,判断内存或交易池中是否包含遍历到的批次标识对应的交易批次,当包含时,则从内存或交易池中删除该遍历到的批次标识对应的交易批次,当不包含时,则继续遍历。
通过本申请的方法,设计了一种新的交易处理机制,该交易处理机制涉及了交易从接收到打包,以及打包完成后从交易池删除的整个流程,可以有效地提升区块链系统的交易处理性能。
可以理解的是,在本申请的具体实施方式中,涉及到买家的数字资产等相关数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方法,相应地,下面提供了本申请实施例的装置。请参见图13,图13是本申请实施例提供的一种基于区块链系统的交易处理装置的结构示意图,应用于区块链系统中的第一节点,该交易处理装置130可以包括:
处理单元1301,用于当满足出块条件时,对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,所述第一区块包括M个交易批次的批次标识,所述第一节点的交易池包括的各个交易批次中的交易与所述第一节点对应的辅助值相匹配,所述M为正整数;
所述处理单元1301,还用于基于所述第一区块生成第一处理指令,所述第一处理指令包括所述第一区块;
发送单元1302,用于将所述第一处理指令发送给所述区块链系统中的第二节点,所述第一处理指令用于指示所述第二节点在对所述第一区块共识通过后,获取所述第一区块对应的第二区块,并将所述第二区块写入区块链中,所述第二区块包括所述M个交易批次对应的交易内容数据以及交易结果数据。
在一实施例中,所述交易处理装置130包括获取单元1303,所述获取单元1303用于:获取待处理交易;所述处理单元1301具体用于:利用所述待处理交易的交易标识确定所述待处理交易对应的模值;若所述待处理交易对应的模值与所述第一节点对应的辅助值不一致,则获取所述区块链系统中与所述待处理交易对应的模值匹配的第三节点,并将所述待处理交易发送给所述第三节点,以使所述第三节点在对所述待处理交易验证通过后,将所述待处理交易写入所述第三节点的交易池中。
在一实施例中,所述处理单元1301具体用于:若所述待处理交易对应的模值与所述第一节点对应的辅助值一致,则确定所述待处理交易与所述第一节点对应的辅助值相匹配,并将所述待处理交易添加到所述第一节点的第一待广播交易批次中,所述第一待广播交易批次是所述第一节点的交易池中未广播的最新交易批次或新创建的交易批次;若所述第一待广播交易批次中的交易数量满足预设广播条件,或,预设的广播周期到达,则将所述第一待广播交易批次发送至所述第二节点,以使所述第二节点将所述第一待广播交易批次写入所述第二节点的内存中,所述第二节点的内存中存储的交易批次用于对所述第一区块进行共识,以及获取所述第一区块对应的第二区块。
在一实施例中,所述获取单元1303具体用于:从所述第一节点的交易池中获取第一交易批次,所述第一交易批次包括第一数量的交易;获取第一区块中已打包的交易批次包括的交易的第二数量;所述处理单元1301具体用于:若所述第一数量与所述第二数量之和小于或等于预设的数量阈值,则将所述第一交易批次确定为目标交易批次,并将所述目标交易批次的批次标识打包到所述第一区块中;若所述第一数量和所述第二数量之和大于所述数量阈值,则确定打包完成,并得到所述第一区块。
在一实施例中,所述获取单元1303具体用于:获取所述第一区块包括的批次标识;所述处理单元1301具体用于:利用所述第一区块包括的批次标识,将所述M个交易批次从所述第一节点的交易池中删除。
在一实施例中,所述获取单元1303具体用于:接收所述区块链系统中的第四节点发送的第二处理指令,所述第二处理指令包括第三区块,所述第三区块是由所述第四节点在满足出块条件时,对所述第四节点的交易池中的参考交易批次的批次标识进行打包处理得到的,所述第三区块包括N个交易批次的批次标识,所述N为正整数;所述处理单元1301具体用于:利用所述第三区块包括的批次标识从所述第一节点的内存中获取所述N个交易批次,并基于所述N个交易批次中的交易对所述第三区块进行共识;所述处理单元1301具体用于:若对所述第三区块共识通过,则将所述N个交易批次对应的交易内容数据以及交易结果数据打包到所述第三区块中,得到第四区块,并将所述第四区块写入区块链中。
在一实施例中,所述获取单元1303具体用于:接收所述第四节点发送的第二待广播交易批次,所述第二待广播交易批次是所述第四节点在所述第二待广播交易批次中的交易数量满足预设广播条件,或,预设的广播周期到达时发送的;所述处理单元1301具体用于:利用所述第二待广播交易批次中的首个交易的交易标识,确定所述首个交易与所述第四节点对应的辅助值是否匹配;若匹配,则利用所述第二待广播交易批次的批次标识,确定所述第一节点的内存中是否存在所述第二待广播交易批次,所述第二待广播交易批次的批次标识是基于所述第二待广播交易批次中的首个交易的交易标识生成的;若不存在,则将所述第二待广播交易批次写入所述第一节点的内存中。
在一实施例中,所述处理单元1301具体用于:执行所述N个交易批次中的交易,得到交易结果数据;针对所述N个交易批次中的交易,获取所述区块链系统中其他节点得到的交易结果数据;根据所述其他节点得到的交易结果数据,对所述第一节点得到的交易结果数据进行验证;若验证通过,则确定对所述第三区块共识通过。
在一实施例中,所述获取单元1303具体用于:获取所述第三区块包括的批次标识;所述处理单元1301具体用于:利用所述第三区块包括的批次标识,将所述N个交易批次从所述第一节点的内存中删除。
可以理解的是,本申请实施例所描述的基于区块链系统的交易处理装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本申请提供的基于区块链系统的交易处理方法,设计了一种新的交易处理机制,在该交易处理机制中,第一节点的交易池只保存与第一节点对应的辅助值相匹配的交易,因此针对每笔交易可以直接转发给指定节点,无需广播给所有节点,可以解决交易广播过程导致的网络消息拥塞的问题;另外,区块链系统中的第一节点可以将第一节点的交易池中M个交易批次的批次标识打包到第一区块中,并基于第一区块生成第一处理指令,由区块链系统中的第二节点响应第一处理指令,在对第一区块共识通过后,将包括M个交易批次对应的交易内容数据以及交易结果数据的第二区块写入区块链中,因此本申请只需将一个或多个批次标识打包到第一区块中,再将第一区块广播给各个节点,可以解决区块的传输消息体比较大的问题,可以有效地提升区块链系统的交易处理性能。
如图14所示,图14是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备140内部结构如图14所示,包括:一个或多个处理器1401、存储器1402、通信接口1403。上述处理器1401、存储器1402和通信接口1403可通过总线1404或其他方式连接,本申请实施例以通过总线1404连接为例。
其中,处理器1401(或称CPU(Central Processing Unit,中央处理器))是计算机设备140的计算核心以及控制核心,其可以解析计算机设备140内的各类指令以及处理计算机设备140的各类数据,例如:CPU可以用于解析用户向计算机设备140所发送的开关机指令,并控制计算机设备140进行开关机操作;再如:CPU可以在计算机设备140内部结构之间传输各类交互数据,等等。通信接口1403可选的可以包括标准的有线接口、无线接口(如Wi-Fi、移动通信接口等),受处理器1401的控制用于收发数据。存储器1402(Memor14)是计算机设备140中的记忆设备,用于存放计算机程序和数据。可以理解的是,此处的存储器1402既可以包括计算机设备140的内置存储器,当然也可以包括计算机设备140所支持的扩展存储器。存储器1402提供存储空间,该存储空间存储了计算机设备140的操作系统,可包括但不限于:Windows系统、Linux系统、Android系统、iOS系统,等等,本申请对此并不作限定。该计算机设备140应用于区块链系统中的第一节点,处理器1401通过运行存储器1402中存储的计算机程序,执行如下操作:
当满足出块条件时,对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,所述第一区块包括M个交易批次的批次标识,所述第一节点的交易池包括的各个交易批次中的交易与所述第一节点对应的辅助值相匹配,所述M为正整数;
基于所述第一区块生成第一处理指令,所述第一处理指令包括所述第一区块;
将所述第一处理指令发送给所述区块链系统中的第二节点,所述第一处理指令用于指示所述第二节点在对所述第一区块共识通过后,获取所述第一区块对应的第二区块,并将所述第二区块写入区块链中,所述第二区块包括所述M个交易批次对应的交易内容数据以及交易结果数据。
在一实施例中,所述处理器1401具体用于:获取待处理交易;利用所述待处理交易的交易标识确定所述待处理交易对应的模值;若所述待处理交易对应的模值与所述第一节点对应的辅助值不一致,则获取所述区块链系统中与所述待处理交易对应的模值匹配的第三节点,并将所述待处理交易发送给所述第三节点,以使所述第三节点在对所述待处理交易验证通过后,将所述待处理交易写入所述第三节点的交易池中。
在一实施例中,所述处理器1401具体用于:若所述待处理交易对应的模值与所述第一节点对应的辅助值一致,则确定所述待处理交易与所述第一节点对应的辅助值相匹配,并将所述待处理交易添加到所述第一节点的第一待广播交易批次中,所述第一待广播交易批次是所述第一节点的交易池中未广播的最新交易批次或新创建的交易批次;若所述第一待广播交易批次中的交易数量满足预设广播条件,或,预设的广播周期到达,则将所述第一待广播交易批次发送至所述第二节点,以使所述第二节点将所述第一待广播交易批次写入所述第二节点的内存中,所述第二节点的内存中存储的交易批次用于对所述第一区块进行共识,以及获取所述第一区块对应的第二区块。
在一实施例中,所述处理器1401具体用于:从所述第一节点的交易池中获取第一交易批次,所述第一交易批次包括第一数量的交易;获取第一区块中已打包的交易批次包括的交易的第二数量;若所述第一数量与所述第二数量之和小于或等于预设的数量阈值,则将所述第一交易批次确定为目标交易批次,并将所述目标交易批次的批次标识打包到所述第一区块中;若所述第一数量和所述第二数量之和大于所述数量阈值,则确定打包完成,并得到所述第一区块。
在一实施例中,所述处理器1401具体用于:获取所述第一区块包括的批次标识;利用所述第一区块包括的批次标识,将所述M个交易批次从所述第一节点的交易池中删除。
在一实施例中,所述处理器1401具体用于:接收所述区块链系统中的第四节点发送的第二处理指令,所述第二处理指令包括第三区块,所述第三区块是由所述第四节点在满足出块条件时,对所述第四节点的交易池中的参考交易批次的批次标识进行打包处理得到的,所述第三区块包括N个交易批次的批次标识,所述N为正整数;利用所述第三区块包括的批次标识从所述第一节点的内存中获取所述N个交易批次,并基于所述N个交易批次中的交易对所述第三区块进行共识;若对所述第三区块共识通过,则将所述N个交易批次对应的交易内容数据以及交易结果数据打包到所述第三区块中,得到第四区块,并将所述第四区块写入区块链中。
在一实施例中,所述处理器1401具体用于:接收所述第四节点发送的第二待广播交易批次,所述第二待广播交易批次是所述第四节点在所述第二待广播交易批次中的交易数量满足预设广播条件,或,预设的广播周期到达时发送的;利用所述第二待广播交易批次中的首个交易的交易标识,确定所述首个交易与所述第四节点对应的辅助值是否匹配;若匹配,则利用所述第二待广播交易批次的批次标识,确定所述第一节点的内存中是否存在所述第二待广播交易批次,所述第二待广播交易批次的批次标识是基于所述第二待广播交易批次中的首个交易的交易标识生成的;若不存在,则将所述第二待广播交易批次写入所述第一节点的内存中。
在一实施例中,所述处理器1401具体用于:执行所述N个交易批次中的交易,得到交易结果数据;针对所述N个交易批次中的交易,获取所述区块链系统中其他节点得到的交易结果数据;根据所述其他节点得到的交易结果数据,对所述第一节点得到的交易结果数据进行验证;若验证通过,则确定对所述第三区块共识通过。
在一实施例中,所述处理器1401具体用于:获取所述第三区块包括的批次标识;利用所述第三区块包括的批次标识,将所述N个交易批次从所述第一节点的内存中删除。
具体实现中,本申请实施例中所描述的处理器1401、存储器1402及通信接口1403可执行本申请实施例提供的一种基于区块链系统的交易处理方法中所描述的实现方式,也可执行本申请实施例提供的一种基于区块链系统的交易处理装置中所描述的实现方式,在此不再赘述。
本申请提供的基于区块链系统的交易处理方法,设计了一种新的交易处理机制,在该交易处理机制中,第一节点的交易池只保存与第一节点对应的辅助值相匹配的交易,因此针对每笔交易可以直接转发给指定节点,无需广播给所有节点,可以解决交易广播过程导致的网络消息拥塞的问题;另外,区块链系统中的第一节点可以将第一节点的交易池中M个交易批次的批次标识打包到第一区块中,并基于第一区块生成第一处理指令,由区块链系统中的第二节点响应第一处理指令,在对第一区块共识通过后,将包括M个交易批次对应的交易内容数据以及交易结果数据的第二区块写入区块链中,因此本申请只需将一个或多个批次标识打包到第一区块中,再将第一区块广播给各个节点,可以解决区块的传输消息体比较大的问题,可以有效地提升区块链系统的交易处理性能。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机设备上运行时,使得计算机设备执行上述任一可能实现方式的基于区块链系统的交易处理方法。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现本申请实施例提供的基于区块链系统的交易处理方法的步骤。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行本申请实施例提供的基于区块链系统的交易处理方法。其具体实现方式可参考前文描述,此处不再赘述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Onl14 Memor14,ROM)、随机存取器(RandomAccess Memor14,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请部分实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (13)

1.一种基于区块链系统的交易处理方法,其特征在于,应用于所述区块链系统中的第一节点,所述方法包括:
当满足出块条件时,对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,所述第一区块包括M个交易批次的批次标识,所述第一节点的交易池包括的各个交易批次中的交易与所述第一节点对应的辅助值相匹配,所述M为正整数;
基于所述第一区块生成第一处理指令,所述第一处理指令包括所述第一区块;
将所述第一处理指令发送给所述区块链系统中的第二节点,所述第一处理指令用于指示所述第二节点在对所述第一区块共识通过后,获取所述第一区块对应的第二区块,并将所述第二区块写入区块链中,所述第二区块包括所述M个交易批次对应的交易内容数据以及交易结果数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待处理交易;
利用所述待处理交易的交易标识确定所述待处理交易对应的模值;
若所述待处理交易对应的模值与所述第一节点对应的辅助值不一致,则获取所述区块链系统中与所述待处理交易对应的模值匹配的第三节点,并将所述待处理交易发送给所述第三节点,以使所述第三节点在对所述待处理交易验证通过后,将所述待处理交易写入所述第三节点的交易池中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述待处理交易对应的模值与所述第一节点对应的辅助值一致,则确定所述待处理交易与所述第一节点对应的辅助值相匹配,并将所述待处理交易添加到所述第一节点的第一待广播交易批次中,所述第一待广播交易批次是所述第一节点的交易池中未广播的最新交易批次或新创建的交易批次;
若所述第一待广播交易批次中的交易数量满足预设广播条件,或,预设的广播周期到达,则将所述第一待广播交易批次发送至所述第二节点,以使所述第二节点将所述第一待广播交易批次写入所述第二节点的内存中,所述第二节点的内存中存储的交易批次用于对所述第一区块进行共识,以及获取所述第一区块对应的第二区块。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,包括:
从所述第一节点的交易池中获取第一交易批次,所述第一交易批次包括第一数量的交易;
获取第一区块中已打包的交易批次包括的交易的第二数量;
若所述第一数量与所述第二数量之和小于或等于预设的数量阈值,则将所述第一交易批次确定为目标交易批次,并将所述目标交易批次的批次标识打包到所述第一区块中;
若所述第一数量和所述第二数量之和大于所述数量阈值,则确定打包完成,并得到所述第一区块。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块之后,所述方法还包括:
获取所述第一区块包括的批次标识;
利用所述第一区块包括的批次标识,将所述M个交易批次从所述第一节点的交易池中删除。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述区块链系统中的第四节点发送的第二处理指令,所述第二处理指令包括第三区块,所述第三区块是由所述第四节点在满足出块条件时,对所述第四节点的交易池中的参考交易批次的批次标识进行打包处理得到的,所述第三区块包括N个交易批次的批次标识,所述N为正整数;
利用所述第三区块包括的批次标识从所述第一节点的内存中获取所述N个交易批次,并基于所述N个交易批次中的交易对所述第三区块进行共识;
若对所述第三区块共识通过,则将所述N个交易批次对应的交易内容数据以及交易结果数据打包到所述第三区块中,得到第四区块,并将所述第四区块写入区块链中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述第四节点发送的第二待广播交易批次,所述第二待广播交易批次是所述第四节点在所述第二待广播交易批次中的交易数量满足预设广播条件,或,预设的广播周期到达时发送的;
利用所述第二待广播交易批次中的首个交易的交易标识,确定所述首个交易与所述第四节点对应的辅助值是否匹配;
若匹配,则利用所述第二待广播交易批次的批次标识,确定所述第一节点的内存中是否存在所述第二待广播交易批次,所述第二待广播交易批次的批次标识是基于所述第二待广播交易批次中的首个交易的交易标识生成的;
若不存在,则将所述第二待广播交易批次写入所述第一节点的内存中。
8.根据权利要求6或7所述的方法,其特征在于,所述基于所述N个交易批次中的交易对所述第三区块进行共识,包括:
执行所述N个交易批次中的交易,得到交易结果数据;
针对所述N个交易批次中的交易,获取所述区块链系统中其他节点得到的交易结果数据;
根据所述其他节点得到的交易结果数据,对所述第一节点得到的交易结果数据进行验证;
若验证通过,则确定对所述第三区块共识通过。
9.根据权利要求6或7所述的方法,其特征在于,所述将所述N个交易批次对应的交易内容数据以及交易结果数据打包到所述第三区块中,得到第四区块之后,所述方法还包括:
获取所述第三区块包括的批次标识;
利用所述第三区块包括的批次标识,将所述N个交易批次从所述第一节点的内存中删除。
10.一种基于区块链系统的交易处理装置,其特征在于,应用于所述区块链系统中的第一节点,所述装置包括:
处理单元,用于当满足出块条件时,对所述第一节点的交易池中目标交易批次的批次标识进行打包处理,得到第一区块,所述第一区块包括M个交易批次的批次标识,所述第一节点的交易池包括的各个交易批次中的交易与所述第一节点对应的辅助值相匹配,所述M为正整数;
所述处理单元,还用于基于所述第一区块生成第一处理指令,所述第一处理指令包括所述第一区块;
发送单元,用于将所述第一处理指令发送给所述区块链系统中的第二节点,所述第一处理指令用于指示所述第二节点在对所述第一区块共识通过后,获取所述第一区块对应的第二区块,并将所述第二区块写入区块链中,所述第二区块包括所述M个交易批次对应的交易内容数据以及交易结果数据。
11.一种计算机设备,其特征在于,所述计算机设备包括存储器、通信接口以及处理器,所述存储器、所述通信接口和所述处理器相互连接;所述存储器存储有计算机程序,所述处理器调用所述存储器中存储的计算机程序,用于实现如权利要求1-9中任一项所述的基于区块链系统的交易处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-9中任一项所述的基于区块链系统的交易处理方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现如权利要求1-9中任一项所述的基于区块链系统的交易处理方法。
CN202210454695.5A 2022-04-27 2022-04-27 基于区块链系统的交易处理方法、装置及相关设备 Pending CN117011033A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210454695.5A CN117011033A (zh) 2022-04-27 2022-04-27 基于区块链系统的交易处理方法、装置及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210454695.5A CN117011033A (zh) 2022-04-27 2022-04-27 基于区块链系统的交易处理方法、装置及相关设备

Publications (1)

Publication Number Publication Date
CN117011033A true CN117011033A (zh) 2023-11-07

Family

ID=88573152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210454695.5A Pending CN117011033A (zh) 2022-04-27 2022-04-27 基于区块链系统的交易处理方法、装置及相关设备

Country Status (1)

Country Link
CN (1) CN117011033A (zh)

Similar Documents

Publication Publication Date Title
CN111448781B (zh) 一种计算机实现的用于通信共享的区块链数据的方法
US11501533B2 (en) Media authentication using distributed ledger
CN107730225B (zh) 一种大数据交易方法、系统、设备及计算机存储介质
CN111625593B (zh) 基于区块链的数据处理方法、装置、计算机设备
CN111108478A (zh) 共享的区块链数据存储
CN111837115A (zh) 共享的区块链数据存储
CN110601816B (zh) 一种区块链系统中轻量级节点控制方法及装置
WO2023045620A1 (zh) 一种交易数据处理方法、装置、计算机设备以及存储介质
WO2020258847A1 (zh) 基于处理模块跨链发送可认证消息的方法和装置
WO2021082340A1 (zh) 数据处理方法、装置、系统和存储介质
CN111597567B (zh) 数据处理方法、装置、节点设备及存储介质
CN111915301B (zh) 基于区块链的数据处理方法、装置、电子设备及可读介质
CN113255014B (zh) 一种基于区块链的数据处理方法以及相关设备
CN109936620B (zh) 基于区块链的存储方法及装置、系统与存储介质
CN110149323B (zh) 一种具有千万级tps合约处理能力的处理装置
CN112307504B (zh) 一种安全多方计算方法、装置、电子设备及存储介质
CN110597922A (zh) 数据处理方法、装置、终端及存储介质
CN111226206A (zh) 拍摄区块链数据的快照
WO2023020242A1 (zh) 基于区块链的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
CN113132459B (zh) 分布式存储方法、系统、存储介质、信息数据处理终端
CN111316256A (zh) 拍摄区块链数据的快照
CN113988831A (zh) 一种基于联盟链的转账方法
CN112860805A (zh) 一种区块链数据交互方法及系统
CN116896564A (zh) 基于区块链网络的区块生成方法、装置和计算机设备
CN114092093B (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