CN117591303B - 基于区块链的业务处理方法、区块链系统、介质及设备 - Google Patents

基于区块链的业务处理方法、区块链系统、介质及设备 Download PDF

Info

Publication number
CN117591303B
CN117591303B CN202410074518.3A CN202410074518A CN117591303B CN 117591303 B CN117591303 B CN 117591303B CN 202410074518 A CN202410074518 A CN 202410074518A CN 117591303 B CN117591303 B CN 117591303B
Authority
CN
China
Prior art keywords
data
service
node
execution
request
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.)
Active
Application number
CN202410074518.3A
Other languages
English (en)
Other versions
CN117591303A (zh
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 CN202410074518.3A priority Critical patent/CN117591303B/zh
Publication of CN117591303A publication Critical patent/CN117591303A/zh
Application granted granted Critical
Publication of CN117591303B publication Critical patent/CN117591303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了基于区块链的业务处理方法、区块链系统、介质及设备,涉及区块链技术领域,方法包括:若目标业务请求的执行类型为快速业务类别,用于处理快速业务请求的第一节点对目标业务请求进行预执行,得到预执行数据,目标业务请求为终端发送的携带有用于指示执行类型的预设执行信息的请求,预执行数据包括执行结果信息;第一节点将预执行数据存储至节点本地的确认业务集,并将执行结果信息反馈至终端,确认业务集用于存储所属节点所预执行的业务请求的预执行数据。本申请能够显著提高系统性能和降低延迟。

Description

基于区块链的业务处理方法、区块链系统、介质及设备
技术领域
本申请涉及区块链技术领域,具体涉及基于区块链的业务处理方法、区块链系统、介质及设备。
背景技术
区块链是信息技术领域的一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成,由于账本是分布式存储的,而且区块是经过共识的,所以具有不可篡改、可追溯、共同维护等特征,成为批量业务交易处理的有力候选。
现有区块链方案采用的业务交易处理模式中,每笔业务交易均需经过整个网络的共识过程才能得到确认,交易处理效率受限,较长的交易确认时间致使交易结果反馈延迟,难以灵活地满足不同场景下吞吐量和延迟的要求。
发明内容
本申请提供了基于区块链的业务处理方法、区块链系统、介质及设备。所述技术方案如下:
一方面,本申请提供了一种基于区块链的业务处理方法,应用于区块链系统,所述方法包括:
若目标业务请求的执行类型为快速业务类别,所述用于处理快速业务请求的第一节点对所述目标业务请求进行预执行,得到预执行数据,所述目标业务请求为终端发送的携带有用于指示执行类型的预设执行信息的请求,所述预执行数据包括执行结果信息;
所述第一节点将所述预执行数据存储至节点本地的确认业务集,并将所述执行结果信息反馈至所述终端,所述确认业务集用于存储所属节点所预执行的业务请求的预执行数据。
另一方面,本申请提供了一种区块链系统,所述区块链系统包括用于处理快速业务请求的第一节点;
若目标业务请求的执行类型为快速业务类别,所述第一节点用于对所述目标业务请求进行预执行,得到预执行数据,所述目标业务请求为终端发送的携带有用于指示执行类型的预设执行信息的请求,所述预执行数据包括执行结果信息;以及用于将所述预执行数据存储至节点本地的确认业务集,并将所述执行结果信息反馈至所述终端,所述确认业务集用于存储所属节点所预执行的业务请求的预执行数据。
另一方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如前述的基于区块链的业务处理方法。
另一方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如前述的基于区块链的业务处理方法。
另一方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如前述的基于区块链的业务处理方法。
本申请提供的基于区块链的业务处理方法、区块链系统、介质、设备和产品,具有如下技术效果:
本申请的技术方案在目标业务请求的执行类型为快速业务类别的情况下,通过区块链系统中该用于处理快速业务请求的第一节点进行目标业务请求对应的预执行处理,得到预执行数据,该目标业务请求为终端发送的且携带有用于指示执行类型的预设执行信息,该预执行数据包括执行结果信息,进而将预执行数据存储至确认业务集,并将执行结果信息反馈至终端,确认业务集用于存储所属节点所预执行的业务请求的预执行数据;如此,通过对应节点预执行相应的快速业务请求,在单节点得到预执行结果后即能够将其反馈至终端并在确认业务集中进行暂存,而无需全部节点共识确认后反馈,显著提升业务处理效率,降低交易结果反馈延迟,满足用户对于区块链系统的大吞吐量和低延迟的多样化场景需求;此外,采用确认业务集暂存快速交易的预执行结果,无需针对每笔业务执行进行区块生成和同步,有利于降低存储消耗和资源消耗。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种区块链系统的示意图;
图2是本申请实施例提供的一种区块结构的示意图;
图3是本申请实施例提供的一种区块链节点的系统框架示意图;
图4是本申请实施例提供的一种基于区块链的业务处理方法的流程示意图;
图5是本申请实施例提供的一种合约与节点绑定的原理示意图;
图6是本申请实施例提供的一种业务请求的请求生成和验证的流程示意图;
图7是本申请实施例提供的一种节点内确认业务集的示意图;
图8是本申请实施例提供的一种节点回滚控制的示意图;
图9是本申请实施例提供的一种快速业务类别的业务请求的执行流程示意图;
图10是本申请实施例提供的另一种基于区块链的业务处理方法的流程示意图;
图11是本申请实施例提供的一种快速业务类别的预执行数据的共识与数据回滚流程示意图;
图12是本申请实施例提供的另一种基于区块链的业务处理方法的流程示意图;
图13是本申请实施例提供的一种普通业务类别的业务请求的执行流程示意图;
图14是本申请实施例提供的用于实现一种基于区块链的业务处理方法的设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解本申请实施例所述的技术方案及其产生的技术效果,本申请实施例对于涉及到的相关专业名词进行解释:
区块链:信息技术领域的一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成,由于账本是分布式存储的,而且区块是经过共识的,所以具有不可篡改、可追溯、共同维护等特征。
智能合约:智能合约(英语:Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可溯源、检测且不可逆转。
区块账本:区块账本是区块链系统中的核心数据结构,用于存储和管理所有已确认的区块。区块账本以链式结构组织,每个区块包含一组交易、区块头(包括前一个区块的哈希值、时间戳等元数据)以及其他信息。区块账本为区块链系统提供了一个公共、不可篡改的交易历史记录,确保了系统的透明性和一致性。
状态数据:状态数据是区块链系统中用于表示系统当前状态的数据结构。状态数据包括了所有账户的余额、智能合约的状态以及其他相关信息。状态数据随着交易的执行而不断更新,反映了区块链系统在某个时间点的全局状态。在区块链系统中,状态数据通常以Merkle树或其他加密数据结构的形式存储,以确保其完整性和安全性。
业务池:业务池(Transaction Pool,也称为内存池或mempool)是区块链网络中的一种数据结构,用于存储尚未被打包到区块的待处理交易。当用户提交新交易到区块链网络时,该交易首先会进入业务池。区块链节点在准备生成新区块时,会从业务池中选择一定数量的交易进行打包。业务池有助于提高区块链网络的处理能力,同时也可以作为一种策略,让相关对象优先选择手续费较高的交易进行打包,从而提高相关对象的收益。
可以理解的是,在本申请的具体实施方式中,涉及到对象标识、数据目录信息、数据使用请求等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本发明实施例涉及的区块链可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以区块链为分布式系统为例,图1是本发明实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(Peer To Peer)网络,点对点协议是一个运行在传输控制协议(TCP,Transmission Control Protocol )协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.2)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易, 例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约, 还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块 (Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
相关技术中,区块链系统采用单一的交易处理模式,即所有交易都通过相同的共识和处理流程。这种模式在面对不同用户需求和场景时,难以灵活地满足吞吐量和延迟的要求,导致交易处理效率受限。且每笔交易需要经过整个网络的共识过程才能得到确认,这导致了较长的交易确认时间,无法满足用户的快速反馈需求;此外,传统区块链方案中,每个区块一般只包含少量的交易,但仍需要包含区块头、区块体和共识等信息,导致单笔交易的存储消耗较大,降低了系统的存储效率。
为解决上述问题中的至少之一,本申请提供一种基于区块链的业务处理方案。以下结合图3介绍本申请一个实施例提供的一种区块链系统,图3示出了区块链系统中区块链节点的系统架构,包括网络模块、验证模块、业务池模块、调度与执行验证模块、共识模块和存储模块。
网络模块用于处理节点间的通信,包括接收和发送业务请求(如交易请求等)、区块数据、共识信息等。它确保节点之间能够有效地互相通信和同步数据。
验证模块用于对业务请求进行各种验证操作,包括证书验证、权限验证和合约节点验证。其中,证书验证子模块用于检查业务请求的发起者是否具有有效的数字证书,确保业务请求的来源可信;权限验证子模块用于检查业务请求的发起者是否具有执行该业务的权限,确保业务请求的合法性;合约节点验证子模块用于检查当前节点是否为快速业务类别的业务请求指定的执行节点,确保快速业务类别的业务请求在正确的节点上执行。
业务池模块:业务池模块运行业务池,用于管理待处理的业务请求,当新业务请求到达时,业务池会对其进行分类和存储,以便后续的调度与执行验证模块处理。
调度与执行验证模块:用于对业务池中的业务请求进行调度、执行和验证。
区块业务打包器:用于从业务池中提取业务请求,按照特定规则进行打包,形成新的区块。
虚拟机引擎:用于执行智能合约代码,处理业务逻辑。
普通业务区块生成器:用于生成普通业务类别的区块。
快速业务区块生成器:用于生成快速业务类别的区块。
合约仓库:用于存储已部署的智能合约代码。
确认业务集存储子模块:用于存储快速业务类别的预执行数据(包括执行结果信息和业务状态数据)。
回滚控制器:用于处理快速业务类别在共识过程中可能出现的冲突和回滚问题。
共识模块:用于在区块链网络中达成共识,确保所有节点维护的区块链账本和状态数据库中的业务数据保持一致。
存储模块:用于管理区块链节点的数据存储。其中,区块账本用于存储区块链节点的区块数据,包括区块头、区块体等信息;状态数据库用于存储区块链节点的业务数据(包括执行结果和业务状态数据),例如账户余额、智能合约状态等。
需要说明的是,图3中示出的区块链系统仅为本申请提供一种实施方案,区块链节点可以包括更多或更少的模块,以执行更多或更少的数据处理功能,不以图3和上述描述为限。
以下介绍本申请提供的一种基于区块链的业务处理方法,应用于区块链系统。图4是本申请实施例提供的一种基于区块链的业务处理方法的流程图,本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。请参照图4,本申请实施例提供的一种基于区块链的业务处理方法可以包括如下步骤:
S201:若目标业务请求的执行类型为快速业务类别,用于处理快速业务请求的第一节点对目标业务请求进行预执行,得到预执行数据。
具体地,区块链系统包括多个节点,多个节点之间通信交互并基于共识算法进行数据广播和数据同步。区块链系统的各节点能够接收终端发送的业务请求,并基于业务请求的请求数据执行该业务请求。
具体地,目标业务请求为终端发送的携带有用于指示执行类型的预设执行信息的请求。示例性地,业务请求可以为交易请求,相应的请求执行可以为基于交易请求的请求数据进行业务交易,得到交易执行数据。节点接收到目标业务请求后,根据其携带的预设执行信息确定其业务类别为快速业务类别或普通业务类别。预设执行信息还可以携带有该业务请求所指定的执行节点,如目标业务请求携带的预设执行信息指定快速业务执行节点为节点1,即节点1为用于处理快速业务请求的第一节点。预设执行信息指定的执行节点,可以是基于请求发起者指定的,还可以是业务请求所调用的合约所绑定的快速业务类别的节点。
具体地,除预设执行信息外,业务请求的请求数据还可以包括请求所要调用的合约、方法、参数、签名、证书等,合约是指该请求所需调用的智能合约,该智能合约可以存储于合约仓库中。第一节点执行目标业务请求时,需调用其指定的合约,以进行相关的业务操作。
一些实施例中,合约部署时可以指定该合约的快速业务类别的执行节点,以便于该合约的快速业务类别的业务请求都在该指定节点上执行,从而避免了多节点不一致的问题。
参考图5,合约格式可以示例如下:
合约A
合约名:contractA
合约版本: v1.0
初始化参数: {“A”,100)
合约创建人:XXXXX
合约代码: XXXXX...
快速交易指定节点:节点1
合约A表明其快速业务类别指定的执行节点为节点1,由节点1进行合约A相关的快速业务类别的请求的预执行,然后进行各节点(节点1-4…)的数据共识和区块上链(区块n-3至区块n为区块链上的连续区块)。
快速业务类别是特殊类型的区块链交易,旨在优化业务交互处理速度、降低延迟和存储消耗。在快速业务类别的业务交易中,用户可以在发起业务请求时指定某一特定的执行节点进行预执行。相应地,节点的网络模块接收到目标业务请求后,若执行类型为快速业务类别,合约节点验证子模模块验证预执行信息指向的执行节点是否为本节点,若是,进行目标业务请求的预执行,若否,则反馈当前节点不是该合约的执行节点。
在接收到快速业务类别且当前节点为其指定节点的情况下,该指定节点立即执行业务请求对应的业务操作,并将执行结果和业务状态数据(如交易状态数据)存储至确认业务集的数据结构中。预执行是指节点响应于目标业务请求直接在节点本地进行相应的业务操作,而不涉及整个区块链网络的共识,在预执行过程中无需对其它节点进行执行数据广播和数据同步共识,进而大幅降低单笔请求的处理延迟。
具体地,预执行数据包括执行结果信息,还可以包括业务状态数据。执行结果信息用于表征业务操作的结果,如包括业务执行成功或执行失败的信息,以及还可以包括执行业务操作后的数据变更信息,如账户余额变更信息等。该执行结果信息可以基于实际需求设定,不以上述示例为限。业务状态数据为节点存储的用于表征执行对象的业务状态的数据,执行对象是指业务请求对应的业务操作所实施的对象,如金融交易中的买方账户和卖方账户,业务状态数据可以为买方账户或卖方账户的账户余额等。
一些实施例中,在快速业务类别或普通业务类别的业务请求执行之前,方法还包括节点对接收到的业务请求进行验证的步骤,参考图6,请求生成和请求验证过程具体可以包括:
S1,请求发起者在本地编写智能合约的请求源码,包括指定要调用的合约、方法、参数、执行类型的预设执行信息(如为快速交易),指定的执行节点等信息;
S2,请求发起者将上述请求源码打包;
S3,请求发起者对上述打包内容进行签名,生成业务请求;
S4,请求发起者将包括上述打包数据和签名的业务请求发送到区块链节点上;
S5,区块链节点的网络模块接收到上述业务请求;
S6,区块链节点的验证模块对上述请求进行证书和签名验证,若均验证通过,转到S8,否则转到S7;
S7,返回签名验证未通过的结果或证书验证未通过的结果,结束流程;
S8,验证模块对上述请求进行权限验证,若验证未通过,转至S9,若验证通过,转至S10或S12;
S9,返回权限验证未通过的结果,结束流程;
S10,合约节点验证子模块对业务请求进行指定节点验证,判断当前节点是否为该合约的指定节点,是则转到S12,否则转到S11;
S11,返回当前节点不是该合约的指定节点的信息,结束流程;
S12,部署业务请求。
可以理解地,上述S8中,若验证通过,在业务请求为普通业务类别的请求的情况下,直接转至S12进行业务部署,若为快速业务类别,则转至S10进行节点验证。
具体地,部署业务请求可以是指将业务请求存储至业务池中,针对快速业务类别的业务请求,节点响应于业务请求的部署,直接将业务请求发送至调度与执行验证模块进行预执行;针对普通业务类别的业务请求,节点采用周期性获取的方式,从业务池中批量获取业务请求,进而基于共识算法进行请求执行。
S203:第一节点将预执行数据存储至节点本地的确认业务集,并将执行结果信息反馈至终端。
具体地,确认业务集用于存储其所属节点所预执行的业务请求的预执行数据。在得到预执行数据后,第一节点不直接进行区块打包、同步和共识,将其暂存至确认业务集中,并反馈结果至请求发起者,以形成执行完成的反馈。
采用上述技术方案,通过对应节点预执行相应的快速业务请求,在单节点得到预执行结果后即能够将其反馈至终端并在确认业务集中进行暂存,而无需全部节点共识确认后反馈,显著提升业务处理效率,降低交易结果反馈延迟,满足用户对于区块链系统的大吞吐量和低延迟的多样化场景需求;此外,采用确认业务集暂存快速交易的预执行结果,无需针对每笔业务执行进行区块生成和同步,有利于降低存储消耗和资源消耗。
一些实施例中,所有的快速业务类别的业务操作生成的预执行数据均不会立即同步出块(生成区块数据),而是放入确认业务集中,参考图7,每一节点均维护各自的确认业务集和合约,且确认业务集与合约绑定,如节点1与合约A绑定,节点2与合约B绑定,节点3与合约C绑定,节点4与合约D绑定,确认业务集中存储相关合约的执行结果和业务状态数据(图中交易1至交易5…)。
一些实施例中,在S201之后,方法还包括S301:第一节点基于预执行数据更新节点本地的状态数据库中的业务数据。预执行目标业务请求的节点得到预执行数据后,更新本地的状态数据库,以将执行结果和业务状态信息存储至该状态数据库,使其保持最新状态。
一些实施例中,在S201之后,方法还包括S401-S403:
S401:第一节点从状态数据库中获取目标业务请求对应的原始业务状态数据;
S403:第一节点将原始业务状态数据存储至节点本地的待回滚数据集。
具体地,原始业务状态数据是目标业务请求的执行对象在目标业务请求执行之前的业务状态数据。示例性地,目标业务请求对应的业务操作为交易操作,交易操作前执行对象的账户A的余额为a元,执行对象的账户B的余额为b元,则其为目标业务请求对应的原始业务状态数据;交易操作后,执行对象的账户A的余额为a-c元,执行对象的账户B的余额为b+c元,则该状态数据为预执行数据中的业务状态数据。
具体地,待回滚数据集用于存储其所属节点所预执行的业务请求所对应的原始业务状态数据。各节点维护各自的待回滚数据集,在当前节点预执行快速业务类别的业务请求后,在状态数据库更新前将原始业务状态数据存储至待回滚数据集,以作为数据状态快照,以便于后续的回滚控制器在共识不通过等问题时进行数据状态恢复,确保系统稳定性和一致性。
可以理解地,S401于S301中状态数据库的更新操作之前执行。
一些实施例中,待回滚数据集中的数据以键值对形成存储,在生成预执行数据后,检测待回滚数据集中是否存在该目标业务请求对应的业务操作的写集键及原始值,若不存在,则从状态数据库中获取该写集键对应的原始值,并将写集键和其原始值写入待回滚数据集,即写入原始业务状态数据;若存在,执行状态数据库的更新。其中,写集键与原始值构成键值对,示例性地,写集键可以为账户ID,原始值可以为账户余额。
一实施例中,参考图8,节点的回滚控制器维护绑定合约的预执行的快速业务的确认交易列表和待回滚数据集。通过待回滚数据集对业务执行前的结果进行备份,便于后续的共识失败的回滚操作。
一些实施例中,在S201之后,方法还包括S701:第一节点将目标业务请求的业务事件标识信息存储至确认业务列表中;该确认业务列表用于存储其所属节点所预执行的业务请求的业务事件标识信息,业务事件标识信息可以例如为交易ID等,是该笔业务操作的唯一标识。一些实施例中,S701于S401的状态数据库更新之前执行。
参考图9,图9示出了一个实施例中快速业务类别的业务请求的预执行过程,业务请求在指定节点执行,同时进行回滚控制的数据备份流程,具体包括:
S13,若业务请求属于快速业务类别,业务池将其发送至调度与执行验证模块:
S14,调度与执行验证模块调度该业务请求;
S15,虚拟机引擎启动线程或进程预执行该业务请求,得到预执行数据;
S16,将预执行数据(如包括交易体和执行结果)添加至确认业务集中;
S17,将业务事件标识信息添加至回滚控制的确认业务列表中;
S18,回滚控制器的待回滚数据集中是否包含该业务请求对应的业务操作的写集键及原始值?是则转到S21,否则转到S19;
S19,从状态数据库中获取写集键对应的原始值;
S20,将写集键和其对应的原始值存储至回滚控制器的待回滚数据集中;
S21,更新状态数据库至最新状态;
S22,将执行结果返回至终端。
一些实施例中,S15步骤中,若预执行失败,则结束流程;若预执行成功,则转至S51,业务请求的指定节点是否已有确认业务集?是则转至S16,否则转到S52;S53,创建确认业务集,启动快速业务区块生成器,监测确认业务集的业务数量或数据存储时长,达到相应的预设量或预设时长后执行后续的打包去区块步骤。
一些实施例中,参考图10,方法还包括S501-S507:
S501:若确认业务集对应的业务数量和数据存储时长中的任一满足数据出块条件,第一节点将确认业务集中的预执行数据封装为第一区块数据。
节点监测本地的确认业务集的业务数量和数据存储时长,在业务数量超过预设量时,确定其满足数据出块条件,在数据存储时长超过预设时长时,确定其满足数据出块条件;反之,在业务数量未超过预设量且数据存储时长超过预设时长时,确定不满足数据出块条件。
业务数量是指确认业务集中的预执行数据所属的业务请求的数量,该所属业务请求的数量可以等同于预执行数据的条数,如当前节点在本轮已执行20条快速业务类别的业务请求,并生成20条预执行数据存储至确认业务集,则其业务数量为20,预设量是指业务数量上限。一些情况下,业务数量也可以是指确认业务集的占存,即数据大小,预设量则是指占存上限。
数据存储时长是指预执行数据在确认业务集中的留存时长,该留存时长为预执行数据的出块等待时长。一些情况下,确认业务集的数据存储时长为其中最早写入的预执行数据的留存时长,或者可以为最晚写入的预执行数据的留存时长,或者各预执行数据的留存时长的均值等。
在满足出块条件后,快速业务区块生成器将确认业务集中的各预执行数据进行批量打包,形成一个新的区块,并进入共识阶段。这样,多笔快速业务可以被打包到同一个区块中,从而减少单笔业务的存储消耗。
S503:第一节点将第一区块数据发送至区块链系统的至少一个第二节点进行区块同步,得到第一区块共识结果。
具体地,至少一个第二节点是指区块链系统中需要进行区块同步和数据共识的全部节点,第二节点与第一节点相异。第一区块数据生成后,第一节点进行数据广播,以使其它节点接收到该第一区块数据,并对其进行验证和共识,以使各个第二节点生成验证结果,若所有第二节点均验证通过,则共识通过,否则,共识不通过。上述区块同步和共识过程可采用现有的区块链同步共识方法,本申请不做限定。
S505:若第一区块共识结果指示共识通过,第一节点和至少一个第二节点基于第一区块数据更新各自的状态数据库中的业务数据和区块链账本。
区块链系统中需进行数据同步和共识的全部节点基于新增的第一区块数据将各节点各自的状态数据库更新至最新状态,以与第一节点同步,以及将第一区块数据添加至区块链账本,以实现区块上链。
S507:若第一区块共识结果指示未通过共识,第一节点基于待回滚数据集中的原始业务状态数据对状态数据库进行数据回滚操作。
示例性地,交易操作后,执行对象的账户A的余额为a-c元,执行对象的账户B的余额为b+c元,而共识未通过,则基于原始业务状态数据“执行对象的账户A的余额为a元,执行对象的账户B的余额为b元”,对其进行数据恢复,即更改为账户A-a元,账户B-b元
一些情况下,若共识失败,各第二节点未执行对状态数据库的更新,则第一节点基于本地待回滚数据集中的原始业务状态数据将其状态数据库恢复至目标业务请求执行之前的数据状态,以实现数据回滚。
另一些情况下,若共识失败,第一节点和第二节点均基于原始状态数据对各自的状态数据库进行数据回滚操作,以进一步确保各节点的数据一致性,提升系统可靠性。
本申请采用快速业务机制对快速业务类别的请求进行预执行和批量打包出块,适用于对实时性要求较高的场景,例如金融交易、支付、交易撮合、物联网设备数据上链等。通过预执行和确认业务集的设计,实现高效的交易处理,显著降低交易延迟、减少存储消耗和提高系统健壮性,有助于区块链技术在高频交易场景下的应用和发展,提高区块链系统的性能和用户体验。同时,为了确保系统的稳定性和一致性,在快速业务类别的执行中还引入了基于状态快照的回滚控制机制,以处理可能出现的冲突和共识失败问题。
一些实施例中,S507可以包括:
S5071:第一节点基于待回滚数据集中的原始业务状态数据生成数据回滚请求,并将数据回滚请求的请求数据存储至业务池;
S5072:第一节点通过周期性获取的方式从业务池中获取数据回滚请求的请求数据并执行数据回滚请求,以基于原始业务状态数据对状态数据库恢复至预执行数据更新之前的数据状态。
一实施例中,在第一节点进行数据回滚操作的情况下,第一节点触发当前目标业务请求对应的数据回滚请求的生成操作,并将原始业务状态数据添加至该数据回滚请求的写集中,已将其存储至业务池,该数据回滚请求的执行类型为普通业务类别,第一节点周期性的从业务池中获取普通业务类别的请求,在获取到该数据回滚请求后进行相应的数据回滚操作,将状态数据库中由预执行数据新增或更改的业务数据修改为目标业务请求执行前的状态。可以理解地,为避免数据冲突,将业务池中数据回滚请求的优先级别调整为最高级,使节点优先获取该请求。如此,通过生成普通类型的回滚请求以进行数据恢复,确保数据一致性的同时降低节点资源消耗和配置需求。
另一实施例中,第一节点和各第二节点均进行数据回滚操作,相应地,第一节点将数据回滚请求添加至业务池后进行数据同步,以将该数据回滚请求同步至各第二节点,第一节点和各第二节点从各自的业务池中以周期性获取的方式读取该数据回滚请求,以进行各节点的数据回滚和共识,进一步确保一致性。
另一实施例中,第一节点和各第二节点均响应于共识未通过生成数据回滚请求,以添加至各自的业务池,进而基于前述的方式在每一节点进行各自的数据回滚操作。
一些实施例中,在S507之后,方法还包括S601:第一节点将状态数据库中第一区块数据对应的各执行结果标记为无效。
具体地,状态数据库中针对业务状态数据进行数据回滚后,第一区块数据对应的状态数据库中的各执行结果也视为无效,将其标记为无效状态,以便于向终端反馈交易无效或者留待终端查询和监测。
一些情况下,数据回滚后,第一节点将本地状态数据库中的执行结果标记为无效;另一些情况下,各第二节点中的部分或全部存在已基于第一区块数据更新状态数据库的可能性,则第一节点和第二节点在执行数据回滚请求后,触发状态数据库中第一区块数据对应的各执行结果标记无效的操作。
如前述的,一些实施例中,在S201之后,方法还包括S701。相应地,S601可以包括:第一节点将状态数据库中确认业务列表的各业务事件标识信息对应的执行结果标记为无效。在第一节点和各第二节点均执行数据回滚操作的情况下,S601可以包括:第一节点和各第二节点将状态数据库中确认业务列表的各业务事件标识信息对应的执行结果标记为无效。如此,通过维护确认业务列表已进行执行结果的批量标记,降低数据查找的资源占用。
一个实施例中,参考图11,快速业务类别的预执行数据的共识与数据回滚流程可以包括下述步骤:
S23,快速业务区块生成器检测确认业务集的业务数量是否超过预设量?是则转到S25,否则转到S24;
S24,快速业务区块生成器检测数据存储时长是否超过预设时长?是则转到S25,否则转到S23;
S25,快速业务区块生成器将确认业务集中的预执行数据(包括业务状态数据和执行结果)进行打包,封装为第一区块数据;
S26,清空确认业务集中的所有预执行数据;
S27,共识模块将第一区块数据发送给至其它从节点进行共识;
S28,共识是否通过?是则转到S33,否则转到S29;
S29,调度与执行验证模块生成一笔新的数据回滚请求;
S30,回滚控制器将待回滚数据集中的原始业务状态数据放入数据回滚请求的写集中;
S31,数据回滚请求作为普通业务类别执行,执行成功后回滚所有节点的状态数据库到该第一区块数据执行前的数据状态;
S32,所有节点的状态数据库标记确认业务列表中的业务请求对应的执行结果为无效,转到S33;
S33,所有节点更新各自的状态数据库和区块链账本;
S34,清空回滚控制。
本申请基于状态快照的回滚控制机制,用于快速业务确认,在处理快速业务过程中,回滚控制器会记录业务执行前的状态数据快照,生成待回滚键值对,之后迅速确认业务执行结果,并在区块大小达到预设条件时出块,从而压缩存储空间。当快速业务区块在共识过程中出现问题时,回滚控制器可以根据待回滚键值对快速恢复到正确的状态,确保系统的稳定性和一致性。这种基于状态快照的回滚控制机制能够在出现冲突时快速修复系统状态,提高系统的健壮性。
一些实施例中,参考图12,方法还包括S801-S807:
S801:在目标业务请求的执行类型为普通业务类别的情况下,区块链系统中的多个节点将目标业务请求的请求数据存储至业务池中。
这里的多个节点指区块链系统中需要进行数据同步和共识的所有节点,包括前述的第一节点和第二节点。
S803:多个节点通过周期性获取的方式从业务池中获取目标业务请求的请求数据,基于目标业务请求的请求数据执行目标业务请求,得到执行数据,并将执行数据封装为第二区块数据。
S805:多个节点对第二区块数据进行区块同步,得到第二区块共识结果。
S807:若第二区块共识结果指示共识通过,多个节点基于第二区块数据更新各自的状态数据库的业务数据和区块链账本。
与前述的数据回滚请求的执行相类似,各节点周期性的从业务池中获取业务请求并执行请求,出块节点将生成的第二区块数据同步至其它节点进行数据验证共识,得到共识结果,在共识通过的情况下,各节点均更新状态数据库以及区块链账本。若第二区块共识结果指示共识未通过,则结束流程,不执行相关的更新操作。如此,将标记为普通业务类别的业务请求进行批量处理和共识机制实现高吞吐量,而对于快速业务,系统通过预执行的快速确认和回滚控制的方式实现低延迟,本申请的兼具高吞吐量与低延迟的双重交易处理模式既能提高整体的交易处理速度,又能满足不同场景下用户的需求。
一实施例中,参考图13,普通业务类别的业务请求执行过程可以包括下述步骤:
S41,调度与执行验证模块周期性的从业务池获取普通业务类别的业务请求;
S42,初始化业务是否执行成功?是则转到S43,否则转到S44;这里的初始化业务是指业务请求执行;
S43,返回合约初始化成功的信息,转到S45;
S44,返回合约初始化失败的错误信息;
S45,记录合约初始化的结果;
S46,将业务请求的执行数据存储到区块中,生成第二区块数据,并通过共识模块发送给所有节点进行共识;
S47,共识是否通过?是则转到S48,否则结束流程;
S48,所有节点将第二区块数据追加到区块账本中;
S49,所有节点将第二区块数据更新到状态数据库中。
基于本申请的技术方案,通过预执行快速业务并结合确认业务集的处理机制,既能降低单笔交易的处理延迟,提高交易处理速度,又能减少存储消耗,提高系统的存储效率。同时,采用快速确认与状态快照的回滚控制机制,当快速业务的区块在共识过程中出现问题时,回滚控制器可以根据待回滚数据集快速恢复到正确的状态,确保系统的稳定性和一致性。
并且,通过将多笔快速业务打包到一个区块中,减少了单笔业务的存储消耗,提高了系统的存储效率。相比传统区块链方案中,每笔业务都需要封装成一个区块,包括区块头、区块体和共识等信息的方案,本申请显著降低数据整体存储消耗。
此外,本申请提出了一种基于合约分治的策略,将不同类型的合约交易分配给不同的节点进行处理。这样可以有效地降低单个节点的处理压力,提高整个系统的并发处理能力,从而提升整体性能表现。
本申请的技术方案在产品侧的可以应用于下述场景:
1.实时支付系统:在日常支付场景中,本方案的快速业务机制可以显著提高支付交易的处理速度,从而提升用户在进行实时支付时的体验。
2.物联网设备数据上链:在物联网场景中,设备之间的数据交换和上链操作需要实时进行。快速业务可以降低设备数据上链的延迟,提高数据处理速度,使得区块链技术能够更好地应用于物联网设备的实时数据处理和存储。
3.高性能智能合约执行:在某些场景下,智能合约需要快速响应并处理大量用户请求。本方案的快速业务机制可以提高智能合约的执行速度,使得智能合约能够在高负载情况下更好地满足用户需求。
本申请实施例还提供了一种区块链系统,区块链系统包括用于处理快速业务请求的第一节点;
若目标业务请求的执行类型为快速业务类别,第一节点用于对目标业务请求进行预执行,得到预执行数据,目标业务请求为终端发送的携带有用于指示执行类型的预设执行信息的请求,预执行数据包括执行结果信息;以及用于将预执行数据存储至节点本地的确认业务集,并将执行结果信息反馈至终端,确认业务集用于存储相应其所属节点所预执行的业务请求的预执行数据。
一些实施例中,第一节点还用于:在对目标业务请求进行预执行,得到预执行数据之后,基于预执行数据更新节点本地的状态数据库中的业务数据。
一些实施例中,第一节点还用于:在对目标业务请求进行预执行,得到预执行数据之后,从状态数据库中获取目标业务请求对应的原始业务状态数据,原始业务状态数据是目标业务请求的执行对象在目标业务请求执行之前的业务状态数据;以及用于将原始业务状态数据存储至节点本地的待回滚数据集,待回滚数据集用于存储其所属节点所预执行的业务请求所对应的原始业务状态数据。
一些实施例中,区块链系统包括多个节点,在目标业务请求的执行类型为普通业务类别的情况下,区块链系统中的多个节点用于:将目标业务请求的请求数据存储至业务池中;通过周期性获取的方式从业务池中获取目标业务请求的请求数据,基于目标业务请求的请求数据执行目标业务请求,得到执行数据,并将执行数据封装为第二区块数据;对第二区块数据进行区块同步,得到第二区块共识结果;以及,若第二区块共识结果指示共识通过,多个节点基于第二区块数据更新各自的状态数据库的业务数据和区块链账本。
一些实施例中,第一节点还用于:若确认业务集对应的业务数量和数据存储时长中的任一满足数据出块条件,第一节点将确认业务集中的预执行数据封装为第一区块数据;业务数量是指确认业务集中的预执行数据所属的业务请求的数量,数据存储时长是指预执行数据在确认业务集中的留存时长;第一节点将第一区块数据发送至区块链系统的至少一个第二节点进行区块同步,得到第一区块共识结果;以及,若第一区块共识结果指示共识通过,第一节点和至少一个第二节点基于第一区块数据更新各自的状态数据库中的业务数据和区块链账本。
一些实施例中,第一节点还用于:若第一区块共识结果指示未通过共识,第一节点基于待回滚数据集中的原始业务状态数据对状态数据库进行数据回滚操作。
一些实施例中,第一节点具体用于:第一节点基于待回滚数据集中的原始业务状态数据生成数据回滚请求,并将数据回滚请求的请求数据存储至业务池;以及用于第一节点通过周期性获取的方式从业务池中获取数据回滚请求的请求数据并执行数据回滚请求,以基于原始业务状态数据对状态数据库恢复至预执行数据更新之前的数据状态。
一些实施例中,第一节点还用于:在基于待回滚数据集中的原始业务状态数据对各自的状态数据库进行数据回滚操作之后,将状态数据库中第一区块数据对应的各执行结果标记为无效。
一些实施例中,第一节点还用于:在对目标业务请求进行预执行,得到预执行数据之后,将目标业务请求的业务事件标识信息存储至确认业务列表中,确认业务列表用于存储其所属节点所预执行的业务请求的业务事件标识信息;将状态数据库中第一区块数据对应的各执行结果标记为无效包括:以及将状态数据库中确认业务列表的各业务事件标识信息对应的执行结果标记为无效。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的一种基于区块链的业务处理方法。
图14示出了一种用于实现本申请实施例所提供的一种基于区块链的业务处理方法的设备的硬件结构示意图,所述设备可以参与构成或包含本申请实施例所提供的装置或系统。如图14所示,设备10可以包括一个或多个(图中采用1002a、1002b,……,1002n来示出)处理器1002(处理器1002可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图14所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图14中所示更多或者更少的组件,或者具有与图14所示不同的配置。
应当注意到的是上述一个或多个处理器1002和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1004可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的方法对应的程序指令/数据存储装置,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种基于区块链的业务处理方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1006可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于服务器之中以保存用于实现方法实施例中一种基于区块链的业务处理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的一种基于区块链的业务处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施方式中提供的一种基于区块链的业务处理方法。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (21)

1.一种基于区块链的业务处理方法,其特征在于,应用于区块链系统,所述方法包括:
节点接收到目标业务请求后,根据所述目标业务请求携带的预设执行信息确定业务类别为快速业务类别或普通业务类别;
若目标业务请求的执行类型为快速业务类别,用于处理快速业务请求的第一节点对所述目标业务请求进行预执行,得到预执行数据,所述目标业务请求为终端发送的携带有用于指示执行类型的预设执行信息的请求,所述预执行数据包括执行结果信息;所述第一节点能够执行所述快速业务请求和普通业务请求;
所述第一节点将所述预执行数据存储至节点本地的确认业务集,并将所述执行结果信息反馈至所述终端,所述确认业务集用于存储所属节点所预执行的业务请求的预执行数据;所述确认业务集中的预执行数据用于封装为第一区块数据,普通业务类别的执行数据用于封装为第二区块数据;所述第一节点设置待回滚数据集,用于存储所述第一节点所预执行的业务请求所对应的原始业务状态数据,在所述第一区块数据共识失败的情况下,所述第一节点能够基于所述待回滚数据集中所述目标业务请求对应的原始业务状态数据对节点本地的状态数据库进行数据回滚操作,将所述节点本地的状态数据库恢复至所述目标业务请求执行之前的数据状态。
2.根据权利要求1所述的方法,其特征在于,在所述用于处理快速业务请求的第一节点对所述目标业务请求进行预执行,得到预执行数据之后,所述方法还包括:
所述第一节点基于所述预执行数据更新节点本地的状态数据库中的业务数据。
3.根据权利要求1所述的方法,其特征在于,所述用于处理快速业务请求的第一节点对所述目标业务请求进行预执行,得到预执行数据之后,所述方法还包括:
所述第一节点从状态数据库中获取所述目标业务请求对应的原始业务状态数据,所述原始业务状态数据是所述目标业务请求的执行对象在所述目标业务请求执行之前的业务状态数据;
所述第一节点将所述原始业务状态数据存储至节点本地的待回滚数据集,所述待回滚数据集用于存储其所属节点所预执行的业务请求所对应的原始业务状态数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标业务请求的执行类型为普通业务类别的情况下,所述区块链系统中的多个节点将所述目标业务请求的请求数据存储至业务池中;
所述多个节点通过周期性获取的方式从所述业务池中获取所述目标业务请求的请求数据,基于所述目标业务请求的请求数据执行所述目标业务请求,得到执行数据,并将所述执行数据封装为第二区块数据;
所述多个节点对所述第二区块数据进行区块同步,得到第二区块共识结果;
若所述第二区块共识结果指示共识通过,所述多个节点基于所述第二区块数据更新各自的状态数据库的业务数据和区块链账本。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
若所述确认业务集对应的业务数量和数据存储时长中的任一满足数据出块条件,所述第一节点将所述确认业务集中的预执行数据封装为第一区块数据;所述业务数量是指所述确认业务集中的预执行数据所属的业务请求的数量,所述数据存储 时长是指所述预执行数据在所述确认业务集中的留存时长;
所述第一节点将所述第一区块数据发送至所述区块链系统的至少一个第二节点进行区块同步,得到第一区块共识结果;
若所述第一区块共识结果指示共识通过,所述第一节点和所述至少一个第二节点基于所述第一区块数据更新各自的状态数据库中的业务数据和区块链账本。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述第一区块共识结果指示未通过共识,所述第一节点基于待回滚数据集中的原始业务状态数据对所述状态数据库进行数据回滚操作。
7.根据权利要求6所述的方法,其特征在于,所述第一节点基于待回滚数据集中的原始业务状态数据对所述状态数据库进行数据回滚操作包括:
所述第一节点基于所述待回滚数据集中的原始业务状态数据生成数据回滚请求,并将所述数据回滚请求的请求数据存储至业务池;
所述第一节点通过周期性获取的方式从所述业务池中获取所述数据回滚请求的请求数据并执行所述数据回滚请求,以基于所述原始业务状态数据对所述状态数据库恢复至所述预执行数据更新之前的数据状态。
8.根据权利要求6所述的方法,其特征在于,在所述第一节点基于待回滚数据集中的原始业务状态数据对所述状态数据库进行数据回滚操作之后,所述方法还包括:
所述第一节点将所述状态数据库中所述第一区块数据对应的各执行结果标记为无效。
9.根据权利要求8所述的方法,其特征在于,在所述用于处理快速业务请求的第一节点对所述目标业务请求进行预执行,得到预执行数据之后,所述方法还包括:
所述第一节点将所述目标业务请求的业务事件标识信息存储至确认业务列表中,所述确认业务列表用于存储其所属节点所预执行的业务请求的业务事件标识信息;
所述第一节点将所述状态数据库中所述第一区块数据对应的各执行结果标记为无效包括:
所述第一节点将所述状态数据库中所述确认业务列表的各业务事件标识信息对应的执行结果标记为无效。
10.一种区块链系统,其特征在于,所述区块链系统包括用于处理快速业务请求的第一节点;
节点接收到目标业务请求后,根据所述目标业务请求携带的预设执行信息确定业务类别为快速业务类别或普通业务类别;
若目标业务请求的执行类型为快速业务类别,所述第一节点用于对所述目标业务请求进行预执行,得到预执行数据,所述目标业务请求为终端发送的携带有用于指示执行类型的预设执行信息的请求,所述预执行数据包括执行结果信息,所述第一节点能够执行所述快速业务请求和普通业务请求;以及,
用于将所述预执行数据存储至节点本地的确认业务集,并将所述执行结果信息反馈至所述终端,所述确认业务集用于存储所属节点所预执行的业务请求的预执行数据;所述确认业务集中的预执行数据用于封装为第一区块数据,普通业务类别的执行数据用于封装为第二区块数据;所述第一节点设置待回滚数据集,用于存储所述第一节点所预执行的业务请求所对应的原始业务状态数据,在所述第一区块数据共识失败的情况下,所述第一节点能够基于所述待回滚数据集中所述目标业务请求对应的原始业务状态数据对节点本地的状态数据库进行数据回滚操作,将所述节点本地的状态数据库恢复至所述目标业务请求执行之前的数据状态。
11.根据权利要求10所述的系统,其特征在于,所述第一节点还用于:在所述用于处理快速业务请求的第一节点对所述目标业务请求进行预执行,得到预执行数据之后,基于所述预执行数据更新节点本地的状态数据库中的业务数据。
12.根据权利要求10所述的系统,其特征在于,所述第一节点还用于:在对所述目标业务请求进行预执行,得到预执行数据之后,从状态数据库中获取所述目标业务请求对应的原始业务状态数据,所述原始业务状态数据是所述目标业务请求的执行对象在所述目标业务请求执行之前的业务状态数据;以及用于将所述原始业务状态数据存储至节点本地的待回滚数据集,所述待回滚数据集用于存储其所属节点所预执行的业务请求所对应的原始业务状态数据。
13.根据权利要求10所述的系统,其特征在于,所述区块链系统包括多个节点,在所述目标业务请求的执行类型为普通业务类别的情况下,区块链系统中的所述多个节点用于:在所述目标业务请求的执行类型为普通业务类别的情况下,将所述目标业务请求的请求数据存储至业务池中;通过周期性获取的方式从所述业务池中获取所述目标业务请求的请求数据,基于所述目标业务请求的请求数据执行所述目标业务请求,得到执行数据,并将所述执行数据封装为第二区块数据;对所述第二区块数据进行区块同步,得到第二区块共识结果;以及,若所述第二区块共识结果指示共识通过,基于所述第二区块数据更新各自的状态数据库的业务数据和区块链账本。
14.根据权利要求10-13中任一项所述的系统,其特征在于,所述第一节点还用于:若所述确认业务集对应的业务数量和数据存储时长中的任一满足数据出块条件,将所述确认业务集中的预执行数据封装为第一区块数据;所述业务数量是指所述确认业务集中的预执行数据所属的业务请求的数量,所述数据存储 时长是指所述预执行数据在所述确认业务集中的留存时长;将所述第一区块数据发送至所述区块链系统的至少一个第二节点进行区块同步,得到第一区块共识结果;以及,若所述第一区块共识结果指示共识通过,所述第一节点和所述至少一个第二节点基于所述第一区块数据更新各自的状态数据库中的业务数据和区块链账本。
15.根据权利要求14所述的系统,其特征在于,所述第一节点还用于:
若所述第一区块共识结果指示未通过共识,基于待回滚数据集中的原始业务状态数据对所述状态数据库进行数据回滚操作。
16.根据权利要求15所述的系统,其特征在于,所述第一节点具体用于:基于所述待回滚数据集中的原始业务状态数据生成数据回滚请求,并将所述数据回滚请求的请求数据存储至业务池;通过周期性获取的方式从所述业务池中获取所述数据回滚请求的请求数据并执行所述数据回滚请求,以基于所述原始业务状态数据对所述状态数据库恢复至所述预执行数据更新之前的数据状态。
17.根据权利要求15所述的系统,其特征在于,所述第一节点还用于:
在所述第一节点基于待回滚数据集中的原始业务状态数据对所述状态数据库进行数据回滚操作之后,将所述状态数据库中所述第一区块数据对应的各执行结果标记为无效。
18.根据权利要求17所述的系统,其特征在于,所述第一节点还用于:
在所述用于处理快速业务请求的第一节点对所述目标业务请求进行预执行,得到预执行数据之后,将所述目标业务请求的业务事件标识信息存储至确认业务列表中,所述确认业务列表用于存储其所属节点所预执行的业务请求的业务事件标识信息;以及将所述状态数据库中所述确认业务列表的各业务事件标识信息对应的执行结果标记为无效。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至9中任一项所述的基于区块链的业务处理方法。
20.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如权利要求1至9中任一项所述的基于区块链的业务处理方法。
21.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至9中任一项所述的的基于区块链的业务处理方法。
CN202410074518.3A 2024-01-18 2024-01-18 基于区块链的业务处理方法、区块链系统、介质及设备 Active CN117591303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410074518.3A CN117591303B (zh) 2024-01-18 2024-01-18 基于区块链的业务处理方法、区块链系统、介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410074518.3A CN117591303B (zh) 2024-01-18 2024-01-18 基于区块链的业务处理方法、区块链系统、介质及设备

Publications (2)

Publication Number Publication Date
CN117591303A CN117591303A (zh) 2024-02-23
CN117591303B true CN117591303B (zh) 2024-05-07

Family

ID=89917009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410074518.3A Active CN117591303B (zh) 2024-01-18 2024-01-18 基于区块链的业务处理方法、区块链系统、介质及设备

Country Status (1)

Country Link
CN (1) CN117591303B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107230056A (zh) * 2017-06-28 2017-10-03 无锡井通网络科技有限公司 一种基于区块链合约的快速交易系统
WO2019014385A1 (en) * 2017-07-13 2019-01-17 Intel Corporation ENHANCED FAST BEAM DETECTION PROTOCOL FRAME PROCESSING METHOD FOR WIRELESS COMMUNICATIONS
CN111414431A (zh) * 2020-04-28 2020-07-14 武汉烽火技术服务有限公司 基于区块链技术的网络运维数据容灾备份管理方法及系统
CN111614707A (zh) * 2019-02-26 2020-09-01 傲为信息技术(江苏)有限公司 一种基于区块链的交易系统及交易方法
CN114090376A (zh) * 2021-11-09 2022-02-25 中国银联股份有限公司 一种基于联盟链系统的业务处理方法及装置
CN115114372A (zh) * 2022-05-31 2022-09-27 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107230056A (zh) * 2017-06-28 2017-10-03 无锡井通网络科技有限公司 一种基于区块链合约的快速交易系统
WO2019014385A1 (en) * 2017-07-13 2019-01-17 Intel Corporation ENHANCED FAST BEAM DETECTION PROTOCOL FRAME PROCESSING METHOD FOR WIRELESS COMMUNICATIONS
CN111614707A (zh) * 2019-02-26 2020-09-01 傲为信息技术(江苏)有限公司 一种基于区块链的交易系统及交易方法
CN111414431A (zh) * 2020-04-28 2020-07-14 武汉烽火技术服务有限公司 基于区块链技术的网络运维数据容灾备份管理方法及系统
CN114090376A (zh) * 2021-11-09 2022-02-25 中国银联股份有限公司 一种基于联盟链系统的业务处理方法及装置
CN115114372A (zh) * 2022-05-31 2022-09-27 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN117591303A (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
WO2020258848A1 (zh) 一种跨链发送资源的方法和装置
CN114944932B (zh) 将区块添加到被许可的区块链的方法和系统
CN109426949B (zh) 一种跨链交易方法及装置
CN110597925B (zh) 一种基于区块链的跨链数据处理方法及装置
CN107395353B (zh) 一种区块链共识方法及装置
CN109313654B (zh) 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统
US20210243007A1 (en) Maintaining blocks of a blockchain in a partitioned blockchain network
CN110189121B (zh) 数据处理方法、装置、区块链客户端和区块链节点
CN109493223B (zh) 一种记账方法及装置
CN111405019B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112000355B (zh) 用于固件升级的方法及装置、家电设备
CN111698315B (zh) 针对区块的数据处理方法、数据处理装置及计算机设备
CN111240732B (zh) 分布式微服务的发布方法、装置、设备及存储介质
CN110458709B (zh) 资源转移信息的传输方法和装置、存储介质、电子装置
US20230275771A1 (en) Pre-execution of block chain transaction in parallel during block consensus
CN111639309B (zh) 一种数据处理方法、装置、节点设备及存储介质
CN113157733A (zh) 一种面向多链数据关联性的高效溯源查询方法
CN111915301A (zh) 基于区块链的数据处理方法、装置、电子设备及可读介质
CN110570179A (zh) 订单显示方法、装置、设备及存储介质
CN110428238A (zh) 区块链的账户撤回方法及系统
CN110599175A (zh) 一种区块处理方法及相关设备
CN110597922A (zh) 数据处理方法、装置、终端及存储介质
CN116827957B (zh) 基于多区块链的信息处理方法、装置、设备以及介质
CN117591303B (zh) 基于区块链的业务处理方法、区块链系统、介质及设备
CN113128998B (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
GR01 Patent grant
GR01 Patent grant