CN112669157A - 基于区块链的交易方法、装置、系统与可读存储介质 - Google Patents
基于区块链的交易方法、装置、系统与可读存储介质 Download PDFInfo
- Publication number
- CN112669157A CN112669157A CN202011645345.4A CN202011645345A CN112669157A CN 112669157 A CN112669157 A CN 112669157A CN 202011645345 A CN202011645345 A CN 202011645345A CN 112669157 A CN112669157 A CN 112669157A
- Authority
- CN
- China
- Prior art keywords
- transaction
- blockchain
- block chain
- processing
- event
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 168
- 230000001960 triggered effect Effects 0.000 claims abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000000474 nursing effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于区块链的交易方法,包括:若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。本发明还公开了一种基于区块链的交易装置、系统和计算机可读存储介质。本发明基于区块链的统一账本技术实现系统与系统之间的准实时对账清算,同时基于区块链的不可篡改特性保障交易的安全性,有效缩短交易周期。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种基于区块链的交易方法、装置、系统与计算机可读存储介质。
背景技术
近年来,随着金融科技(Fintech),尤其是互联网金融的不断发展,越来越多的技术(如分布式、区块链Blockchain、人工智能等)应用在金融领域,但金融业也对其提出了更高的要求,如金融业对基于区块链的交易有更高的要求。
传统的交易模式需要用户手持现金交易,交易不方便且不安全,因此催生了预付费卡,预付费卡指由发行机构发行的,可在商业服务业领域使用的债权凭证,具体表现为购物券或消费卡等,体现了持卡(券)人作为消费者对发行机构享有的债权,而随着互联网金融的不断发展,实体预付费卡逐步被电子预付费卡取代,那么如何使用电子预付费卡进行交易是当前银行等金融机构需要解决的技术问题。
在现有技术中,银行等金融机构为方便管理且实现电子预付费卡的交易,搭建了预付费卡系统,该系统包含了预付费卡业务中的制卡、发卡、消费、清算、结算等整个生命周期的管理,使得售卡、核销、对账等操作较以往更为便捷。
然而,现有预付费卡系统因交易数据较多,在对账时,为了不影响正常业务,需要日终才能对账,商户回款慢,导致交易周期长,且现有对账方式需要传递对账文件,容易被挟持、篡改,交易过程也没有保护,同样存在被挟持、篡改的风险。
发明内容
本发明的主要目的在于提出一种基于区块链的交易方法、装置、系统与计算机可读存储介质,旨在实现准实时的安全交易,缩短交易周期。
为实现上述目的,本发明提供一种基于区块链的交易方法,所述基于区块链的交易方法包括如下步骤:
若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;
确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;
基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。
优选地,所述若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果的步骤之前,所述基于区块链的交易方法还包括:
确定所述目标区块链对应的节点信息,并基于所述节点信息和所述第一系统,生成合约地址;
基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链。
优选地,所述基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链的步骤包括:
获取预封装资源包,并将所述预封装资源包嵌入所述第一系统中,所述预封装资源包包含上链API,用于建立与所述目标区块链的连接;
基于所述节点信息,修改所述预封装资源包中配置文件的IP和端口,并将所述配置文件中的默认地址修改为所述合约地址,以完成所述第一系统接入所述目标区块链。
优选地,所述确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
获取所述第一系统的ID信息,以及所述交易请求的交易类型,并基于所述ID信息和所述交易类型,确定所述第一系统的数据主题;
确定所述第一系统的公钥,并基于所述公钥,对所述处理结果进行加密;
将加密后的所述处理结果与所述数据主题绑定,以生成交易事件,并基于所述第二系统,将所述交易事件发布到所述目标区块链。
优选地,所述目标区块链包括多条业务链,所述基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
基于所述数据主题,在所述业务链中确定第一系统对应的目标业务链;
基于所述第二系统,将所述处理结果对应的交易事件发布到目标业务链。
优选地,所述基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
基于所述第二系统和所述数据主题,将所述处理结果对应的交易事件缓存到上链数据表中,并标记所述交易事件的处理状态为处理中;
基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
优选地,所述基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链的步骤包括:
标记所述交易事件的上链次数;
基于所述上链次数和所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
优选地,所述基于区块链的交易方法还包括:
在预设时间检查所述上链数据表中所有交易事件的处理状态;
若所述上链数据表中还存在处理状态为处理中的交易事件,则生成告警信息。
优选地,所述基于所述第二系统处理所述交易请求,得到处理结果的步骤包括:
确定所述交易请求的交易类型,并基于所述交易类型,确定所述第二系统的处理流程;
获取所述交易请求的交易参数,并基于所述处理流程和所述交易参数,对所述交易请求进行处理,以得到处理结果。
此外,为实现上述目的,本发明还提供一种基于区块链的交易装置,所述基于区块链的交易装置包括:
接收处理模块,用于若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;
确定发布模块,用于确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;
获取对账模块,用于基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。
优选地,所述基于区块链的交易装置还包括接入模块,用于:
确定所述目标区块链对应的节点信息,并基于所述节点信息和所述第一系统,生成合约地址;
基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链。
优选地,所述接入模块还用于:
获取预封装资源包,并将所述预封装资源包嵌入所述第一系统中,所述预封装资源包包含上链API,用于建立与所述目标区块链的连接;
基于所述节点信息,修改所述预封装资源包中配置文件的IP和端口,并将所述配置文件中的默认地址修改为所述合约地址,以完成所述第一系统接入所述目标区块链。
优选地,所述确定发布模块还用于:
获取所述第一系统的ID信息,以及所述交易请求的交易类型,并基于所述ID信息和所述交易类型,确定所述第一系统的数据主题;
确定所述第一系统的公钥,并基于所述公钥,对所述处理结果进行加密;
将加密后的所述处理结果与所述数据主题绑定,以生成交易事件,并基于所述第二系统,将所述交易事件发布到所述目标区块链。
优选地,所述确定发布模块还用于:
基于所述数据主题,在所述业务链中确定第一系统对应的目标业务链;
基于所述第二系统,将所述处理结果对应的交易事件发布到目标业务链。
优选地,所述确定发布模块还用于:
基于所述第二系统和所述数据主题,将所述处理结果对应的交易事件缓存到上链数据表中,并标记所述交易事件的处理状态为处理中;
基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
优选地,所述确定发布模块还用于:
标记所述交易事件的上链次数;
基于所述上链次数和所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
优选地,所述基于区块链的交易装置还包括接入模块,用于:
在预设时间检查所述上链数据表中所有交易事件的处理状态;
若所述上链数据表中还存在处理状态为处理中的交易事件,则生成告警信息。
优选地,所述接收处理模块还用于:
确定所述交易请求的交易类型,并基于所述交易类型,确定所述第二系统的处理流程;
获取所述交易请求的交易参数,并基于所述处理流程和所述交易参数,对所述交易请求进行处理,以得到处理结果。
此外,为实现上述目的,本发明还提供一种基于区块链的交易系统,所述基于区块链的交易系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的交易程序,所述基于区块链的交易程序被所述处理器执行时实现如上所述的基于区块链的交易方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于区块链的交易程序,所述基于区块链的交易程序被处理器执行时实现如上所述的基于区块链的交易方法的步骤。
本发明提出的基于区块链的交易方法,若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。本发明还公开了一种基于区块链的交易装置、系统和计算机可读存储介质。本发明在处理交易过程中,根据数据主题区分各发生交易的系统的交易事件,再将交易事件上链,使得发生交易的系统可以通过区块链准实时得到交易事件,且基于区块链的统一账本技术,发生交易的系统获得交易事件与链上的交易事件是一致的,不需要发生交易的系统再做额外的对账操作即已完成对账,实现系统与系统之间的准实时对账清算,同时基于区块链的不可篡改特性保障交易的安全性,有效缩短交易周期。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图;
图2为本发明基于区块链的交易方法第一实施例的流程示意图;
图3为本发明基于区块链的交易方法第一实施例中,目标区块链包括多条业务链的一种架构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图。
如图1所示,该系统可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链的交易程序。
其中,操作系统是管理和控制基于区块链的交易系统与软件资源的程序,支持网络通信模块、用户接口模块、基于区块链的交易程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的基于区块链的交易系统中,所述基于区块链的交易系统通过处理器1001调用存储器1005中存储的基于区块链的交易程序,并执行下述基于区块链的交易方法各个实施例中的操作。
基于上述硬件结构,提出本发明基于区块链的交易方法实施例。
参照图2,图2为本发明基于区块链的交易方法第一实施例的流程示意图,所述方法包括:
步骤S10,若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;
步骤S20,确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;
步骤S30,基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。
本实施例基于区块链的交易方法运用于理财机构或者银行等金融机构的基于区块链的交易系统中,为描述方便,基于区块链的交易系统简称交易系统,在本实施例中,交易系统包括商户系统(第一系统)、预付费卡系统(第二系统)和商户与银行机构共同参与的联盟链(目标区块链),其中,用户可在商户系统对应的小程序/公众号/APP等前端发起交易,商户系统后台转发该交易的交易请求给预付费卡系统,预付费卡系统接收到交易请求并完成对应的业务处理后,将对应的处理结果通过WeEvent上传到联盟链,商户系统通过订阅该处理结果对应的交易事件的通知,从联盟链上获取交易事件,保证了交易数据的一致性,且依靠区块链的统一账本技术,帮助银行机构与商户之间可联机实时对账,打破了传统的日终对账模式,可有效缩短交易周期。
其中,WeEvent是一套分布式事件驱动架构,实现了可信、可靠、高效的跨机构、跨平台事件通知机制,由微众银行自主研发并完全开源,秉承分布式商业模式中对等合作、智能协同、价值共享的设计理念,致力于提升机构间合作效率,降低合作成本,同时打通应用程序、物联网、云服务和私有服务等不同平台,最终在不改变已有商业系统的开发语言、接入协议的情况下,做到跨机构、跨平台的事件通知与处理。
以下将对各个步骤进行详细说明:
步骤S10,若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果。
在本实施例中,为方便理解,第一系统指代商户系统,第二系统指代预付费卡系统,首先,用户可在第一系统的前端通过小程序/公众号/APP等触发交易请求,交易系统在第一系统接收到该交易请求后,会通过第一系统将该交易请求转发至第二系统,其中,第二系统在本实施例中以预付费卡系统为例,具体包括账户管理、充值、消费、交易信息上链、数据查询等功能模块,因此,交易系统可通过第二系统中的各个功能模块对交易请求进行处理,从而得到处理结果。
具体的,在一实施例中,基于所述第二系统处理所述交易请求,得到处理结果的步骤包括:
步骤a1,确定所述交易请求的交易类型,并基于所述交易类型,确定所述第二系统的处理流程;
在一实施例中,先确定交易请求的交易类型,其中,交易类型包括账户管理、充值、消费和查询等。然后,根据交易类型,确定第二系统对应的护理流程,也即不同交易类型的交易请求其处理流程不一样。
步骤a2,获取所述交易请求的交易参数,并基于所述处理流程和所述交易参数,对所述交易请求进行处理,以得到处理结果。
接着,获取交易请求的交易参数,并根据确定的处理流程和交易参数,对交易请求进行处理,从而得到处理结果。
举例来说,当交易请求的交易类型为账户管理时,如开户,则获取的交易参数包括第一系统的ID信息、用户ID等,再对交易请求进行处理,具体的,根据用户ID进行开户,从而得到开户流水号、开户状态等,第一系统的ID信息、用户ID、开户流水号和开户状态等即为处理结果,最后通过第二系统,异步写入开户事件,并发布到目标区块链,以供后续第一系统通过订阅机制获取开户事件。
再举例来说,当交易请求的交易类型为充值时,则获取的交易参数包括第一系统的ID信息、用户ID和充值金额,再通过第二系统对交易请求进行处理,具体的,根据用户ID和充值金额,对相关账户进行加款操作,从而得到充值后余额、充值流水号和充值状态等,第一系统的ID信息、用户ID、充值后余额、充值流水号和充值状态等即为处理结果,最后通过第二系统,异步写入充值事件,并发布到目标区块链,以供后续第一系统通过订阅机制获取充值事件。
其他交易类型的处理过程大同小异,在此不再赘述。
步骤S20,确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链。
在本实施例中,第一系统作为联盟链的参与方,既可以是链消息的发送方也可以是链消息的接收方,在消息的传递过程中,消息发送方与接收方需要定义好双方的数据主题topic,按约定的topic调用消息上传或接收方法,即可进行消息传递。
因此,需先确定实现约定好的第一系统的数据主题,再基于第二系统和数据主题,发布处理结果对应的交易事件到目标区块链。
进一步地,由于将交易事件上链之后,对应的业务数据在区块链上,而区块链上每一个节点的数据都会达成共识,因此,如何保护每家商户的业务数据不被其他商户获取到是尤其重要的,也即第一系统的业务数据不被其他与第二系统连接的系统获取是很有必要的,因此,需要对业务数据进行隔离,在一实施例中,步骤S20包括:
步骤b1,获取所述第一系统的ID信息,以及所述交易请求的交易类型,并基于所述ID信息和所述交易类型,确定所述第一系统的数据主题;
在一实施例中,采用数据逻辑隔离,具体的,获取第一系统的ID信息,以及交易请求的交易类型,并根据ID信息和交易类型,生成第一系统的数据主题topic。
在具体实施时,以固定前缀+合作方appId(第一系统的ID信息)+交易类型作为数据主题格式,即topic:"com.webank."+appId+transType,其中,"com.webank."为固定前缀示例。如第一系统的appId,即ID信息为W123456;交易类型为开户,transType:0,所以此时的topic就为:com.webank.W1234560。
步骤b2,确定所述第一系统的公钥,并基于所述公钥,对所述处理结果进行加密;
接着确定第一系统的公钥,并使用公钥对处理结果进行加密,得到一个加密的处理结果,也即,与第一系统约定数据加密机制,将上链数据使用公钥进行加密,保持数据密文传输,第一系统通过独立的私钥进行数据解析,可保证数据不被其他系统的商户获知。
步骤b3,将加密后的所述处理结果与所述数据主题绑定,以生成交易事件,并基于所述第二系统,将所述交易事件发布到所述目标区块链。
最后,将加密后的处理结果与数据主题绑定,使得生成的交易事件包含有数据主题以区分其他商户系统的数据,再通过第二系统将交易事件发布到目标区块链。
进一步地,对于数据隐私要求极高的商户,可以提供部署多链的方式进行物理隔离,因此,在一实施例中,所述目标区块链包括多条业务链,所述基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
步骤b3,基于所述数据主题,在所述业务链中确定第一系统对应的目标业务链;
在一实施例中,目标区块链包括多条业务链,如图3所示,预付费卡联盟链(目标区块链)上包含有商户C与银行组成的商户A链,商户B与银行组成的商户B链,商户C、商户D、商户E、商户X和银行组成的商户业务链等多条独立的业务链,每一条业务链约定的topic都不同,因此,可根据数据主题,在业务链中确定第一系统对应的目标业务链。
步骤b4,基于所述第二系统,将所述处理结果对应的交易事件发布到目标业务链。
最后,通过第二系统,将处理结果对应的交易事件发布到目标业务链上,其他业务链不可见,实现数据的物理隔离。
步骤S30,基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。
在本实施例中,在第一系统基于目标区块链的订阅机制,获取交易事件的通知,从而完成第一系统与第二系统的对账,也即,在本实施例中,无需商户自行对账,依靠区块链的统一账本技术,解决了银行与商户之间的互信问题。因此可支持联机实时对账并清分,无需再日终对账处理,也即第一系统通过订阅机制获取到交易事件后即完成了交易请求的对账,因为获取到的交易事件必然与目标区块链上的交易事件一致,而目标区块链上的交易事件又是第二系统上传的,因此,第一系统上的交易事件与第二系统上的交易事件一致,也即,无需再进行额外的对账操作,即可保证两者数据一致。
本实施例若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。本发明在处理交易过程中,根据数据主题区分各发生交易的系统的交易事件,再将交易事件上链,使得发生交易的系统可以通过区块链准实时得到交易事件,且基于区块链的统一账本技术,发生交易的系统获得交易事件与链上的交易事件是一致的,不需要发生交易的系统再做额外的对账操作即已完成对账,实现系统与系统之间的准实时对账清算,同时基于区块链的不可篡改特性保障交易的安全性,有效缩短交易周期。
进一步地,基于本发明基于区块链的交易方法第一实施例,提出本发明基于区块链的交易方法第二实施例。
基于区块链的交易方法的第二实施例与基于区块链的交易方法的第一实施例的区别在于,步骤S10之前,基于区块链的交易方法还包括:
步骤d,确定所述目标区块链对应的节点信息,并基于所述节点信息和所述第一系统,生成合约地址;
步骤e,基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链。
本实施例为了让第一系统顺利接入目标区块链,借助WeEvent组件,以API方式支持数据上链,来完成第一系统与目标区块链的通信处理,具体以目标区块链的节点信息和合约地址,搭建数据桥梁。
以下将对各个步骤进行详细说明:
步骤d,确定所述目标区块链对应的节点信息,并基于所述节点信息和所述第一系统,生成合约地址。
在本实施例中,先确定目标区块链对应的节点信息,其中节点信息包括IP地址和端口信息,并基于节点信息和第一系统,生成合约地址。
具体可根据区块链的合约生成工具生成,由于是区块链的通用技术,在此不再详细说明。
步骤e,基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链。
在本实施例中,根据节点信息和合约地址,即可将第一系统接入目标区块链,具体的,在一实施例中,步骤e包括:
步骤e1,获取预封装资源包,并将所述预封装资源包嵌入所述第一系统中,所述预封装资源包包含上链API,用于建立与所述目标区块链的连接;
步骤e2,基于所述节点信息,修改所述预封装资源包中配置文件的IP和端口,并将所述配置文件中的默认地址修改为所述合约地址,以完成所述第一系统接入所述目标区块链。
在一实施例中,为降低商户接入区块链节点的难度,可事先封装一个资源包,也即预封装资源包,商户在分配到预封装资源包后,嵌入原有的商户系统的应用端,也即第一系统的应用端中。以一般主流研发语言为Java为例,预封装资源包即为JAVA客户端资源包,具体包括web3sdk.jar和weevent-sdk.jar,其中weevent-sdk.jar是目标区块链项目的源代码生成的jar包,web3sdk是一个重要的本地依赖包,预封装资源包包含上链API,用于建立与所述目标区块链的连接。采用此种方式,可在不侵入第一系统已有应用代码的前提下,实现应用与区块链节点的连通。
在具体实施时,在将预封装资源包嵌入第一系统的应用端之后,只需将预封装资源包中的配置文件里面的IP地址和端口信息修改为目标区块链的IP地址和端口信息,再运行com.webank.weevent.contract.deploy.DeployContract(合约生成工具)即可生成合约地址,这过程中,需要配置生成的合约地址的路径,比如定义为/data/app/weevent/contract-addrss.txt,这样就会生成一个合约地址在contract-addrss.txt文件里。然后取出生成的合约地址替换掉上面的配置文件中的默认地址demo,使得商户系统不需要做任何改造,即可打通应用程序层与区块链的连通,而将预封装资源包中配置文件的默认地址demo(默认地址可为空)修改成生成的合约地址,则可使当前接入的第一系统遵循整个目标区块的交易协议,便于后续交易的进行,此时,即完成第一系统接入目标区块链。
需要说明的是,对于合约部署,一个区块链网络只需执行一次,同一条链所有接入的系统都需配置相同的合约地址,遵循同一套交易协议,利于交易公平。
本实施例通过目标区块的节点信息以及合约地址,将第一系统接入目标区块链,从而完成商户与区块链之间的通信,降低了接入难度,不需要每次接入都需要对应开发个性化接口。
进一步地,基于本发明基于区块链的交易方法第一、第二实施例,提出本发明基于区块链的交易方法第三实施例。
基于区块链的交易方法的第三实施例与基于区块链的交易方法的第一、第二实施例的区别在于,所述基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
步骤f,基于所述第二系统和所述数据主题,将所述处理结果对应的交易事件缓存到上链数据表中,并标记所述交易事件的处理状态为处理中;
步骤g,基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
本实施例为保证数据百分百上链成功,针对每条上链数据进行持久化到数据库中,数据库包含有上链数据表,再轮询上链。
以下将对各个步骤进行详细说明:
步骤f,基于所述第二系统和所述数据主题,将所述处理结果对应的交易事件缓存到上链数据表中,并标记所述交易事件的处理状态为处理中。
在本实施例,可以理解的,由于各种客观原因,比如网络抖动、应用异常等,可能会造成部分业务数据无法实施推送到区块链中,为了应对这些异常场景,交易系统采用先将业务数据落库在异步上链,具体的,通过第二系统和第一系统的数据主题,将处理结果对应的交易事件缓存到数据中的上链数据表中,并标记交易事件的处理状态为处理中。
在具体实施时,交易系统提供一个交易接口,通过该交易接口可调用异步方法weEventNoticeRecord记录需要上链的数据,也即交易事件,异步方法根据配置wlt_pas_notice_conf_info数据判断商户是否需要上链,未配置则丢弃数据,有配置则记录到上链数据表:wlt_pas_we_event_notice_record,状态为处理中,并且触发异步上链方法及记录上链结果。
步骤g,基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
在本实施例中,根据处理状态,启动多个任务线程进行上链,具体的,根据上链数据表wlt_pas_we_event_notice_record的处理状态,每1分钟轮询一批数据(如50条交易事件,可配置),即每批次处理一批数据,将其发布到目标区块链,并更新处理结果。
进一步地,在一实施例中,所述基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链的步骤包括:
步骤g1,标记所述交易事件的上链次数;
在一实施例中,交易系统提供定时补链功能,针对不同时间段失败上链的数据,启动了多个定时任务进行补推处理,为确保设备资源不浪费,补推有次数限制,因此,需标记交易事件的上链次数,第一次上链则标记为0,后续逐次加一。
步骤g2,基于所述上链次数和所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
在一实施例中,交易系统根据交易事件的上链次数和处理状态,轮询获取上链数据表中的交易事件,在具体实施时,原则上,每个交易事件最多尝试6次上链,具体次数可通过配置wlt_pas_notice_conf_info数据修改商户上链间隔时间和上链次数。在达到最大次数之前,都可以对交易事件进行补推。
进一步地,为确保商户系统的本地数据与目标区块链上的数据的完整性和一致性,在一实施例中,基于区块链的交易方法还包括:
步骤h,在预设时间检查所述上链数据表中所有交易事件的处理状态;
在一实施例中,在预设时间检查上链数据表中所有交易事件的处理状态,其中,处理状态包括处理中和已处理。
步骤i,若所述上链数据表中还存在处理状态为处理中的交易事件,则生成告警信息。
若此时上链数据表中还存在处理状态为处理中的交易事件,则认为该交易事件无法通过重试补推上链,此时生成告警信息,以通知运维人员介入处理。
在具体实施时,可采用日终监控,也即预设时间为每天凌晨零点,通过监控确保上链数据表中需要上链的数据都已上链,商户系统的数据与区块链上的数据完整且一致,而对于还未上链的数据,则以人工介入处理。
本实施例以分级补偿机制,对交易事件的上链进行分布补偿,可确保交易事件百分百上链成功,实现商户系统与区块链上的数据一致。
本发明还提供一种基于区块链的交易装置。本发明基于区块链的交易装置包括:
接收处理模块,用于若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;
确定发布模块,用于确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;
获取对账模块,用于基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。
优选地,所述基于区块链的交易装置还包括接入模块,用于:
确定所述目标区块链对应的节点信息,并基于所述节点信息和所述第一系统,生成合约地址;
基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链。
优选地,所述接入模块还用于:
获取预封装资源包,并将所述预封装资源包嵌入所述第一系统中,所述预封装资源包包含上链API,用于建立与所述目标区块链的连接;
基于所述节点信息,修改所述预封装资源包中配置文件的IP和端口,并将所述配置文件中的默认地址修改为所述合约地址,以完成所述第一系统接入所述目标区块链。
优选地,所述确定发布模块还用于:
获取所述第一系统的ID信息,以及所述交易请求的交易类型,并基于所述ID信息和所述交易类型,确定所述第一系统的数据主题;
确定所述第一系统的公钥,并基于所述公钥,对所述处理结果进行加密;
将加密后的所述处理结果与所述数据主题绑定,以生成交易事件,并基于所述第二系统,将所述交易事件发布到所述目标区块链。
优选地,所述确定发布模块还用于:
基于所述数据主题,在所述业务链中确定第一系统对应的目标业务链;
基于所述第二系统,将所述处理结果对应的交易事件发布到目标业务链。
优选地,所述确定发布模块还用于:
基于所述第二系统和所述数据主题,将所述处理结果对应的交易事件缓存到上链数据表中,并标记所述交易事件的处理状态为处理中;
基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
优选地,所述确定发布模块还用于:
标记所述交易事件的上链次数;
基于所述上链次数和所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
优选地,所述基于区块链的交易装置还包括接入模块,用于:
在预设时间检查所述上链数据表中所有交易事件的处理状态;
若所述上链数据表中还存在处理状态为处理中的交易事件,则生成告警信息。
优选地,所述接收处理模块还用于:
确定所述交易请求的交易类型,并基于所述交易类型,确定所述第二系统的处理流程;
获取所述交易请求的交易参数,并基于所述处理流程和所述交易参数,对所述交易请求进行处理,以得到处理结果。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有基于区块链的交易程序,所述基于区块链的交易程序被处理器执行时实现如上所述的基于区块链的交易方法的步骤。
其中,在所述处理器上运行的基于区块链的交易程序被执行时所实现的方法可参照本发明基于区块链的交易方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种基于区块链的交易方法,其特征在于,所述基于区块链的交易方法包括如下步骤:
若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;
确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;
基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。
2.如权利要求1所述的基于区块链的交易方法,其特征在于,所述若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果的步骤之前,所述基于区块链的交易方法还包括:
确定所述目标区块链对应的节点信息,并基于所述节点信息和所述第一系统,生成合约地址;
基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链。
3.如权利要求2所述的基于区块链的交易方法,其特征在于,所述基于所述节点信息和所述合约地址,将所述第一系统接入所述目标区块链的步骤包括:
获取预封装资源包,并将所述预封装资源包嵌入所述第一系统中,所述预封装资源包包含上链API,用于建立与所述目标区块链的连接;
基于所述节点信息,修改所述预封装资源包中配置文件的IP和端口,并将所述配置文件中的默认地址修改为所述合约地址,以完成所述第一系统接入所述目标区块链。
4.如权利要求1所述的基于区块链的交易方法,其特征在于,所述确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
获取所述第一系统的ID信息,以及所述交易请求的交易类型,并基于所述ID信息和所述交易类型,确定所述第一系统的数据主题;
确定所述第一系统的公钥,并基于所述公钥,对所述处理结果进行加密;
将加密后的所述处理结果与所述数据主题绑定,以生成交易事件,并基于所述第二系统,将所述交易事件发布到所述目标区块链。
5.如权利要求1所述的基于区块链的交易方法,其特征在于,所述目标区块链包括多条业务链,所述基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
基于所述数据主题,在所述业务链中确定第一系统对应的目标业务链;
基于所述第二系统,将所述处理结果对应的交易事件发布到目标业务链。
6.如权利要求1所述的基于区块链的交易方法,其特征在于,所述基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链的步骤包括:
基于所述第二系统和所述数据主题,将所述处理结果对应的交易事件缓存到上链数据表中,并标记所述交易事件的处理状态为处理中;
基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
7.如权利要求6所述的基于区块链的交易方法,其特征在于,所述基于所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链的步骤包括:
标记所述交易事件的上链次数;
基于所述上链次数和所述处理状态,轮询获取所述上链数据表中的所述交易事件,并将所述交易事件发布到所述目标区块链。
8.如权利要求6所述的基于区块链的交易方法,其特征在于,所述基于区块链的交易方法还包括:
在预设时间检查所述上链数据表中所有交易事件的处理状态;
若所述上链数据表中还存在处理状态为处理中的交易事件,则生成告警信息。
9.如权利要求1-8任一项所述的基于区块链的交易方法,其特征在于,所述基于所述第二系统处理所述交易请求,得到处理结果的步骤包括:
确定所述交易请求的交易类型,并基于所述交易类型,确定所述第二系统的处理流程;
获取所述交易请求的交易参数,并基于所述处理流程和所述交易参数,对所述交易请求进行处理,以得到处理结果。
10.一种基于区块链的交易装置,其特征在于,所述基于区块链的交易装置包括:
接收处理模块,用于若接收到基于第一系统触发的交易请求,则将所述交易请求转发至第二系统,并基于所述第二系统处理所述交易请求,得到处理结果;
确定发布模块,用于确定所述第一系统的数据主题,并基于所述第二系统和所述数据主题,发布所述处理结果对应的交易事件到目标区块链;
获取对账模块,用于基于所述目标区块链和所述第一系统,获取所述交易事件,以完成所述交易请求的对账。
11.一种基于区块链的交易系统,其特征在于,所述基于区块链的交易系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的交易程序,所述基于区块链的交易程序被所述处理器执行时实现如权利要求1至9中任一项所述的基于区块链的交易方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于区块链的交易程序,所述基于区块链的交易程序被处理器执行时实现如权利要求1至9中任一项所述的基于区块链的交易方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011645345.4A CN112669157A (zh) | 2020-12-30 | 2020-12-30 | 基于区块链的交易方法、装置、系统与可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011645345.4A CN112669157A (zh) | 2020-12-30 | 2020-12-30 | 基于区块链的交易方法、装置、系统与可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112669157A true CN112669157A (zh) | 2021-04-16 |
Family
ID=75412469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011645345.4A Pending CN112669157A (zh) | 2020-12-30 | 2020-12-30 | 基于区块链的交易方法、装置、系统与可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112669157A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113301132A (zh) * | 2021-05-12 | 2021-08-24 | 苏州域乎区块链科技有限公司 | 一种基于联盟链的交易订阅系统及方法 |
CN113643027A (zh) * | 2021-07-07 | 2021-11-12 | 重庆邮电大学 | 基于区块链实现行业网络积分管理的方法及装置 |
CN117539644A (zh) * | 2024-01-09 | 2024-02-09 | 四川迅鳐科技有限公司 | 基于业务链条的区块链交易查询方法、系统及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046992A1 (en) * | 2016-08-10 | 2018-02-15 | Jpmorgan Chase Bank, N.A. | Systems and methods for account reconciliation using a distributed ledger |
CN110062041A (zh) * | 2019-04-12 | 2019-07-26 | 深圳前海微众银行股份有限公司 | 一种基于区块链的iot设备变更的方法及装置 |
CN110209381A (zh) * | 2019-05-31 | 2019-09-06 | 深圳前海微众银行股份有限公司 | 基于区块链的sdk快速集成方法、装置、设备及存储介质 |
CN110675145A (zh) * | 2019-08-22 | 2020-01-10 | 中国平安财产保险股份有限公司 | 基于区块链的数据处理方法、装置、终端及存储介质 |
CN111274252A (zh) * | 2020-01-08 | 2020-06-12 | 平安科技(深圳)有限公司 | 一种区块链的数据上链方法、装置、存储介质和服务器 |
CN111861477A (zh) * | 2020-08-06 | 2020-10-30 | 深圳壹账通智能科技有限公司 | 基于区块链的交易后数据处理方法、装置和计算机设备 |
CN112003858A (zh) * | 2020-08-21 | 2020-11-27 | 杭州云链趣链数字科技有限公司 | 基于区块链的平台对接的方法、电子装置和存储介质 |
-
2020
- 2020-12-30 CN CN202011645345.4A patent/CN112669157A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046992A1 (en) * | 2016-08-10 | 2018-02-15 | Jpmorgan Chase Bank, N.A. | Systems and methods for account reconciliation using a distributed ledger |
CN110062041A (zh) * | 2019-04-12 | 2019-07-26 | 深圳前海微众银行股份有限公司 | 一种基于区块链的iot设备变更的方法及装置 |
CN110209381A (zh) * | 2019-05-31 | 2019-09-06 | 深圳前海微众银行股份有限公司 | 基于区块链的sdk快速集成方法、装置、设备及存储介质 |
CN110675145A (zh) * | 2019-08-22 | 2020-01-10 | 中国平安财产保险股份有限公司 | 基于区块链的数据处理方法、装置、终端及存储介质 |
CN111274252A (zh) * | 2020-01-08 | 2020-06-12 | 平安科技(深圳)有限公司 | 一种区块链的数据上链方法、装置、存储介质和服务器 |
CN111861477A (zh) * | 2020-08-06 | 2020-10-30 | 深圳壹账通智能科技有限公司 | 基于区块链的交易后数据处理方法、装置和计算机设备 |
CN112003858A (zh) * | 2020-08-21 | 2020-11-27 | 杭州云链趣链数字科技有限公司 | 基于区块链的平台对接的方法、电子装置和存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113301132A (zh) * | 2021-05-12 | 2021-08-24 | 苏州域乎区块链科技有限公司 | 一种基于联盟链的交易订阅系统及方法 |
CN113643027A (zh) * | 2021-07-07 | 2021-11-12 | 重庆邮电大学 | 基于区块链实现行业网络积分管理的方法及装置 |
CN113643027B (zh) * | 2021-07-07 | 2024-05-10 | 芽米科技(广州)有限公司 | 基于区块链实现行业网络积分管理的方法及装置 |
CN117539644A (zh) * | 2024-01-09 | 2024-02-09 | 四川迅鳐科技有限公司 | 基于业务链条的区块链交易查询方法、系统及存储介质 |
CN117539644B (zh) * | 2024-01-09 | 2024-03-26 | 四川迅鳐科技有限公司 | 基于业务链条的区块链交易查询方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558820B2 (en) | System and method for maintaining a segregated database in a multiple distributed ledger system | |
Johansen et al. | Operating system support for mobile agents | |
US8037193B2 (en) | Virtual token | |
CN112669157A (zh) | 基于区块链的交易方法、装置、系统与可读存储介质 | |
IL264136B2 (en) | Decentralized transaction processing and authentication system | |
CN111309745B (zh) | 虚拟资源处理方法、装置、电子设备及存储介质 | |
CN108022090B (zh) | 虚拟账户管理方法、设备、系统及可读存储介质 | |
CA3175939C (en) | Blacklist data sharing method and system based on blockchain | |
AU2020202575A1 (en) | Online payment | |
KR20160054033A (ko) | 모바일 송금/결제 | |
US20140089156A1 (en) | Addresses in financial systems | |
CN108038679A (zh) | 发送支付消息的方法和聚合支付平台 | |
CN115456773B (zh) | 基于区块链的支付控制方法、装置、设备及介质 | |
US20040039691A1 (en) | Electronic funds transaction system | |
CN112699136B (zh) | 一种跨链存证方法及相关装置 | |
WO2015192796A1 (zh) | 基于可信服务管理平台的应用自动发布方法及系统 | |
CN117938867A (zh) | 一种多区块链数据处理方法、装置、设备、介质及产品 | |
CN113450093B (zh) | 基于锥体区块链的数字零钱钱包实时共识认证方法及系统 | |
CN118036021A (zh) | 基于多区块链的数据处理方法、装置、设备以及介质 | |
US20240232849A1 (en) | Localized smart contract banking system and method | |
AU775865B2 (en) | A virtual token | |
Johansen et al. | Operating system support for mobile agents | |
CN114445058A (zh) | 虚拟资源的处理方法、装置、电子设备及存储介质 | |
CN118897703A (zh) | 基于即时通信的资源转移方法、装置、设备及存储介质 | |
CN114445060A (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 |