交易数据一致性处理方法、电子装置及存储介质
技术领域
本发明涉及区块链技术领域,尤其涉及一种交易数据一致性处理方法、电子装置及计算机可读存储介质。
背景技术
随着区块链系统的发展,应用范围越来越广泛,有可能涉及到区块链系统和传统软件系统之间进行数字资产交易和电子支付交易。例如业务方A和业务方B在区块链系统和传统软件系统之间进行数字资产交易和电子支付交易,目的是区块链系统上的数字资产交易和传统软件系统下的电子支付交易都成功。业务方A在区块链上将数字资产D交易转移给业务方B,当业务方B接收到数字资产D在区块链上交易成功的通知,业务方B才会在传统软件系统下发起电子支付给业务方A转移约定的金额,直到业务双方区块链系统上的数字资产交易和传统软件系统下的电子支付交易都成功,业务流程才完整。在这种应用场景下,要求区块链系统上的数字资产交易和传统软件系统下的电子支付交易都成功,存在实现事务一致性的问题。
目前现有的解决事务一致性的传统方法如下:
1.利用关系数据库的强一致性解决事务的一致性;
2.业务上发起交易回滚;
3.两阶段提交协议或者三阶段提交协议。
针对区块链系统上的交易,上述方法均无法支持,原因如下:
1.区块链应用是独立系统,无法通过本地事务实现;
2.区块链使用非关系数据库,非关系数据库无法支持两阶段协议;
3.区块链不可篡改的特性决定不支持交易回滚。
发明内容
有鉴于此,本发明提出一种交易数据一致性处理方法、电子装置及计算机可读存储介质,以解决区块链系统与传统软件系统之间交易数据一致性问题。
首先,为实现上述目的,本发明提出一种交易数据一致性处理方法,该方法包括步骤:
交易系统将数字资产交易预发起事件登记至外部事件系统的事件库中;
当预发起事件登记成功以后,所述交易系统向区块链系统的任意一个节点发起数字资产交易请求;
所述区块链系统处理所述数字资产交易,并将处理结果通知所述外部事件系统;
所述外部事件系统将待账户系统处理的交易发起通知给消息系统;
所述消息系统通知所述账户系统进行电子支付;及
所述账户系统电子支付成功以后,将交易结果通知所述外部事件系统。
可选地,该方法还包括步骤:
所述外部事件系统周期性扫描所述事件库,筛选出预设类型的交易;
所述外部事件系统在所述区块链系统中查询筛选出的交易;
所述外部事件系统根据查询结果和预设规则修正所述筛选出的交易的异常。
可选地,所述事件库中记录交易的事件状态,包括登记状态、待账户系统处理、取消、完成。
可选地,所述预设类型的交易包括第一预设类型交易和第二预设类型交易,所述第一预设类型交易是所述事件状态为登记状态,且所述区块链系统未置完成的交易;所述第二预设类型交易是所述账户系统未置完成的交易。
可选地,所述在区块链系统中查询筛选出的交易的步骤包括:
针对所述第一预设类型交易,所述外部事件系统查询所述区块链系统中预设比例的区块链节点上是否都存在该交易,以及区块链交易是否完成。
可选地,所述根据查询结果和预设规则修正所述筛选出的交易的异常的步骤包括:
若所述预设比例的区块链节点上都存在该交易,且区块链交易未完成,则将该交易的事件状态设置为取消;
若所述预设比例的区块链节点上都存在该交易,且区块链交易成功,则将该交易的事件状态设置为待账户系统处理,并发起通知给所述消息系统。
可选地,所述根据查询结果和预设规则修正所述筛选出的交易的异常的步骤还包括:
针对所述第二预设类型交易,所述外部事件系统多次发起通知给所述消息系统,从而多次通知所述账户系统进行电子支付,触发所述账户系统再次处理。
此外,为实现上述目的,本发明还提供一种电子装置,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的交易数据一致性处理程序,所述交易数据一致性处理程序被所述处理器执行时实现如下步骤:
交易系统将数字资产交易预发起事件登记至外部事件系统的事件库中;
当预发起事件登记成功以后,所述交易系统向区块链系统的任意一个节点发起数字资产交易请求;
所述区块链系统处理所述数字资产交易,并将处理结果通知所述外部事件系统;
所述外部事件系统将待账户系统处理的交易发起通知给消息系统;
所述消息系统通知所述账户系统进行电子支付;及
所述账户系统电子支付成功以后,将交易结果通知所述外部事件系统。
可选地,所述交易数据一致性处理程序被所述处理器执行时还实现步骤:
所述外部事件系统周期性扫描所述事件库,筛选出预设类型的交易;
所述外部事件系统在所述区块链系统中查询筛选出的交易;
所述外部事件系统根据查询结果和预设规则修正所述筛选出的交易的异常。
可选地,所述事件库中记录交易的事件状态,包括登记状态、待账户系统处理、取消、完成。
可选地,所述预设类型的交易包括第一预设类型交易和第二预设类型交易,所述第一预设类型交易是所述事件状态为登记状态,且所述区块链系统未置完成的交易;所述第二预设类型交易是所述账户系统未置完成的交易。
可选地,所述在区块链系统中查询筛选出的交易的步骤包括:
针对所述第一预设类型交易,所述外部事件系统查询所述区块链系统中预设比例的区块链节点上是否都存在该交易,以及区块链交易是否完成。
可选地,所述根据查询结果和预设规则修正所述筛选出的交易的异常的步骤包括:
若所述预设比例的区块链节点上都存在该交易,且区块链交易未完成,则将该交易的事件状态设置为取消;
若所述预设比例的区块链节点上都存在该交易,且区块链交易成功,则将该交易的事件状态设置为待账户系统处理,并发起通知给所述消息系统。
可选地,所述根据查询结果和预设规则修正所述筛选出的交易的异常的步骤还包括:
针对所述第二预设类型交易,所述外部事件系统多次发起通知给所述消息系统,从而多次通知所述账户系统进行电子支付,触发所述账户系统再次处理。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有交易数据一致性处理程序,所述交易数据一致性处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的交易数据一致性处理方法的步骤。
相较于现有技术,本发明所提出的交易数据一致性处理方法、电子装置及计算机可读存储介质,在传统区块链不可篡改、交易不可回滚的情况下,不仅可以解决区块链系统和传统软件系统之间事务交易一致性的问题,而且可以解决区块链系统和传统软件系统之间数据一致性的问题。并且,该方案可以提供一种数字资产交易和电子支付交易实时结算的方式,使得区块链系统可以适用于更加广泛的应用场景。
附图说明
图1是本发明各实施例可选的的应用环境示意图;
图2是本发明第一实施例提出的一种电子装置的架构示意图;
图3是本发明第二实施例提出的一种交易数据一致性处理方法的流程示意图;
图4是本发明第三实施例提出的一种交易数据一致性处理方法的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是本发明各个实施例一可选的应用环境示意图。
在本实施例中,本发明可应用于包括,但不仅限于,区块链系统、外部事件系统、交易系统、消息系统、账务系统的应用环境中。
其中,区块链系统用于进行数字资产交易和存储数字资产,包括多个区块链节点。外部事件系统用于实现区块链系统与账户系统的事务一致性和存储各种交易事件,包括对账处理服务模块、事件消息模块和事件库。消息系统用于通知账户系统可以发起电子支付交易请求和存储通知。账户系统用于进行电子支付交易。交易系统用于发起数字资产交易。
第一实施例
参阅图2所示,本发明第一实施例提出一种实现交易数据一致性处理方法的电子装置1。
在本实施例中,电子装置1可以是服务器、智能手机、平板电脑、个人电脑、便携计算机以及其它具有运算功能的电子设备。
所述电子装置1包括:存储器11、处理器13、网络接口15及通信总线17。其中,网络接口15可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。通信总线17用于实现这些组件之间的连接通信。
存储器11至少包括一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述存储器11可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘。在另一些实施例中,所述存储器11也可以是所述电子装置1的外部存储单元,例如所述电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,所述存储器11可以用于存储安装于所述电子装置1的应用软件及各类数据,例如交易数据一致性处理程序10的程序代码及其运行过程中产生的相关数据。
处理器13在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其它数据处理芯片,用于运行存储器11中存储的程序代码或处理数据。
图2仅示出了具有组件11-17以及交易数据一致性处理程序10的电子装置1,但是应理解的是,图2并未示出电子装置1的所有组件,可以替代实施更多或者更少的组件。
在图2所示的电子装置1实施例中,作为一种计算机存储介质的存储器11中存储交易数据一致性处理程序10的程序代码,处理器13执行所述交易数据一致性处理程序10的程序代码时,实现如下步骤:
(1)交易系统将数字资产交易预发起事件登记至外部事件系统的事件库中。
(2)当预发起事件登记成功以后,交易系统向区块链系统的任意一个节点发起数字资产交易请求。
(3)区块链系统处理所述数字资产交易,并将处理结果通知所述外部事件系统。
(4)外部事件系统将待账户系统处理的交易发起通知给消息系统。
(5)消息系统通知账户系统进行电子支付。
(6)账户系统电子支付成功以后,将交易结果通知所述外部事件系统。
(7)外部事件系统周期性扫描事件库,筛选出预设类型的交易。
(8)外部事件系统在区块链系统中查询筛选出的交易。
(9)外部事件系统根据查询结果和预设规则修正所述筛选出的交易的异常。
上述步骤的详细说明请参阅下述第二实施例和第三实施例,在此不再赘述。
第二实施例
参阅图3所示,本发明第二实施例提出一种交易数据一致性处理方法。在本实施例中,根据不同的需求,图3所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。此外,有关区块链系统的常规处理步骤,可以根据实际应用场景纳入本发明。该方法包括以下步骤:
步骤S10,交易系统将数字资产交易预发起事件登记至外部事件系统的事件库中。
具体地,交易系统首先登记数字资产交易预发起事件,设置事件状态为“登记状态”,登记到所述外部事件系统的事件库中。
步骤S20,当预发起事件登记成功以后,交易系统向区块链系统的任意一个节点发起数字资产交易请求。
步骤S30,区块链系统处理所述数字资产交易,并将处理结果通知所述外部事件系统。
具体地,区块链系统针对所述数字资产交易进行校验并达成共识,区块链系统的每个节点在新的区块存储该交易并追加区块到链尾,将包含最新交易的的区块通知给外部事件系统的事件消息模块进行相应的处理,并将交易的事件状态设置为“待账户系统处理”。
步骤S40,外部事件系统将待账户系统处理的交易发起通知给消息系统。
步骤S50,消息系统通知账户系统进行电子支付。
步骤S60,账户系统电子支付成功以后,将交易结果通知所述外部事件系统。
具体地,账户系统电子支付成功以后,通知外部事件系统在事件库中设置交易的事件状态为“完成”。
第三实施例
参阅图4所示,本发明第三实施例提出一种交易数据一致性处理方法。所述第二实施例中都是正常状态下的交易流程,其中可能发生以下异常情形:
1.区块链交易失败;
2.区块链交易成功,但没有通知外部事件系统;
3.账户系统交易失败;
4.账户系统交易成功,但没有通知外部事件系统。
在本实施例中,所述交易数据一致性处理方法在第二实施例的基础上,还包括以下步骤:
步骤S70,外部事件系统周期性扫描事件库,筛选出预设类型的交易。
具体地,外部事件系统的对账处理服务模块周期性扫描事件库,筛选出预设的两种类型的交易,包括第一预设类型交易和第二预设类型交易。所述第一预设类型交易是事件状态为“登记状态”,区块链系统未置完成的交易;所述第二预设类型交易是账户系统未置完成的交易。
步骤S80,在区块链系统中查询筛选出的交易。
具体地,针对所述第一预设类型交易,对账处理服务模块查询区块链系统预设比例的区块链节点上是否都存在该交易,以及区块链交易是否完成。
步骤S90,根据查询结果和预设规则修正所述筛选出的交易的异常。
具体地,若所述预设比例的区块链节点上都存在该交易,且区块链交易未完成,则对账处理服务模块将事件状态置“取消”,解决异常情形1。若所述预设比例的区块链节点上都存在该交易,且区块链交易成功,则对账处理服务模块将事件状态置“待账户系统处理”,并发起通知给消息系统,解决异常情形2。针对所述第二预设类型交易,对账处理服务模块多次发起通知给消息系统,从而多次通知账户系统进行电子支付,触发账户系统再次处理,解决异常情形3和4。
所述第二实施例和第三实施例提供的交易数据一致性处理方法,在传统区块链不可篡改、交易不可回滚的情况下,不仅可以解决区块链系统和传统软件系统之间事务交易一致性的问题,而且可以解决区块链系统和传统软件系统之间数据一致性的问题。并且,该方案可以提供一种数字资产交易和电子支付交易实时结算的方式,使得区块链系统可以适用于更加广泛的应用场景。
实施例四
本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有交易数据一致性处理程序10,所述交易数据一致性处理程序10可被至少一个处理器执行,以使所述至少一个处理器执行如上述的交易数据一致性处理方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台客户端(可以是手机,计算机,电子装置,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。