CN112101942B - 基于区块链的交易请求处理方法、系统、装置及设备 - Google Patents
基于区块链的交易请求处理方法、系统、装置及设备 Download PDFInfo
- Publication number
- CN112101942B CN112101942B CN202010983844.8A CN202010983844A CN112101942B CN 112101942 B CN112101942 B CN 112101942B CN 202010983844 A CN202010983844 A CN 202010983844A CN 112101942 B CN112101942 B CN 112101942B
- Authority
- CN
- China
- Prior art keywords
- transaction request
- node server
- consensus
- client
- response
- 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
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
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请提供一种基于区块链的交易请求处理方法、基于区块链的交易请求处理系统、基于区块链的交易请求处理装置、计算机程序介质及电子设备;涉及区块链技术领域,包括:当部署于终端设备的客户端接收到交易请求时,客户端将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应;接收各共识节点服务器反馈的响应结果;若存在满足预设数量的相同响应结果,则输出相同响应结果。可见,实施本申请的技术方案,可以提升响应结果的置信度。
Description
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种基于区块链的交易请求处理方法、基于区块链的交易请求处理系统、基于区块链的交易请求处理装置、计算机程序介质及电子设备。
背景技术
随着区块链技术的不断发展,用户可以通过客户端上传数据上链请求,以使得共识节点能够对数据上链请求中的数据进行共识。但是,用户节点对应的客户端和服务端通常部署于同一设备,服务端一般会替代客户端广播数据上链请求,并接收各个共识节点反馈的针对上链请求的响应结果,用户只能够获取得到与客户端一一对应的服务端所反馈的响应结果,若该服务端为恶意节点,则容易造成用户接收到的响应结果置信度不高的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种基于区块链的交易请求处理方法、基于区块链的交易请求处理系统、基于区块链的交易请求处理装置、计算机程序介质及电子设备,可以提升响应结果的置信度。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提供一种基于区块链的交易请求处理方法,包括:
当部署于终端设备的客户端接收到交易请求时,客户端将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应;
客户端接收各共识节点服务器反馈的响应结果;
若存在满足预设数量的相同响应结果,客户端输出相同响应结果。
在本申请的一种示例性实施例中,共识节点服务器包括主节点服务器和副节点服务器,客户端将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应,包括:
客户端将交易请求发送至主节点服务器;
主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应。
在本申请的一种示例性实施例中,主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应的方式为:
主节点服务器对交易请求中的交易进行校验,并在校验成功之后根据交易生成预备证书;其中,预备证书至少包括与交易对应的区块和证书时间戳;
主节点服务器向副节点服务器广播预备证书,以使得副节点服务器根据预备证书对区块进行共识并在共识成功之后将区块写入区块链账本。
在本申请的一种示例性实施例中,客户端将交易请求发送至主节点服务器,包括:
客户端根据交易请求生成请求信息并将请求信息发送至主节点服务器;其中,请求信息至少包括交易请求、交易请求对应的操作、时间戳、客户端的字符串表征。
在本申请的一种示例性实施例中,预备证书还包括:视图编号、区块序列号以及区块摘要;其中,视图编号用于作为主节点服务器的表征。
在本申请的一种示例性实施例中,响应结果包括:视图编号、响应内容、时间戳以及响应内容对应的副节点服务器编号。
在本申请的一种示例性实施例中,副节点服务器根据预备证书对区块进行共识并在共识成功之后将区块写入区块链账本的方式为:
副节点服务器验证区块的唯一性,若存在唯一性,则广播预备证书,以使得除副节点服务器之外的其他副节点服务器以及主节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应并向副节点服务器发送响应结果;
若存在满足预设数量的相同响应结果,副节点服务器将区块写入区块链账本。
在本申请的一种示例性实施例中,其他副节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应的方式为:
其他副节点服务器验证交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行交易请求对应的操作,以实现对于交易请求的响应。
在本申请的一种示例性实施例中,客户端接收各共识节点服务器反馈的响应结果之后,上述方法还包括:
客户端将响应结果与预设响应结果进行比对,若比对结果表示响应结果与预设响应结果相匹配,则更新响应结果对应的相同响应结果的数量;
若相同响应结果的数量大于预设阈值,客户端判定存在满足预设数量的相同响应结果。
在本申请的一种示例性实施例中,客户端输出响应结果,包括:
客户端通过预设展示方式展示响应结果并输出用于表示交易请求中的交易已成功上链的提示信息。
在本申请的一种示例性实施例中,客户端将交易请求发送至多个共识节点服务器,包括:
客户端根据交易请求对应的联盟区域从所有共识节点服务器中选择多个共识节点服务器并将交易请求发送至多个共识节点服务器;
其中,多个共识节点服务器属于联盟区域。
根据本申请的一方面,提供一种基于区块链的交易请求处理系统,包括:多个共识节点服务器和部署于终端设备的客户端,其中:
客户端,用于接收交易请求,并将交易请求发送至多个共识节点服务器;
多个共识节点服务器,用于对交易请求进行共识和响应,并向客户端反馈响应结果;
客户端,用于接收各共识节点服务器反馈的响应结果,若存在满足预设数量的相同响应结果,则输出相同响应结果。
根据本申请的一方面,提供一种基于区块链的交易请求处理装置,包括:请求发送单元、响应接收单元以及响应返回单元,其中:
请求发送单元,用于当接收到交易请求时,将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应;
响应接收单元,用于接收各共识节点服务器反馈的响应结果;
响应返回单元,用于若存在满足预设数量的相同响应结果,则输出响应结果。
在本申请的一种示例性实施例中,共识节点服务器包括主节点服务器和副节点服务器,请求发送单元将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应,包括:
将交易请求发送至主节点服务器;
主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应。
在本申请的一种示例性实施例中,主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应的方式为:
主节点服务器对交易请求中的交易进行校验,并在校验成功之后根据交易生成预备证书;其中,预备证书至少包括与交易对应的区块和证书时间戳;
主节点服务器向副节点服务器广播预备证书,以使得副节点服务器根据预备证书对区块进行共识并在共识成功之后将区块写入区块链账本。
在本申请的一种示例性实施例中,请求发送单元将交易请求发送至主节点服务器,包括:
根据交易请求生成请求信息并将请求信息发送至主节点服务器;其中,请求信息至少包括交易请求、交易请求对应的操作、时间戳、客户端的字符串表征。
在本申请的一种示例性实施例中,预备证书还包括:视图编号、区块序列号以及区块摘要;其中,视图编号用于作为主节点服务器的表征。
在本申请的一种示例性实施例中,响应结果包括:视图编号、响应内容、时间戳以及响应内容对应的副节点服务器编号。
在本申请的一种示例性实施例中,副节点服务器根据预备证书对区块进行共识并在共识成功之后将区块写入区块链账本的方式为:
副节点服务器验证区块的唯一性,若存在唯一性,则广播预备证书,以使得除副节点服务器之外的其他副节点服务器以及主节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应并向副节点服务器发送响应结果;
若存在满足预设数量的相同响应结果,副节点服务器将区块写入区块链账本。
在本申请的一种示例性实施例中,其他副节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应的方式为:
其他副节点服务器验证交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行交易请求对应的操作,以实现对于交易请求的响应。
在本申请的一种示例性实施例中,上述装置还包括结果比对单元、数量更新单元以及判定单元,其中:
结果比对单元,用于响应接收单元接收各共识节点服务器反馈的响应结果之后,将响应结果与预设响应结果进行比对;
数量更新单元,用于在比对结果表示响应结果与预设响应结果相匹配时,更新响应结果对应的相同响应结果的数量;
判定单元,用于在相同响应结果的数量大于预设阈值时,判定存在满足预设数量的相同响应结果。
在本申请的一种示例性实施例中,响应返回单元输出响应结果,包括:
通过预设展示方式展示响应结果并输出用于表示交易请求中的交易已成功上链的提示信息。
在本申请的一种示例性实施例中,请求发送单元将交易请求发送至多个共识节点服务器,包括:
根据交易请求对应的联盟区域从所有共识节点服务器中选择多个共识节点服务器并将交易请求发送至多个共识节点服务器;
其中,多个共识节点服务器属于联盟区域。
根据本申请的一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本申请的一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
根据本申请的一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
本申请示例性实施例可以具有以下部分或全部有益效果:
在本申请的一示例实施方式所提供的基于区块链的交易请求处理方法中,可以当部署于终端设备的客户端接收到交易请求时,客户端将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应;接收各共识节点服务器反馈的响应结果;若存在满足预设数量的相同响应结果,则输出响应结果。依据上述方案描述,本申请一方面可以提升响应结果的置信度。本申请又一方面可以提升提供区块链功能的系统的可信度,降低恶意节点篡改响应结果时对请求处理结果造成的影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了基于区块链的交易请求处理系统的一个可选的结构示意图;
图2示出了适于用来实现本申请实施例的区块结构(Block Structure)一个可选的示意图;
图3示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理方法的流程图;
图4示意性示出了根据本申请的一个实施例的根据实用拜占庭容错算法对交易请求进行响应的阶段示意图;
图5示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理方法的流程图;
图6示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理系统的架构示意图;
图7示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理系统的模块示意图;
图8示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理系统的架构示意图;
图9示意性示出了根据本申请的一个实施例中的基于区块链的交易请求处理装置的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本申请的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本申请的各方面变得模糊。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本发明实施例涉及的系统可以是由客户端和多个共识节点通过网络通信的形式连接形成的基于区块链的交易请求处理系统。
以基于区块链的交易请求处理系统为区块链系统为例,参见图1,图1是本发明实施例提供的基于区块链的交易请求处理系统100的一个可选的结构示意图,由共识节点200~209和客户端300构成,上述各节点之间组成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。
具体地,共识节点200~209可以分别部署于相互独立的服务器中,客户端300可以部署于终端设备中,终端设备与上述服务器相互独立。当客户端300接收到交易请求时,可以将所述交易请求发送至共识节点200~209中至少一个共识节点中,该共识节点可以为主共识节点,其他共识节点可以为从共识节点。进而,可以使得主共识节点对交易请求进行交易合法性验证并在验证成功之后将交易打包为区块并广播至从共识节点。进而,共识节点200~209可以对区块进行共识并执行交易请求对应的操作,以实现对于交易请求的响应。若相同响应结果的数量满足预设数量,则通过共识节点200~209中任一共识结果将该区块写入区块链账本中。进而,共识节点200~209还可以将各自对应的响应结果反馈至客户端300,以使得客户端300根据接收到的响应结果响应交易请求。
在基于区块链的交易请求处理系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。其中,作为节点的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不作限制。
需要说明的是,上述的云服务器可以利用云技术提供基础云计算服务。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
另外,还需要说明的是,上述的基础云计算服务中包括的云计算(cloudcomputing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(GridComputing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
以及,基础云计算服务中包括的云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array ofIndependent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
以及,基础云计算服务中包括的数据库(Database)可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
以及,基础云计算服务中包括的大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
当存在一个系统作为区块链对外提供服务时,需要具备足够高的可信度,才能够使得使用该系统的用户信任该系统。但是,一般来说,面向客户的客户端和服务端均布局在同一设备上,如,远端服务器。然而,这样容易存在以下问题:服务端可以替代客户端作为区块链网络中多个共识节点中的一个节点,并接收其他共识节点对于用户请求的响应结果,而客户端只能够收到一一对应的服务端反馈的响应结果,攻击者有可能会冒充该服务端反馈恶意结果给客户端。
本示例实施方式提供了一种基于区块链的交易请求处理方法。参考图3所示,该基于区块链的交易请求处理方法可以包括以下步骤S310至步骤S330:
步骤S310:当部署于终端设备的客户端接收到交易请求时,客户端将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应。
步骤S320:客户端接收各共识节点服务器反馈的响应结果。
步骤S330:若存在满足预设数量的相同响应结果,客户端输出相同响应结果。
实施图3所示的方法,可以提升响应结果的置信度。此外,还可以提升提供区块链功能的系统的可信度,降低恶意节点篡改响应结果时对请求处理结果造成的影响。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
步骤S310:当部署于终端设备的客户端接收到交易请求时,客户端将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应。
其中,交易请求可以为数据上链请求。
作为一种可选的实施例,共识节点服务器包括主节点服务器和副节点服务器,客户端将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应,包括:客户端将交易请求发送至主节点服务器,以使得主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应。
具体地,区块链网络中可以包括多个共识节点,不同的共识节点可以部署于不同的服务器中,在多个共识节点中,存在一个主节点和多个副节点,主节点可以为多个共识节点中任一节点。另外,多个共识节点中可以包括拜占庭节点也可以包括非拜占庭节点;其中,非拜占庭节点可以理解为正常的共识节点,拜占庭节点可以理解为恶意的共识节点,恶意的共识节点可以不传输消息,或者传输用于扰乱正常共识节点的虚假消息。
可选的,将交易请求发送至主节点服务器,以使得主节点服务器对交易请求进行共识和响应的方式可以为:将交易请求发送至主节点服务器,以使得主节点服务器根据实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)对交易请求进行共识和响应。其中,PBFT是解决存在拜占庭错误节点的分布式系统一致性问题的通用方案,由一致性协议、视图更换协议和检查点协议组成。区块链可以理解为异步的分布式系统,其数据结构可以适用于状态机拜占庭容错的使用场景。
请参阅图4,图4示意性示出了根据本申请的一个实施例的根据实用拜占庭容错算法对交易请求进行响应的阶段示意图。如图4所示,该阶段示意图可以包括阶段1~阶段5,涉及客户端、主节点、副节点A、副节点B以及副节点C之间的信息交互,假设副节点C为拜占庭节点,副节点A和副节点B为非拜占庭节点;其中,客户端可以部署于独立于服务器的终端设备中,主节点、副节点A、副节点B以及副节点C分别可以部署于不同的服务器中。
在阶段1中:当接收到交易请求时,客户端可以将交易请求发送至主节点。
在阶段2中:主节点可以对交易请求中的交易进行合法性校验,若交易请求中的交易合法,则将交易打包为区块并生成包含该区块的预备证书,进而,可以广播预备证书。
在阶段3中:副节点A、副节点B以及副节点C在接收到预备证书之后,可以验证区块的唯一性,若存在唯一性,则广播预备证书。
在阶段4中,主节点、副节点A、副节点B以及副节点C可以验证区块中交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行交易请求对应的操作,以实现对于交易请求的响应并广播响应结果。
在阶段5中,主节点、副节点A、副节点B以及副节点C可以分别返回响应结果至客户端。客户端在接收到各副节点A、副节点B以及副节点C反馈的响应结果之后,可以计算相同响应结果的数量,若存在满足(如,3)预设数量的相同响应结果,则可以返回响应结果。
可见,实施该可选的实施例,能够在交易请求共识成功后对其进行响应,这样可以保障区块链数据安全。
作为一种可选的实施例,主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应的方式为:主节点服务器对交易请求中的交易进行校验,并在校验成功之后根据交易生成预备证书;其中,预备证书至少包括与交易对应的区块和证书时间戳;主节点服务器向副节点服务器广播预备证书,以使得副节点服务器根据预备证书对区块进行共识并在共识成功之后将区块写入区块链账本。
具体地,预备证书还包括:视图编号、区块序列号以及区块摘要;其中,视图编号用于作为主节点服务器的表征,不同的共识节点对应不同的视图编号。响应结果包括:视图编号、响应内容、时间戳以及响应内容对应的副节点服务器编号。进而,上述方法还可以执行以下步骤:副节点服务器可以对视图编号取模,从而根据取模结果确定出广播预备证书的主节点服务器。
此外,主节点服务器广播的预备证书可以表示为<<PRE-PREPARE,v,n,d>,m>σ;其中,PRE-PREPARE用于表示主节点的当前状态为预备状态,v用于表示视图编号,n用于表示区块序列号,d用于表示区块摘要,m用于表示区块,σ用于表示主节点服务器对于预备证书的签名。
可选的,主节点服务器对交易请求中的交易进行校验的方式可以为:主节点服务器验证交易请求中的交易是否符合预设上链规则,若符合,则判定校验成功。进而,根据交易生成预备证书的方式可以为:对交易请求中各交易进行生成时间进行排序;对排序结果进行两两哈希以及层层约减,以计算得到交易请求对应的默克尔树,其中,默克尔树包括用于作为区块摘要的默克尔根;计算符合当前难度目标的随机数;确定区块版本号、前一区块的哈希值以及区块生成时间(即,证书时间戳);根据默克尔根、当前难度目标、随机数、区块版本号、前一区块的哈希值以及区块生成时间组装区块头;根据区块头和区块体组成区块;根据区块、证书时间戳、视图编号、区块序列号以及区块摘要生成预备证书。
可选的,主节点服务器向副节点服务器广播预备证书的方式可以为:主节点服务器通过主节点私钥对预备证书签名,并将签名后的预备证书进行广播。进而,主节点服务器向副节点服务器广播预备证书之后,还可以执行以下步骤:主节点服务器将当前状态更新为预备状态;需要说明的是,处于预备状态的节点可以执行共识操作。进而,还可以执行以下步骤:副节点服务器接收预备证书并通过主节点公钥对预备证书进行解密。
可见,实施该可选的实施例,能够通过对共识节点进行主节点和副节点的区分,以及利用实用拜占庭共识算法进行共识,避免共识节点中的恶意节点对于上链结果的影响,从而提升系统安全性。
作为一种可选的实施例,客户端将交易请求发送至主节点服务器,包括:客户端根据交易请求生成请求信息并将请求信息发送至主节点服务器;其中,请求信息至少包括交易请求、交易请求对应的操作、时间戳、客户端的字符串表征。
具体地,请求信息可以表示为其中,REQUEST用于表示客户端c处于交易请求状态,c为客户端的字符串表征,o用于表示交易请求对应的操作,t用于表示时间戳,σc用于表示客户端c对于请求信息的签名。此外,客户端部署在独立于共识节点服务器的终端设备中,终端设备具备与共识节点服务器进行通信的功能。
可见,实施该可选的实施例,能够通过发送的请求信息,将交易请求传递至共识节点,以便共识节点对交易请求中的交易进行共识。
作为一种可选的实施例,副节点服务器根据预备证书对区块进行共识并在共识成功之后将区块写入区块链账本的方式为:副节点服务器验证区块的唯一性,若存在唯一性,则广播预备证书,以使得除副节点服务器之外的其他副节点服务器以及主节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应并向副节点服务器发送响应结果;若存在满足预设数量的相同响应结果,副节点服务器将区块写入区块链账本。
举例来说,若存在多个副节点服务器,那么,在主节点服务器向副节点服务器广播预备证书之后,每个副节点服务器均可以接收到预备证书,进而,每个副节点服务器均可以执行上述该可选实施例中的步骤。
可选的,副节点服务器广播预备证书之前,还可以执行以下步骤:副节点服务器将当前状态更新为预备状态。在每个副节点服务器广播预备证书之后,除自身节点之外的其他副节点服务器均可以接收到预备证书。举例来说,副节点服务器1、副节点服务器2和副节点服务器3在分别广播预备证书之后,主节点服务器、副节点服务器1、副节点服务器2可以接收到由副节点服务器3广播的预备证书;主节点服务器、副节点服务器2和副节点服务器3可以接收到由副节点服务器1广播的预备证书;主节点服务器、副节点服务器1和副节点服务器3可以接收到由副节点服务器2广播的预备证书。进而,主节点服务器和副节点服务器可以根据各自接收到的预备证书对预备证书中的区块进行合法性验证。
可选的,对交易请求进行响应并向副节点服务器发送响应结果的方式可以为:副节点服务器可以对交易请求进行响应并将响应结果反馈至广播该交易请求的副节点服务器。进而,若广播该交易请求的副节点服务器接收到的响应结果满足不等式n≥3f+1,则判定存在满足预设数量的相同响应结果;其中,n为共识节点总数量,f为拜占庭节点数量。具体地,若非拜占庭节点返回的相同响应结果的数量满足f+1,则可以判定存在满足预设数量的相同响应结果。
可见,实施该可选的实施例,能够通过对于区块的唯一性验证,避免无效验证,从而有利于提升对于服务器的资源利用率。
作为一种可选的实施例,其他副节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应的方式为:其他副节点服务器验证交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行交易请求对应的操作,以实现对于交易请求的响应。
具体地,区块高度用于表示区块链网络中的区块数量,也可以用于表示某个区块在链条中的位置。
可选的,其他副节点服务器验证交易的正确性、区块头的正确性以及区块高度的合法性的方式可以为:计算交易对应的各级哈希,根据各级哈希计算根哈希,若检测到根哈希与区块头中的默克尔根一致,则判定交易正确且;验证区块头中各数据是否正确,如果各数据正确则判定区块头正确;根据区块链的当前高度检测该区块对应的区块高度是否正确,若正确,则判定区块高度合法。
可见,实施该可选的实施例,能够通过处于预备状态的共识节点对区块进行共识,并在共识后对其中的交易进行响应,从而提升系统安全性,降低恶意节点(即,拜占庭节点)的响应结果对交易请求上链造成的影响。
步骤S320:客户端接收各共识节点服务器反馈的响应结果。
具体地,共识节点服务器反馈的响应结果可以表示为其中,REPLY用于表示共识节点服务器处于反馈阶段,t用于表示时间戳,c用于作为客户端的唯一表征,r用于表示响应内容,σi用于表示共识节点服务器i对于响应结果的签名。
作为一种可选的实施例,客户端接收各共识节点服务器反馈的响应结果之后,上述方法还包括:客户端将响应结果与预设响应结果进行比对,若比对结果表示响应结果与预设响应结果相匹配,则更新响应结果对应的相同响应结果的数量;若相同响应结果的数量大于预设阈值,则判定存在满足预设数量的相同响应结果。
具体地,判定存在满足预设阈值的相同响应结果之后,还可以执行以下步骤:判定交易请求中的交易上链成功。
可见,实施该可选的实施例,能够接收到各个共识节点的反馈,根据多个响应结果执行判定操作,降低恶意节点对执行判定操作的影响。
步骤S330:若存在满足预设数量的相同响应结果,客户端输出相同响应结果。
作为一种可选的实施例,客户端输出相同响应结果,包括:客户端通过预设展示方式展示相同响应结果并输出用于表示交易请求中的交易已成功上链的提示信息。
具体地,预设展示方式可以包括文字展示方式、图表展示方式等。
可见,实施该可选的实施例,能够接收各个共识节点反馈的响应结果,从而避免恶意节点篡改响应结果对客户端所返回的响应结果的影响,提升交易请求处理系统的可信度。
作为一种可选的实施例,客户端将交易请求发送至多个共识节点服务器,包括:客户端根据交易请求对应的联盟区域从所有共识节点服务器中选择多个共识节点服务器并将交易请求发送至多个共识节点服务器;其中,多个共识节点服务器属于联盟区域。其中,联盟区域可以中包括客户端以及与客户端所处同一联盟链的其他各节点。可选的,本申请实施例可以包括多个联盟区域,不同的联盟区域中可以包括不同数量的节点。
可见,实施该可选的实施例,能够通过联盟区域内的共识节点服务器进行共识,以在保证响应结果置信度的情况下提高上链效率。
举例来说,本申请实施例可以应用于联盟链中,在联盟链中,各个机构所对应的共识模块可以包括客户端和服务端,客户端可以部署于各个机构对应的用户设备上,服务端可以部署于远端服务器上。各个机构分别作为区块链网络中的节点可以将必要的数据上传区块链。其中,各个节点对应的客户端在上传数据上链请求之后,可以直接接收到各个共识节点在执行了PBFT共识算法之后的响应结果,从而可以根据相同响应结果的数量得到真实准确的上链结果。
请参阅图5,图5示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理方法的流程图。基于区块链的交易请求处理方法包括:步骤S500~步骤S570,其中:
步骤S500:客户端根据交易请求生成请求信息并将请求信息发送至共识节点服务器中的主节点服务器;其中,请求信息至少包括交易请求、交易请求对应的操作、时间戳、客户端的字符串表征;客户端部署在独立于共识节点服务器的终端设备中,终端设备具备与共识节点服务器进行通信的功能。
步骤S510:主节点服务器对交易请求中的交易进行校验,并在校验成功之后根据交易生成预备证书,以及向副节点服务器广播预备证书;其中,预备证书至少包括与交易对应的区块和证书时间戳。
步骤S520:副节点服务器验证区块的唯一性,若存在唯一性,则广播预备证书。
步骤S530:除副节点服务器之外的其他副节点服务器验证交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行交易请求对应的操作,以实现对于交易请求的响应。
步骤S540:若存在满足预设数量的相同响应结果,副节点服务器将区块写入区块链账本。
步骤S550:客户端接收共识节点服务器反馈的响应结果,将响应结果与预设响应结果进行比对,若比对结果表示响应结果与预设响应结果相匹配,则更新响应结果对应的相同响应结果的数量。
步骤S560:若相同响应结果的数量大于预设阈值,客户端判定存在满足预设数量的相同响应结果。
步骤S570:通过预设展示方式展示相同响应结果并输出用于表示交易请求中的交易已成功上链的提示信息。
需要说明的是,步骤S500~步骤S570与图3所示的各步骤及其实施例相对应,针对步骤S500~步骤S570的实施方式,请参阅图3所示的各步骤及其实施例,此处不再赘述。
可见,实施图5所示的方法,可以提升响应结果的置信度。此外,还可以提升提供区块链功能的系统的可信度,降低恶意节点篡改响应结果时对请求处理结果造成的影响。
进一步的,本示例实施方式中,还提供了一种基于区块链的交易请求处理系统。参考图6所示,该基于区块链的交易请求处理系统600可以包括:多个共识节点服务器620和部署于终端设备610的客户端611,其中:
客户端611,用于接收交易请求,并将交易请求发送至多个共识节点服务器620;
多个共识节点服务器620,用于对交易请求进行共识和响应,并向客户端611反馈响应结果;
客户端611,用于接收多个共识节点服务器620反馈的响应结果,若存在满足预设数量的相同响应结果,则输出相同响应结果。
可见,实施图6所示的系统,可以提升响应结果的置信度。此外,还可以提升提供区块链功能的系统的可信度,降低恶意节点篡改响应结果时对请求处理结果造成的影响。
请参阅图7,图7示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理系统的模块示意图。如图7所示,基于区块链的交易请求处理系统700可以包括:接口模块710、共识模块720以及账本模块730;其中,共识模块720可以包括客户端721和服务端722,客户端721和接口模块710部署于终端设备中,服务端722部署于各个共识节点服务器中,终端设备具备与共识节点服务器通信的功能。
具体地,接口模块710可以为应用程序接口(Application ProgrammingInterface,API)模块,用于提供对外接口以接收外部请求(如,上述的交易请求)。当接口模块710接收到交易请求时,可以将交易请求转发至客户端611,以使得客户端611将交易请求发送至主共识节点的服务端722,并接收服务端722针对交易请求反馈的响应结果。其中,主共识节点的服务端722接收到交易请求后可以对交易请求进行合法性验证,若验证成功,则将交易请求中的交易打包为区块并广播,以使得副共识节点的服务端722验证区块的唯一性。从而,主共识节点和副共识节点的服务端722对区块进行共识,若共识成功,则执行交易请求对应的操作,以实现对于交易请求的响应。若存在满足预设数量的相同响应结果,则触发账本模块730将区块写入区块链账本。此外,主共识节点和副共识节点的服务端722还可以将响应结果返回至客户端721,以使得客户端721向接口模块710反馈该响应结果。
请参阅图8,图8示意性示出了根据本申请的一个实施例的基于区块链的交易请求处理系统的架构示意图。如图8所示,基于区块链的交易请求处理系统800可以包括:终端设备810和共识节点服务器820;其中,终端设备810中包括客户端811;共识节点服务器820中包括主节点服务器821、副节点服务器822、副节点服务器823、副节点服务器824以及副节点服务器825。需要说明的是,图8所示的副节点服务器仅为示例性示出,在实际应用中,本申请实施例对于副节点服务器的数量不作限定。
具体地,客户端811接收到交易请求时,可以将交易请求发送至主节点服务器821。进而,主节点服务器821可以将交易请求中的交易进行合法性验证,若验证成功,则将交易打包为区块并生成包含区块的预备证书,以及向副节点服务器822、副节点服务器823、副节点服务器824以及副节点服务器825广播预备证书。进而,副节点服务器822、副节点服务器823、副节点服务器824以及副节点服务器825可以分别验证预备证书中区块的唯一性,若存在唯一性,则广播预备证书并更新自身状态至预备状态。进而,主节点服务器821、副节点服务器822、副节点服务器823、副节点服务器824以及副节点服务器825可以根据接收到的预备证书对区块进行共识,若共识成功,则执行交易请求对应的操作,以实现对于交易请求的响应。若存在满足预设数量的相同响应结果,则将区块写入区块链账本。此外,主节点服务器821、副节点服务器822、副节点服务器823、副节点服务器824以及副节点服务器825还可以将响应结果返回至客户端811,以使得客户端811针对接收到的交易请求返回该响应结果。
更进一步的,本示例实施方式中,还提供了一种基于区块链的交易请求处理装置。参考图9所示,该基于区块链的交易请求处理装置900可以包括:请求发送单元901、响应接收单元902以及响应返回单元903,其中:
请求发送单元901,用于当接收到交易请求时,将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应;
响应接收单元902,用于接收各共识节点服务器反馈的响应结果;
响应返回单元903,用于若存在满足预设数量的相同响应结果,则输出相同响应结果。
其中,响应结果包括:视图编号、响应内容、时间戳以及响应内容对应的副节点服务器编号。
可见,实施图9所示的装置,可以提升响应结果的置信度。此外,还可以提升提供区块链功能的系统的可信度,降低恶意节点篡改响应结果时对请求处理结果造成的影响。
在本申请的一种示例性实施例中,共识节点服务器包括主节点服务器和副节点服务器,请求发送单元901将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应,包括:
将交易请求发送至主节点服务器;
主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应。
可见,实施该可选的实施例,能够在交易请求共识成功后对其进行响应,这样可以保障区块链数据安全。
在本申请的一种示例性实施例中,主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应的方式为:
主节点服务器对交易请求中的交易进行校验,并在校验成功之后根据交易生成预备证书;其中,预备证书至少包括与交易对应的区块和证书时间戳;
主节点服务器根据预备证书向副节点服务器广播预备证书,以使得副节点服务器对区块进行共识并在共识成功之后将区块写入区块链账本。
其中,预备证书还包括:视图编号、区块序列号以及区块摘要;其中,视图编号用于作为主节点服务器的表征。
可见,实施该可选的实施例,能够通过对共识节点进行主节点和副节点的区分,以及利用实用拜占庭共识算法进行共识,避免共识节点中的恶意节点对于上链结果的影响,从而提升系统安全性。
在本申请的一种示例性实施例中,请求发送单元901将交易请求发送至主节点服务器,包括:
根据交易请求生成请求信息并将请求信息发送至主节点服务器;其中,请求信息至少包括交易请求、交易请求对应的操作、时间戳、客户端的字符串表征。
其中,客户端部署在独立于共识节点服务器的终端设备中,终端设备具备与共识节点服务器进行通信的功能。
可见,实施该可选的实施例,能够通过发送的请求信息,将交易请求传递至共识节点,以便共识节点对交易请求中的交易进行共识。
在本申请的一种示例性实施例中,副节点服务器根据预备证书对区块进行共识并在共识成功之后将区块写入区块链账本的方式为:
副节点服务器验证区块的唯一性,若存在唯一性,则广播预备证书,以使得除副节点服务器之外的其他副节点服务器以及主节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应并向副节点服务器发送响应结果;
若存在满足预设数量的相同响应结果,副节点服务器将区块写入区块链账本。
可见,实施该可选的实施例,能够通过对于区块的唯一性验证,避免无效验证,从而有利于提升对于服务器的资源利用率。
在本申请的一种示例性实施例中,其他副节点服务器对区块进行合法性验证,若验证成功则对交易请求进行响应的方式为:
其他副节点服务器验证交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行交易请求对应的操作,以实现对于交易请求的响应。
可见,实施该可选的实施例,能够通过处于预备状态的共识节点对区块进行共识,并在共识后对其中的交易进行响应,从而提升系统安全性,降低恶意节点(即,拜占庭节点)的响应结果对交易请求上链造成的影响。
在本申请的一种示例性实施例中,上述装置还包括结果比对单元(未图示)、数量更新单元(未图示)以及判定单元(未图示),其中:
结果比对单元,用于响应接收单元902接收各共识节点服务器反馈的响应结果之后,将响应结果与预设响应结果进行比对;
数量更新单元,用于在比对结果表示响应结果与预设响应结果相匹配时,更新响应结果对应的相同响应结果的数量;
判定单元,用于在相同响应结果的数量大于预设阈值时,判定存在满足预设数量的相同响应结果。
可见,实施该可选的实施例,能够接收到各个共识节点的反馈,根据多个响应结果执行判定操作,降低恶意节点对执行判定操作的影响。
在本申请的一种示例性实施例中,响应返回单元903输出相同响应结果,包括:
通过预设展示方式展示相同响应结果并输出用于表示交易请求中的交易已成功上链的提示信息。
可见,实施该可选的实施例,能够接收各个共识节点反馈的响应结果,从而避免恶意节点篡改响应结果对客户端所返回的响应结果的影响,提升交易请求处理系统的可信度。
在本申请的一种示例性实施例中,请求发送单元901将交易请求发送至多个共识节点服务器,包括:
根据交易请求对应的联盟区域从所有共识节点服务器中选择多个共识节点服务器并将交易请求发送至多个共识节点服务器;
其中,多个共识节点服务器属于联盟区域。
可见,实施该可选的实施例,能够通过联盟区域内的共识节点服务器进行共识,以在保证响应结果置信度的情况下提高上链效率。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
由于本申请的示例实施例的基于区块链的交易请求处理装置的各个功能模块与上述基于区块链的交易请求处理方法的示例实施例的步骤对应,因此对于本申请装置实施例中未披露的细节,请参照本申请上述的基于区块链的交易请求处理方法的实施例。
作为另一方面,本申请还提供了一种电子设备,电子设备包括中央处理单元(CPU),其可以根据存储在只读存储器(ROM)中的程序或者从存储部分加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理,以实现本发明实施例提供的各种方法步骤。在RAM中,还存储有系统操作所需的各种程序和数据。CPU、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
作为又一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个电子设备执行时,使得电子设备实现上述实施例中所述的方法。
根据本申请实施例的一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (23)
1.一种基于区块链的交易请求处理方法,其特征在于,包括:
当部署于终端设备的客户端接收到交易请求时,所述客户端将所述交易请求发送至多个共识节点服务器,以使得所述多个共识节点服务器对所述交易请求进行共识和响应;其中,所述客户端将所述交易请求发送至多个共识节点服务器,包括:所述客户端根据交易请求对应的联盟区域从所有共识节点服务器中选择所述多个共识节点服务器,并将所述交易请求发送至所述多个共识节点服务器;所述客户端和所述多个共识节点服务器属于所述联盟区域,所述终端设备与所述多个共识节点服务器相互独立;
所述客户端接收各所述共识节点服务器反馈的响应结果;
若存在满足预设数量的相同响应结果,所述客户端输出所述相同响应结果。
2.根据权利要求1所述的方法,其特征在于,所述共识节点服务器包括主节点服务器和副节点服务器,所述客户端将所述交易请求发送至多个共识节点服务器,以使得所述多个共识节点服务器对所述交易请求进行共识和响应,包括:
所述客户端将所述交易请求发送至所述主节点服务器;
所述主节点服务器根据所述交易请求生成预备证书并广播至所述副节点服务器,以使得所述副节点服务器根据所述预备证书对所述交易请求进行共识和响应。
3.根据权利要求2所述的方法,其特征在于,所述主节点服务器根据所述交易请求生成预备证书并广播至所述副节点服务器,以使得所述副节点服务器根据所述预备证书对所述交易请求进行共识和响应,包括:
所述主节点服务器对所述交易请求中的交易进行校验,并在校验成功之后根据所述交易生成预备证书;其中,所述预备证书至少包括与所述交易对应的区块和证书时间戳;
所述主节点服务器向所述副节点服务器广播所述预备证书,以使得所述副节点服务器根据所述预备证书对所述区块进行共识并在共识成功之后将所述区块写入区块链账本。
4.根据权利要求3所述的方法,其特征在于,所述客户端将所述交易请求发送至所述主节点服务器,包括:
所述客户端根据所述交易请求生成请求信息并将所述请求信息发送至所述主节点服务器;其中,所述请求信息至少包括所述交易请求、所述交易请求对应的操作、时间戳、客户端的字符串表征。
5.根据权利要求4所述的方法,其特征在于,所述预备证书还包括:视图编号、区块序列号以及区块摘要;其中,所述视图编号用于作为所述主节点服务器的表征。
6.根据权利要求5所述的方法,其特征在于,所述响应结果包括:所述视图编号、响应内容、所述时间戳以及所述响应内容对应的副节点服务器编号。
7.根据权利要求4所述的方法,其特征在于,所述副节点服务器根据所述预备证书对所述区块进行共识并在共识成功之后将所述区块写入区块链账本,包括:
所述副节点服务器验证所述区块的唯一性,若存在唯一性,则广播所述预备证书,以使得除所述副节点服务器之外的其他副节点服务器以及所述主节点服务器对所述区块进行合法性验证,若验证成功则对所述交易请求进行响应并向所述副节点服务器发送响应结果;
若存在满足预设数量的相同响应结果,所述副节点服务器将所述区块写入区块链账本。
8.根据权利要求7所述的方法,其特征在于,所述其他副节点服务器对所述区块进行合法性验证,若验证成功则对所述交易请求进行响应,包括:
所述其他副节点服务器验证所述交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行所述交易请求对应的操作,以实现对于所述交易请求的响应。
9.根据权利要求1所述的方法,其特征在于,所述客户端接收各所述共识节点服务器反馈的响应结果之后,所述方法还包括:
所述客户端将所述响应结果与预设响应结果进行比对,若比对结果表示所述响应结果与所述预设响应结果相匹配,则更新所述响应结果对应的相同响应结果的数量;
若所述相同响应结果的数量大于预设阈值,所述客户端判定存在满足所述预设数量的所述相同响应结果。
10.根据权利要求1所述的方法,其特征在于,所述客户端输出所述响应结果,包括:
所述客户端通过预设展示方式展示所述相同响应结果并输出用于表示所述交易请求中的交易已成功上链的提示信息。
11.一种基于区块链的交易请求处理系统,其特征在于,包括:多个共识节点服务器和部署于终端设备的客户端,其中:
所述客户端,用于接收交易请求,根据交易请求对应的联盟区域从所有共识节点服务器中选择所述多个共识节点服务器,并将所述交易请求发送至所述多个共识节点服务器;其中,所述客户端和所述多个共识节点服务器属于所述联盟区域,所述终端设备与所述多个共识节点服务器相互独立;
所述多个共识节点服务器,用于对所述交易请求进行共识和响应,并向所述客户端反馈响应结果;
所述客户端,用于接收各所述共识节点服务器反馈的响应结果,若存在满足预设数量的相同响应结果,则输出所述相同响应结果。
12.一种基于区块链的交易请求处理装置,其特征在于,包括:
请求发送单元,用于当接收到交易请求时,根据交易请求对应的联盟区域从所有共识节点服务器中选择多个共识节点服务器,并将所述交易请求发送至所述多个共识节点服务器,以使得所述多个共识节点服务器对所述交易请求进行共识和响应;其中,客户端和所述多个共识节点服务器属于所述联盟区域,终端设备与所述多个共识节点服务器相互独立;
响应接收单元,用于接收各所述共识节点服务器反馈的响应结果;
响应返回单元,用于若存在满足预设数量的相同响应结果,则输出所述相同响应结果。
13.根据权利要求12所述的装置,其特征在于,所述共识节点服务器包括主节点服务器和副节点服务器,所述请求发送单元将交易请求发送至多个共识节点服务器,以使得多个共识节点服务器对交易请求进行共识和响应,包括:
将交易请求发送至主节点服务器;
主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应。
14.根据权利要求13所述的装置,其特征在于,所述主节点服务器根据交易请求生成预备证书并广播至副节点服务器,以使得副节点服务器根据预备证书对交易请求进行共识和响应的方式为:
所述主节点服务器对所述交易请求中的交易进行校验,并在校验成功之后根据所述交易生成预备证书;其中,所述预备证书至少包括与所述交易对应的区块和证书时间戳;
所述主节点服务器向所述副节点服务器广播所述预备证书,以使得所述副节点服务器根据所述预备证书对所述区块进行共识并在共识成功之后将所述区块写入区块链账本。
15.根据权利要求14所述的装置,其特征在于,所述请求发送单元将交易请求发送至主节点服务器,包括:
所述客户端根据所述交易请求生成请求信息并将所述请求信息发送至所述主节点服务器;其中,所述请求信息至少包括所述交易请求、所述交易请求对应的操作、时间戳、客户端的字符串表征。
16.根据权利要求15所述的装置,其特征在于,所述预备证书还包括:视图编号、区块序列号以及区块摘要;其中,所述视图编号用于作为所述主节点服务器的表征。
17.根据权利要求16所述的装置,其特征在于,所述响应结果包括:所述视图编号、响应内容、所述时间戳以及所述响应内容对应的副节点服务器编号。
18.根据权利要求15所述的装置,其特征在于,所述副节点服务器根据所述预备证书对所述区块进行共识并在共识成功之后将所述区块写入区块链账本的方式为:
所述副节点服务器验证所述区块的唯一性,若存在唯一性,则广播所述预备证书,以使得除所述副节点服务器之外的其他副节点服务器以及所述主节点服务器对所述区块进行合法性验证,若验证成功则对所述交易请求进行响应并向所述副节点服务器发送响应结果;
若存在满足预设数量的相同响应结果,所述副节点服务器将所述区块写入区块链账本。
19.根据权利要求18所述的装置,其特征在于,所述其他副节点服务器对所述区块进行合法性验证,若验证成功则对所述交易请求进行响应的方式为:
所述其他副节点服务器验证所述交易的正确性、区块头的正确性以及区块高度的合法性,若均验证成功,则执行所述交易请求对应的操作,以实现对于所述交易请求的响应。
20.根据权利要求12所述的装置,其特征在于,所述装置还包括结果比对单元、数量更新单元以及判定单元,其中:
所述结果比对单元,用于所述客户端将所述响应结果与预设响应结果进行比对;
所述数量更新单元,用于若比对结果表示所述响应结果与所述预设响应结果相匹配,则更新所述响应结果对应的相同响应结果的数量;
所述判定单元,用于若所述相同响应结果的数量大于预设阈值,所述客户端判定存在满足所述预设数量的所述相同响应结果。
21.根据权利要求20所述的装置,其特征在于,所述客户端输出所述响应结果的方式为:
所述客户端通过预设展示方式展示所述相同响应结果并输出用于表示所述交易请求中的交易已成功上链的提示信息。
22.一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,实现权利要求1-10中任一项所述的方法。
23.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010983844.8A CN112101942B (zh) | 2020-09-18 | 2020-09-18 | 基于区块链的交易请求处理方法、系统、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010983844.8A CN112101942B (zh) | 2020-09-18 | 2020-09-18 | 基于区块链的交易请求处理方法、系统、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112101942A CN112101942A (zh) | 2020-12-18 |
CN112101942B true CN112101942B (zh) | 2022-10-04 |
Family
ID=73758887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010983844.8A Active CN112101942B (zh) | 2020-09-18 | 2020-09-18 | 基于区块链的交易请求处理方法、系统、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112101942B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767152B (zh) * | 2021-01-18 | 2024-02-09 | 中国工商银行股份有限公司 | 应用于联盟链的双园区灾备系统及方法 |
CN113347212B (zh) * | 2021-08-05 | 2021-11-05 | 北京微芯区块链与边缘计算研究院 | 基于区块链的可信服务调度方法、装置、设备和存储介质 |
CN113610527B (zh) * | 2021-08-24 | 2024-05-28 | 上海点融信息科技有限责任公司 | 联盟链的交易方法、装置、系统、终端设备及存储介质 |
CN113973064B (zh) * | 2021-12-24 | 2022-02-25 | 南京金宁汇科技有限公司 | 一种基于区块链的稳定性测试方法及系统 |
CN114357079A (zh) * | 2021-12-30 | 2022-04-15 | 马上消费金融股份有限公司 | 一种基于区块链的数据处理方法、节点设备、系统及平台 |
CN115174090B (zh) * | 2022-05-20 | 2023-04-25 | 清华大学 | 区块链共识方法、装置、计算机设备及可读存储介质 |
CN117811739A (zh) * | 2022-09-26 | 2024-04-02 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
CN115760388B (zh) * | 2022-11-07 | 2023-11-21 | 深圳市腾盟技术有限公司 | 基于区块链的共识方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108769173B (zh) * | 2018-05-21 | 2021-11-09 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
CN109995536A (zh) * | 2019-03-15 | 2019-07-09 | 广州杰赛科技股份有限公司 | 一种区块链共识方法、装置及可读存储介质 |
CN111612455A (zh) * | 2020-04-21 | 2020-09-01 | 国网江苏省电力有限公司电力科学研究院 | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 |
-
2020
- 2020-09-18 CN CN202010983844.8A patent/CN112101942B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112101942A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112101942B (zh) | 基于区块链的交易请求处理方法、系统、装置及设备 | |
CN113711536B (zh) | 从区块链网络中提取数据 | |
JP6985576B2 (ja) | ビジネスプロセスシステム、ビジネスデータ処理方法及び装置 | |
US20210027289A1 (en) | Asset transaction method, storage medium, and computer device | |
US9967334B2 (en) | Computing device configuration and management using a secure decentralized transaction ledger | |
US20210304201A1 (en) | Transaction verification method and apparatus, storage medium, and electronic device | |
US20220239496A1 (en) | Blockchain consensus method, device and system | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
CN111294379B (zh) | 区块链网络服务平台及其权限托管方法、存储介质 | |
CN112235420B (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
CN111163182A (zh) | 基于区块链的设备注册方法、装置、电子设备和存储介质 | |
WO2018234988A1 (en) | METHODS AND SYSTEMS FOR A COHERENT DISTRIBUTED TRANSACTION BASIN IN A BLOCK CHAIN | |
CN113657900A (zh) | 一种跨链交易验证方法、系统以及跨链交易系统 | |
CN109002349B (zh) | 应用程序交互方法、实现方法、装置、设备和介质 | |
CN111327613B (zh) | 分布式服务的权限控制方法、装置及计算机可读存储介质 | |
CN114567643B (zh) | 跨区块链的数据流转方法、装置及相关设备 | |
JP7146093B2 (ja) | ブロックチェーンでノード間のブロック及び電子文書を共有及び検証する方法 | |
CN111639080B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN111931220B (zh) | 区块链网络的共识处理方法、装置、介质及电子设备 | |
CN110910000A (zh) | 一种区块链资产管理方法和装置 | |
CN115021929B (zh) | 算力网络的信任管理方法及装置、存储介质、电子设备 | |
JP2020204898A (ja) | 分散台帳システムの運用管理方法、分散台帳システムの運用管理システム、および分散台帳システムの運用管理プログラム | |
CN111008251A (zh) | 一种数据处理方法以及设备 | |
CN112231415B (zh) | 区块链网络的数据同步方法、系统、电子设备及可读介质 | |
CN113011960A (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 |