CN110728515A - 基于区块链的业务处理方法及装置 - Google Patents
基于区块链的业务处理方法及装置 Download PDFInfo
- Publication number
- CN110728515A CN110728515A CN201910928165.8A CN201910928165A CN110728515A CN 110728515 A CN110728515 A CN 110728515A CN 201910928165 A CN201910928165 A CN 201910928165A CN 110728515 A CN110728515 A CN 110728515A
- Authority
- CN
- China
- Prior art keywords
- block
- nodes
- block chain
- upper limit
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种基于区块链的业务处理方法及装置,所述方法包括:区块链网络中的主节点获取用户端发送的业务数据并生成区块;所述主节点向所有记账节点广播所述区块;所述主节点判断是否达到当前共识机制的容错上限;当达到容错上限时终止执行共识机制,将所述区块写入区块链中。
Description
技术领域
本发明涉及区块链应用领域,具体涉及一种基于区块链的业务处理方法及装置。
背景技术
区块链是一种分布式账本技术,也可以看作是一种按时间顺序存储数据的数据结构。
共识机制作为区块链的核心技术,是指通过区块链网络中特殊节点的投票,在很短时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为全网对此也能够达成共识。
共识机制的目的是使所有诚实节点保存一致的区块链视图,需要同时满足两个性质:
1)一致性。所有诚实节点保存的区块链的前缀部分完全相同。
2)有效性。由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块中。
目前,现有的基于PBFT(Practical Byzantine Falut Tolerance,实用拜占庭容错算法)的区块链平台,基本上通过三个阶段提交来完成区块的生成和区块链的更新:
第一阶段:利用PBFT算法,对提交给平台的交易进行共识,把达成一致共识的交易,放入有序的共识确认后交易队列;
第二阶段:打块节点从共识后交易队列中,按照顺序把交易打包到区块中,然后把打好的区块广播给所有记账节点,记账节点收到该区块后,验证区块内打包的交易有效后,返回签名确认;
第三阶段:打块节点收到半数以上记账节点的对该区块的签名确认后,把签名结果广播给所有记账节点,记账节点把该区块写到自己的链中。
这种共识机制在保证活性和安全性的前提下提供了(n-1)/3的容错性,也就是节点数需要达到3f+1个节点才能接受f个节点出现问题。由此可见这种共识机制存在一个容错上限,当区块链网络达到容错上限则系统崩溃,无法继续处理用户的业务。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中区块链系统达到共识机制容错上限时无法继续处理业务的缺陷。
有鉴于此,本发明提供一种基于区块链的业务处理方法,包括:
区块链网络中的主节点获取用户端发送的业务数据并生成区块;
所述主节点向所有记账节点广播所述区块;
所述主节点判断是否达到当前共识机制的容错上限;
当达到容错上限时终止执行共识机制,将所述区块写入区块链中。
可选地,所述主节点判断是否达到当前共识机制的容错上限,包括:
所述主节点判断是否有设定数量的记账节点能够提供验证服务;
当没有设定数量的记账节点能够提供验证服务时,确定达到所述容错上限。
可选地,所述主节点判断是否有设定数量的记账节点能够提供验证服务,包括:
接收各个节点对所述区块的广播;
统计接收到的广播数量是否达到所述设定数量。
可选地,所述设定数量为所述区块链网络中的总结点数量的2/3。
相应地,本发明还提供一种基于区块链的业务处理装置,包括:
获取模块,用于取用户端发送的业务数据并生成区块;
广播模块,用于向所有记账节点广播所述区块;
判断模块,用于判断是否达到当前共识机制的容错上限;
执行模块,用于当达到容错上限时终止执行共识机制,将所述区块写入区块链中。
可选地,所述判断模块包括:
节点验证模块,用于判断是否有设定数量的记账节点能够提供验证服务;
确定模块,用于当没有设定数量的记账节点能够提供验证服务时,确定达到所述容错上限。
可选地,所述节点验证模块包括:
广播接收模块,用于接收各个节点对所述区块的广播;
统计模块,用于统计接收到的广播数量是否达到所述设定数量。
可选地,所述设定数量为所述区块链网络中的总结点数量的2/3。
根据本发明提供的基于区块链的业务处理方法及装置,主节点在生成新的区块并需要写入区块链时,首先判断系统的状态是否能够满足当前共识机制的容错上限,在不能满足容错上限时不采用共识机制,切换为单矿机模式处理数据,由此避免在区块链网络达到容错上限时方式系统崩溃而无法处理用户的请求。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种基于区块链的业务处理方法的流程图;
图2是本发明实施例中的另一种基于区块链的业务处理方法的流程图;
图3是本发明实施例中的基于区块链的业务处理装置的模块图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明提供一种基于区块链的业务处理方法,区块链网络中包含多个节点,多个客户端可与该区块链进行业务交互。其中,所述的区块链网络的应用类型,可以是联盟链和/或私有链,能够向用户提供业务服务。所述的节点,包括但不限于:服务器、计算机、移动终端等具有计算处理功能的设备。所述的客户端,可包括浏览器、应用等,客户端可以运行在诸如终端、服务器、数据库中,这里不作具体限定。
图1是本发明的业务处理方法的流程图,参见图1,本发明提供的基于区块链的业务处理方法包括如下步骤:
S1A,区块链网络中的主节点获取用户端发送的业务数据并生成区块。具体地,区块链网络节点中的主节点接收用户端发送的交易请求数据,并在验证所述交易请求数据对应的交易有效的情况下,主节点按预设顺序将交易打包成新区块,其中,预设顺序表示交易的先后顺序。
每个区块链网络节点把客户端发来的交易请求向全网广播,主节点首先验证从区块链网络收集到需要放在新区块内的多个交易,验证通过后,将多个交易按预设顺序排序后打包成新区块。主节点可以是从区块链网络节点中随机选取的。
S2A,主节点向所有记账节点广播所述区块。广播使得参与共识的区块链网络节点对新区块进行共识,例如采用PBFT(Practical ByzantineFault Tolerance,实用拜占庭容错算法)共识机制,在PBFT共识的确认阶段向所有区块链网络节点发送参与记账的区块链网络节点是否对所述新区块签名确认的结果。
具体地,每个参与共识的区块链网络节点接收到新区块后,根据新区块中排序后的多个交易模拟执行这些交易,所有交易执行完后,基于交易结果计算新区块的哈希摘要,并向全网广播。假设区块链网络节点的数目为3f+1,参与记账的区块链网络节点收到的2f(f为可容忍的拜占庭节点数)个其它节点发来的摘要都和自己相等,就向全网广播一条签名确认消息。
S3A,主节点判断是否达到当前共识机制的容错上限。根据PBFT的特点可知,假设区块链网络的节点只有3个,如果主节点是作恶节点,它广播两个不同的信息,而另外两个节点是正常的,当这两个节点验证主节点广播的信息时会返回不同的结果,因此无法判断主节点是作恶行为或者其它节点存在作恶行为。
因此总节点只有3个时无法动态容错,所以容错上限的一个必要条件是区块链网络中能够提供服务的节点数量至少是4个。在本步骤中,当可用节点的数量小于4时,可以判定达到了容错上限。实际上此时系统处于崩溃状态,无法继续处理用户端的业务。
在此情况下,执行步骤S4,否则执行步骤S5A。
S4A,将区块写入区块链中,即自动切换为单矿机模式,也就是不采用共识机制模式,由主节点直接确认新的区块数据。
S5A,按照共识机制对区块数据进行处理。具体地,等待各个记账节点对该区块的签名验证结果,并根据这些结果决定是否将该区块写入区块链中。
根据本发明实施例提供的业务处理方法,主节点在生成新的区块并需要写入区块链时,首先判断系统的状态是否能够满足当前共识机制的容错上限,在不能满足容错上限时不采用共识机制,切换为单矿机模式处理数据,由此避免在区块链网络达到容错上限时方式系统崩溃而无法处理用户的请求。
本发明实施例提供了一种优选的基于PBFT共识机制的业务处理方法,如图2所示该方法包括如下步骤:
S1B,区块链网络中的主节点获取用户端发送的业务数据并生成区块。具体可参照所述步骤S1A,此处不再赘述。
S2B,主节点向所有记账节点广播所述区块。具体可参照所述步骤S2A,此处不再赘述。
S3B,主节点判断是否有总节点数量2/3的记账节点能够提供验证服务。此步骤与图1所示实施例不同,区块链网络中的节点数量通常较多,一般不会出现只有不到4个节点处于工作状态的情况,为了提高实用性,在本实施例中主节点将统计能够提供服务的节点的数量,当超过总数量2/3的节点能够提供服务时,执行步骤S6B;否则确定达到容错上限,执行步骤S5B。
S4B,将所述区块写入区块链中。
S5B,按照PBFT共识机制对区块数据进行处理。
进一步地,上述步骤S3B包括:
S3B1,接收各个节点对所述区块的广播;
S3B2,统计接收到的广播数量是否达到所述设定数量。
在本实施例中,此步骤仍基于PBFT确定容错上限。具体地,在主节点向其它节点广播区块后,其它各个节点应当记录并再次广播,如果有节点宕机则无法广播。因此主节点根据收到各个节点对此区块的广播数量即可统计出能够提供服务的节点数量,进而判断该数量是否达到设定数量。
根据本发明实施例提供的业务处理方法,主节点在生成新的区块并需要写入区块链时,首先基于PBFT共识机制判断当前网络中的可用节点数量是否能够支持此机制被正常执行,在不能满足此机制正常执行时切换为单矿机模式处理数据,由此避免在区块链网络达到容错上限时方式系统崩溃而无法处理用户的请求。
图3是本发明的业务处理装置的模块图,参见图3,本发明实施例提供一种基于区块链的业务处理装置,包括:
获取模块31,用于取用户端发送的业务数据并生成区块;
广播模块32,用于向所有记账节点广播所述区块;
判断模块33,用于所述主节点判断是否达到当前共识机制的容错上限;
执行模块34,用于当达到容错上限时终止执行共识机制,将所述区块写入区块链中。
可选地,所述判断模块33包括:
节点验证模块,用于所述主节点判断是否有设定数量的记账节点能够提供验证服务;
确定模块,用于当没有设定数量的记账节点能够提供验证服务时,确定达到所述容错上限。
进一步地,所述节点验证模块包括:
广播接收模块,用于接收各个节点对所述区块的广播;
统计模块,用于统计接收到的广播数量是否达到所述设定数量。
进一步地,所述设定数量为所述区块链网络中的总结点数量的2/3。
根据本发明实施例提供的区块链的业务处理装置,主节点在生成新的区块并需要写入区块链时,首先判断系统的状态是否能够满足当前共识机制的容错上限,在不能满足容错上限时不采用共识机制,切换为单矿机模式处理数据,由此避免在区块链网络达到容错上限时方式系统崩溃而无法处理用户的请求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (8)
1.一种基于区块链的业务处理方法,其特征在于,包括:
区块链网络中的主节点获取用户端发送的业务数据并生成区块;
所述主节点向所有记账节点广播所述区块;
所述主节点判断是否达到当前共识机制的容错上限;
当达到容错上限时终止执行共识机制,将所述区块写入区块链中。
2.根据权利要求1所述的方法,其特征在于,所述主节点判断是否达到当前共识机制的容错上限,包括:
所述主节点判断是否有设定数量的记账节点能够提供验证服务;
当没有设定数量的记账节点能够提供验证服务时,确定达到所述容错上限。
3.根据权利要求2所述的方法,其特征在于,所述主节点判断是否有设定数量的记账节点能够提供验证服务,包括:
接收各个节点对所述区块的广播;
统计接收到的广播数量是否达到所述设定数量。
4.根据权利要求2或3所述的方法,其特征在于,所述设定数量为所述区块链网络中的总结点数量的2/3。
5.一种基于区块链的业务处理装置,其特征在于,包括:
获取模块,用于取用户端发送的业务数据并生成区块;
广播模块,用于向所有记账节点广播所述区块;
判断模块,用于判断是否达到当前共识机制的容错上限;
执行模块,用于当达到容错上限时终止执行共识机制,将所述区块写入区块链中。
6.根据权利要求5所述的装置,其特征在于,所述判断模块包括:
节点验证模块,用于判断是否有设定数量的记账节点能够提供验证服务;
确定模块,用于当没有设定数量的记账节点能够提供验证服务时,确定达到所述容错上限。
7.根据权利要求6所述的装置,其特征在于,所述节点验证模块包括:
广播接收模块,用于接收各个节点对所述区块的广播;
统计模块,用于统计接收到的广播数量是否达到所述设定数量。
8.根据权利要求6或7所述的装置,其特征在于,所述设定数量为所述区块链网络中的总结点数量的2/3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910928165.8A CN110728515A (zh) | 2019-09-28 | 2019-09-28 | 基于区块链的业务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910928165.8A CN110728515A (zh) | 2019-09-28 | 2019-09-28 | 基于区块链的业务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110728515A true CN110728515A (zh) | 2020-01-24 |
Family
ID=69219577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910928165.8A Pending CN110728515A (zh) | 2019-09-28 | 2019-09-28 | 基于区块链的业务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110728515A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111652724A (zh) * | 2020-06-03 | 2020-09-11 | 中国银行股份有限公司 | 一种基于区块链的跨行交易方法及系统 |
CN113761062A (zh) * | 2021-08-26 | 2021-12-07 | 浙商银行股份有限公司 | 一种自适应共识算法切换方法、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107528882A (zh) * | 2017-07-14 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
CN108924130A (zh) * | 2018-07-02 | 2018-11-30 | 上海达家迎信息科技有限公司 | 一种区块数据的验证方法、装置、设备和存储介质 |
CN109257334A (zh) * | 2018-08-21 | 2019-01-22 | 广州杰赛科技股份有限公司 | 一种基于区块链的数据上链系统、方法及存储介质 |
CN109819003A (zh) * | 2017-11-22 | 2019-05-28 | 南京理工大学 | 一种区块链的分层共识方法和系统 |
CN109947845A (zh) * | 2018-11-23 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 一种区块链存证方法、装置和计算机设备 |
-
2019
- 2019-09-28 CN CN201910928165.8A patent/CN110728515A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
CN107528882A (zh) * | 2017-07-14 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
CN109819003A (zh) * | 2017-11-22 | 2019-05-28 | 南京理工大学 | 一种区块链的分层共识方法和系统 |
CN108924130A (zh) * | 2018-07-02 | 2018-11-30 | 上海达家迎信息科技有限公司 | 一种区块数据的验证方法、装置、设备和存储介质 |
CN109257334A (zh) * | 2018-08-21 | 2019-01-22 | 广州杰赛科技股份有限公司 | 一种基于区块链的数据上链系统、方法及存储介质 |
CN109947845A (zh) * | 2018-11-23 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 一种区块链存证方法、装置和计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111652724A (zh) * | 2020-06-03 | 2020-09-11 | 中国银行股份有限公司 | 一种基于区块链的跨行交易方法及系统 |
CN113761062A (zh) * | 2021-08-26 | 2021-12-07 | 浙商银行股份有限公司 | 一种自适应共识算法切换方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046896B (zh) | 一种区块处理方法和节点以及系统 | |
EP3934165B1 (en) | Consensus method of consortium blockchain, and consortium blockchain system | |
KR102469267B1 (ko) | 블록 체인 합의 방법, 어카운팅 노드 및 노드 | |
EP3394756B1 (en) | Method and system for byzantine fault - tolerance replicating of data | |
CN109345386A (zh) | 基于区块链的交易共识处理方法及装置、电子设备 | |
CN111274317A (zh) | 多节点数据同步的方法和装置,以及计算机设备 | |
CN111523899B (zh) | 联盟链的共识方法、数据校验方法、装置及系统 | |
CN111683118B (zh) | 基于区块链的共识方法、装置、主节点设备及从节点设备 | |
CN110728515A (zh) | 基于区块链的业务处理方法及装置 | |
CN110784521B (zh) | 区块链的共识方法、电子设备和存储介质 | |
CN111414426A (zh) | 一种基于区块链的数据处理方法及系统 | |
CN112036878B (zh) | 数据处理方法及装置 | |
CN110677453A (zh) | 基于ZooKeeper的分布式锁服务实现方法、装置、设备及存储介质 | |
CN111431931A (zh) | 节点共识方法及装置 | |
CN114090693B (zh) | 基于拜占庭容错的区块链见证共识方法、系统、设备及存储介质 | |
CN111224782B (zh) | 基于数字签名的数据校验方法、智能设备及存储介质 | |
CN112398949A (zh) | 交易确认方法、系统、装置和计算机设备 | |
CN114039733B (zh) | 一种针对联盟链的存证业务转移方法、装置及设备 | |
CN109921897B (zh) | 工作量证明计算的触发方法、装置、计算设备及存储介质 | |
CN114936253A (zh) | 区块链的共识方法及装置、电子设备、存储介质 | |
CN111538588A (zh) | 分布式数据处理方法及相关装置 | |
CN111131329A (zh) | 区块链系统的数据共识方法、装置及硬件设备 | |
CN110766552B (zh) | 基于区块链的业务处理方法及装置 | |
CN108882230B (zh) | 通话记录管理方法、装置及系统 | |
CN111432028A (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 |