CN111865721B - 节点通信异常后防止交易丢失的方法、系统及存储介质 - Google Patents
节点通信异常后防止交易丢失的方法、系统及存储介质 Download PDFInfo
- Publication number
- CN111865721B CN111865721B CN202010699610.0A CN202010699610A CN111865721B CN 111865721 B CN111865721 B CN 111865721B CN 202010699610 A CN202010699610 A CN 202010699610A CN 111865721 B CN111865721 B CN 111865721B
- Authority
- CN
- China
- Prior art keywords
- communication
- signal
- abnormal
- transaction
- test signal
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Abstract
本发明公开了一种节点通信异常时防止交易丢失的方法、系统及存储介质。所述节点通信异常时防止交易丢失的方法,包括如下步骤:监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况;当所述通信测试信号存在异常情况时,触发守护信号的生成;响应所述守护信号,执行通信通道调度机制,以实现将已处理的交易请求返回客户端。响应所述守护信号,执行缓冲数据处理机制,以实现将所述缓冲数据的持久化。本发明的技术方案解决相关技术中,节点通信异常导致交易请求中断以及缓冲数据容易丢失的技术问题。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种节点通信异常后防止交易丢失的方法、系统以及计算机可读存储介质。
背景技术
区块链节点jsonrpc接口,无论其是基于上层HTTP协议;还是基于底层TCP协议建立的通信通道。当交易请求后,节点都会处于Pending状态,直到节点服务处理完成,并返回结果之后,结束本次会话。
如果,当客户端处于等待,节点服务执行完毕即将返回的状态时,节点服务因异常或者升级导致服务中断,这样就破坏了服务端与客户端的正常通信通道,未得到响应的请求会一直等待直到超时,致使完成的交易请求不能准确返回客户端。
最常见的表现方式就是,在交易上链请求的操作时,钱包交易签名后对节点发起请求,并等待节点服务响应,这边节点服务进行验签执行合约结束后,当准备给钱包(客户端)响应数据时,节点服务中断,服务这边状态是已处理的,而客户端那边将会是timeoutawaiting response headers。
这样就会破坏服务之间的通信完整性,致使数据结果不能达成一致,而且它们会存在一个不可避免的问题就是:不能保证交易请求响应的实时性,既影响链上服务效率,又降低了用户的体验效果;
区块链节点数据缓存也面临着相同的问题,节点服务发生中断后缓存在内存中的数据就会面临丢失的风险。
因此,有必要提供一种新的节点通信异常后防止交易丢失的方法、系统以及计算机可读存储介质,以解决上述技术问题。
发明内容
本发明的主要目的在于提供一种节点通信异常后防止交易丢失的方法,旨在解决相关技术中,节点通信异常导致交易请求中断的技术问题。
为实现上述目的,本发明提供一种节点通信异常时防止交易丢失的方法,包括如下步骤:
监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况;
当所述通信测试信号存在异常情况时,触发守护信号的生成;
响应所述守护信号,执行通信通道调度机制,以实现将已处理的交易请求返回客户端。
优选地,还包括如下步骤:
响应所述守护信号,执行缓冲数据处理机制,以实现将所述缓冲数据的持久化。
优选地,所述监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况的步骤之前,还包括如下步骤:
执行信号过滤操作,以实现在所述监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况步骤之前,排除可能存在的所述守护信号。
优选地,所述监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况的步骤之前,还包括如下步骤:
注册生成通信测试信号,并持续传输所述通信测试信号。
优选地,所述响应所述守护信号,执行通信通道调度机制的步骤,具体包括如下步骤:
响应所述守护信号,停止接收新的交易请求;
将所述已处理的交易请求返回至所述客户端;
当所述已处理的交易请求全部返回所述客户端时,关闭通信通道,并结束进程。
优选地,所述响应所述守护信号,执行缓冲数据处理机制的步骤,具有包括如下步骤:
响应所述守护信号,将与所述已处理的交易请求相关的缓冲数据存入去中心化数据库。
优选地,所述响应所述守护信号,执行缓冲数据处理机制的步骤之后,还包括如下步骤:
响应恢复触发操作,自所述中心化数据库提取所述缓冲数据,并对所述缓冲数据进行恢复处理。
优选地,所述通信测试信号为非阻塞式信号,所述守护信号为POSIX信号。
为解决上述技术问题,本发明还提供一种节点通信异常时防止交易丢失的系统,包括:存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现所述的节点通信异常时防止交易丢失的方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的节点通信异常时防止交易丢失的方法的步骤。
本发明提供的节点通信异常时防止交易丢失的方法,包括如下步骤:监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况;当所述通信测试信号存在异常情况时,触发守护信号的生成;响应所述守护信号,执行通信通道调度机制,以实现将已处理的交易请求返回客户端。
通过对通信测试信号进行监听,当节点异常事件发生时,及时获知,并开启协程守护。对网关流量进行截流守护;响应通道暂停关闭,能够将已处理的客户端交易状态实时返回保障交易不会丢失,并保证客户端与节点通信中请求一致性。
进一步的,响应所述守护信号,执行缓冲数据处理机制,以实现将所述缓冲数据的持久化。能够对缓存的数据进行持久化,保障数据不丢失,既保证区块链交易的一致性,又保证了数据完整性。
附图说明
图1为本发明提供的节点通信异常时防止交易丢失的方法的第一实施例的工作流程图;
图2为本发明提供的节点通信异常时防止交易丢失的方法的第二实施例的工作流程图;
图3为本发明提供的节点通信异常时防止交易丢失的方法的第三实施例的工作流程图;
图4为图3所示的步骤S30的工作流程图;
图5为本发明提供的节点通信异常时防止交易丢失的方法的第四实施例的工作流程图;
图6为本发明提供的节点通信异常时防止交易丢失的系统的架构图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
第一实施例
请参阅图1,为实现上述目的,本发明的第一实施例中,节点通信异常时防止交易丢失的方100包括如下步骤:
S10,监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况;
本实施例中,区块链系统中各个区块链节点形成一个交易服务系统。在区块链节点启动http或者tcp协议的网络监听服务时,开启监听通信测试信号。
所述通信测试信号可以是各个节点中本身存在的某一种信号,也可以是为保证监听效果,而单独注册设置的信号;例如,通信测试信号为非阻塞式信号。
S20,当所述通信测试信号存在异常情况时,触发守护信号的生成;
本实施例中,所述守护信号可以是POSIX信号,POSIX信号采用POSIX.1-1990标准。
S30,响应所述守护信号,执行通信通道调度机制,以实现将已处理的交易请求返回客户端。
在一实施例中,当通信测试信号为非阻塞式信号时:
当区块链节点服务正常运行时,监听协程一直处于阻塞式等待状态(正常状态);
当区块链节点服务发生中断时,节点自动生成POSIX信号,此时处于监听等待的守护协程启动,触发已准备的通信通道调度机制。将服务主程通信通道关闭停止接收新的交易请求,并等待已处理的交易请求返回客户端,设置固定时间守护协程关闭,主程退出;优雅完成区块链节点升级中导致的交易处理数据异常问题。
通过对通信测试信号进行监听,当节点异常事件发生时,及时获知,并开启协程守护。对网关流量进行截流守护;响应通道暂停关闭,能够将已处理的客户端交易状态实时返回保障交易不会丢失,并保证客户端与节点通信中请求一致性。
第二实施例
请参阅图2,基于本发明的第一实施例提供的节点通信异常后防止交易丢失的方法100,本发明的第一实施例提出另一种节点通信异常后防止交易丢失的方法200,其步骤S10~S30与第一实施例相同,其不同之处在于,还包括如下步骤:
S40,响应所述守护信号,执行缓冲数据处理机制,以实现将所述缓冲数据的持久化。
具体的,响应所述守护信号,将与所述已处理的交易请求相关的缓冲数据存入去中心化数据库。
所述缓存数据可以是交易池数据、状态数、连接池等数据。
等待持久化处理完成;守护协程关闭,主程退出,优雅完成区块链节点升级或者其他因素导致的服务中断后的缓存数据持久化处理问题,下次服务重启从持久化中恢复即可。
响应所述守护信号,执行缓冲数据处理机制,以实现将所述缓冲数据的持久化。能够对缓存的数据进行持久化,保障数据不丢失,既保证区块链交易的一致性,又保证了数据完整性。
第三实施例
请参阅图3,基于本发明的第二实施例提供的节点通信异常后防止交易丢失的方法200,本发明的第三实施例提出另一种节点通信异常后防止交易丢失的方法300,其步骤S10~S40与第二实施例相同,其不同之处在于,所述步骤S10之前,还包括如下步骤:
S11,执行信号过滤操作,以实现在所述监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况步骤之前,排除可能存在的所述守护信号。
避免在监听开始之前,节点中可能存在的所述守护信号,引发调度机制的误判式触发。
S12,注册生成通信测试信号,并持续传输所述通信测试信号。
首先要在区块链节点服务启动开始,对系统POSIX信号进行过滤,POSIX信号采用POSIX.1-1990标准。
并且对过滤后要监听的信号队列塞入非阻塞式信号进行信号注册,需要注意的是有些信号名对应着多个信号值,这是因为这些信号值与平台相关,标准中会有说明,注册非阻塞式信号是为了不会影响区块链节点服务继续运行。
请参阅图4,具体的,所述步骤S30,具体包括如下步骤:
S301,响应所述守护信号,停止接收新的交易请求;
S302,将所述已处理的交易请求返回至所述客户端;
S303,当所述已处理的交易请求全部返回所述客户端时,关闭通信通道,并结束进程。
本实施例中,所述新的交易请求是指,当监测所述通信测试信号存在异常情况之后,客服端发送给节点的交易请求。
已处理的交易请求是指,当监测所述通信测试信号存在异常情况之前,客服端发送给节点的交易请求。
第四实施例
请参阅5,基于本发明的第三实施例提供的节点通信异常后防止交易丢失的方法300,本发明的第四实施例提出另一种节点通信异常后防止交易丢失的方法400,其步骤S11~S40与第三实施例相同,其不同之处在于,所述步骤S40之后,还包括如下步骤:
S50,响应恢复触发操作,自所述中心化数据库提取所述缓冲数据,并对所述缓冲数据进行恢复处理。
当节点与客户端的通信异常结束后,客户端或者节点可以通过恢复触发操作,自所述中心化数据库提取所述缓冲数据,并对所述缓冲数据进行恢复处理,从而保证缓冲数据的安全存储。
本发明还提供一种节点通信异常时防止交易丢失的系统。
请参阅图6,节点通信异常时防止交易丢失的系统,包括:存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现所述的节点通信异常时防止交易丢失的方法的步骤。
该节点通信异常时防止交易丢失的方法的具体步骤参照上述实施例,由于本节点通信异常时防止交易丢失的系统采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
本发明还提供一种计算机可读存储介质。
所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的节点通信异常时防止交易丢失的方法的步骤。
该节点通信异常时防止交易丢失的方法的具体步骤参照上述实施例,由于本计算机可读存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备进入本发明各个实施例所述的方法。
在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第X实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种节点通信异常时防止交易丢失的方法,其特征在于,包括如下步骤:
监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况;
当所述通信测试信号存在异常情况时,触发守护信号的生成;
响应所述守护信号,执行通信通道调度机制,以实现将已处理的交易请求返回客户端;
其中,所述响应所述守护信号,执行通信通道调度机制的步骤,具体包括如下步骤:
响应所述守护信号,停止接收新的交易请求;
将所述已处理的交易请求返回至所述客户端;
当所述已处理的交易请求全部返回所述客户端时,关闭通信通道,并结束进程。
2.如权利要求1所述的节点通信异常时防止交易丢失的方法,其特征在于,还包括如下步骤:
响应所述守护信号,执行缓冲数据处理机制,以实现将所述缓冲数据的持久化。
3.如权利要求1所述的节点通信异常时防止交易丢失的方法,其特征在于,所述监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况的步骤之前,还包括如下步骤:
执行信号过滤操作,以实现在所述监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况步骤之前,排除可能存在的所述守护信号。
4.如权利要求1所述的节点通信异常时防止交易丢失的方法,其特征在于,所述监听通信测试信号,并实时判断所述通信测试信号是否存在异常情况的步骤之前,还包括如下步骤:
注册生成通信测试信号,并持续传输所述通信测试信号。
5.如权利要求2所述的节点通信异常时防止交易丢失的方法,其特征在于,所述响应所述守护信号,执行缓冲数据处理机制的步骤,具有包括如下步骤:
响应所述守护信号,将与所述已处理的交易请求相关的缓冲数据存入去中心化数据库。
6.如权利要求5所述的节点通信异常时防止交易丢失的方法,其特征在于,所述响应所述守护信号,执行缓冲数据处理机制的步骤之后,还包括如下步骤:
响应恢复触发操作,自所述中心化数据库提取所述缓冲数据,并对所述缓冲数据进行恢复处理。
7.如权利要求1-6中任一项所述的节点通信异常时防止交易丢失的方法,其特征在于,所述通信测试信号为非阻塞式信号,所述守护信号为POSIX信号。
8.一种节点通信异常时防止交易丢失的系统,其特征在于,包括:存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的节点通信异常时防止交易丢失的方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的节点通信异常时防止交易丢失的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010699610.0A CN111865721B (zh) | 2020-07-20 | 2020-07-20 | 节点通信异常后防止交易丢失的方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010699610.0A CN111865721B (zh) | 2020-07-20 | 2020-07-20 | 节点通信异常后防止交易丢失的方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111865721A CN111865721A (zh) | 2020-10-30 |
CN111865721B true CN111865721B (zh) | 2021-11-02 |
Family
ID=73001189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010699610.0A Expired - Fee Related CN111865721B (zh) | 2020-07-20 | 2020-07-20 | 节点通信异常后防止交易丢失的方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111865721B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157522B (zh) * | 2021-04-21 | 2022-11-04 | 杭州云象网络技术有限公司 | 基于联盟链的事件防丢失方法、系统、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1344348A2 (en) * | 2000-12-06 | 2003-09-17 | Intelliden, Inc. | Dynamic configuration of network devices to enable data transfers |
CN107481011A (zh) * | 2017-08-11 | 2017-12-15 | 杭州秘猿科技有限公司 | 一种基于许可链的交易快速确认方法 |
CN110910141A (zh) * | 2019-10-12 | 2020-03-24 | 深圳壹账通智能科技有限公司 | 交易处理方法、系统、装置、设备及计算机可读存储介质 |
CN111178884A (zh) * | 2019-12-16 | 2020-05-19 | 平安壹钱包电子商务有限公司 | 信息处理方法、装置、设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434096B2 (en) * | 2006-08-11 | 2008-10-07 | Chicago Mercantile Exchange | Match server for a financial exchange having fault tolerant operation |
CN109586985A (zh) * | 2019-01-11 | 2019-04-05 | 青岛华制智能互联科技有限公司 | 一种基于区块链的弹性云系统支撑平台解决方案 |
CN110413679B (zh) * | 2019-07-31 | 2023-01-24 | 深圳前海微众银行股份有限公司 | 数据库信息处理方法、装置、设备及可读存储介质 |
-
2020
- 2020-07-20 CN CN202010699610.0A patent/CN111865721B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1344348A2 (en) * | 2000-12-06 | 2003-09-17 | Intelliden, Inc. | Dynamic configuration of network devices to enable data transfers |
CN107481011A (zh) * | 2017-08-11 | 2017-12-15 | 杭州秘猿科技有限公司 | 一种基于许可链的交易快速确认方法 |
CN110910141A (zh) * | 2019-10-12 | 2020-03-24 | 深圳壹账通智能科技有限公司 | 交易处理方法、系统、装置、设备及计算机可读存储介质 |
CN111178884A (zh) * | 2019-12-16 | 2020-05-19 | 平安壹钱包电子商务有限公司 | 信息处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111865721A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8935395B2 (en) | Correlation of distributed business transactions | |
CN109743358B (zh) | 异步消息接口熔断控制方法、装置、计算机设备及存储介质 | |
CN106533805B (zh) | 一种微服务请求处理方法、微服务控制器及微服务架构 | |
US10505881B2 (en) | Generating message envelopes for heterogeneous events | |
JP2005136526A (ja) | 不正アクセス検知装置、不正アクセス検知方法および不正アクセス検知プログラム | |
US6836881B2 (en) | Remote tracing of data processing nodes in an asynchronous messaging network | |
CN111865721B (zh) | 节点通信异常后防止交易丢失的方法、系统及存储介质 | |
WO2022267407A1 (zh) | 一种基于自动化运维工具的代理部署方法及装置 | |
CN111314381A (zh) | 安全隔离网关 | |
CN108134713A (zh) | 一种通信方法及装置 | |
US20060101475A1 (en) | System and method for parallel asynchronous execution of commands | |
JP5581162B2 (ja) | 情報処理装置、パスワード診断方法およびプログラム | |
CN101635722A (zh) | Tr-069保存点 | |
CN116384993B (zh) | 基于云支付中心实现订单支付状态高一致性的方法与系统 | |
JP4256107B2 (ja) | データサーバへの不正侵入対処方法、及びプログラム | |
CN111461643A (zh) | 资方路由方法及系统 | |
WO2009053356A1 (fr) | Procede de gestion d'operations d'administration, de maintenance et de maintien en condition operationnelle, entite de gestion, et produit programme d'ordinateur correspondant | |
CN108521342B (zh) | 一种集群的管理方法及装置 | |
CN113676489B (zh) | 一种威胁文件处置方法、装置及介质 | |
US8468121B1 (en) | Resolving resource time intervals in a distributed system | |
JP3627619B2 (ja) | 二相コミット回避方式およびそのプログラム記録媒体 | |
CN114726603B (zh) | 一种邮件检测方法及装置 | |
CN112866359B (zh) | 数据上链方法、装置、电子设备及存储介质 | |
CN117555717B (zh) | 一种应用异常处理方法、终端及计算机存储介质 | |
CN114461293B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211102 |