CN110620819B - 区块链交互方法、装置、计算机设备及可读存储介质 - Google Patents

区块链交互方法、装置、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN110620819B
CN110620819B CN201910889901.3A CN201910889901A CN110620819B CN 110620819 B CN110620819 B CN 110620819B CN 201910889901 A CN201910889901 A CN 201910889901A CN 110620819 B CN110620819 B CN 110620819B
Authority
CN
China
Prior art keywords
block chain
message
interface
application layer
abstract interface
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
Application number
CN201910889901.3A
Other languages
English (en)
Other versions
CN110620819A (zh
Inventor
侯文圣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201910889901.3A priority Critical patent/CN110620819B/zh
Publication of CN110620819A publication Critical patent/CN110620819A/zh
Application granted granted Critical
Publication of CN110620819B publication Critical patent/CN110620819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明实施例提供了一种区块链交互方法、装置、计算机设备及可读存储介质,其中,该方法包括;接口平台的第一抽象接口接收应用层发送的对区块链进行操作的第一报文,接口平台设置于应用层和区块链之间;通过接口平台的第二抽象接口从区块链获取第二报文;通过接口平台将第一报文转化为预设数据结构,再将转化后的第一报文转化为区块链采用的数据格式,将第二报文转化为预设数据结构,再将转化后的第二报文转化为应用层采用的数据格式;通过第二抽象接口将转化格式后的第一报文发送给区块链;通过第一抽象接口将转化格式后的第二报文发送给应用层。该方案避免应用层和区块链直接连接、交互,避免双方接口差异、通信机制不同带来的操作繁杂的问题。

Description

区块链交互方法、装置、计算机设备及可读存储介质
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链交互方法、装置、计算机设备及可读存储介质。
背景技术
在将区块链(区块链:狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。)应用到应用业务领域(例如,支付领域)时,现有的应用业务系统和区块链并不能直接连接,双方接口差异明显,通信机制不同,并且区块链存在特有的块生成机制、广播机制,简单的连接双方并不能满足业务上的需要,双方系统连接使用的连接方式较多,对区块链的调用步骤繁多且复杂。
发明内容
本发明实施例提供了一种区块链交互方法,以解决现有技术中应用层和区块链交互时存在操作繁杂的技术问题。该方法包括:
通过接口平台的第一抽象接口接收应用层发送的对区块链进行操作的第一报文,其中,所述接口平台设置于应用层和区块链之间;
通过接口平台的第二抽象接口从所述区块链获取第二报文;
通过接口平台将第一报文转化为预设数据结构,再将转化后的第一报文转化为所述区块链采用的数据格式;通过接口平台将第二报文转化为所述预设数据结构,再将转化后的第二报文转化为所述应用层采用的数据格式;
通过所述接口平台的第二抽象接口将转化格式后的第一报文发送给所述区块链;
通过所述接口平台的第一抽象接口将转化格式后的第二报文发送给所述应用层。
本发明实施例还提供了一种区块链交互装置,以解决现有技术中应用层和区块链交互时存在操作繁杂的技术问题。所述区块链交互装置设置于应用层和区块链之间,所述区块链交互装置包括:
第一抽象接口模块,用于接收应用层发送的对区块链进行操作的第一报文;
第二抽象接口模块,用于从所述区块链获取第二报文;
报文处理模块,用于将第一报文转化为预设数据结构,再将转化后的第一报文转化为所述区块链采用的数据格式;将第二报文转化为所述预设数据结构,再将转化后的第二报文转化为所述应用层采用的数据格式;
第二抽象接口模块,还用于将转化格式后的第一报文发送给所述区块链;
第一抽象接口模块,还用于将转化格式后的第二报文发送给所述应用层。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的区块链交互方法,以解决现有技术中应用层和区块链交互时存在操作繁杂的技术问题。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的区块链交互方法的计算机程序,以解决现有技术中应用层和区块链交互时存在操作繁杂的技术问题。
在本发明实施例中,通过在应用层和区块链之间设置接口平台,并通过接口平台的第一抽象接口实现接口平台与应用层之间的交互,通过接口平台的第二抽象接口实现接口平台与区块链之间的交互,进而通过接口平台在应用层和区块链之间做双向的报文转发,即该接口平台不做具体的业务处理,只做应用层和区块链之间双向的报文转发,使得避免应用层和区块链直接进行连接、交互,应用层不需要关心使用区块链的细节,使得应用层与区块链之间解耦,起到了屏蔽应用层和区块链双方的接口差异、屏蔽底层通信机制的效果,有利于避免由于应用层和区块链双方的接口差异、通信机制不同带来的双方交互操作繁杂的问题,有利于提高应用层和区块链双方交互的效率;同时,由于通过接口平台的第一抽象接口对接应用层,通过接口平台的第二抽象接口对接区块链,且接口平台对双方报文做预设数据结构、相应数据格式的转化,使得第一抽象接口和第二抽象接口都可以使用预设数据结构的数据,第一抽象接口和第二抽象接口的变更互不影响,有利于提高第一抽象接口和第二抽象接口的自由度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种区块链交互方法的流程图;
图2是本发明实施例提供的一种接口平台的结构示意图;
图3是本发明实施例提供的一种接口平台的功能结构示意图;
图4是本发明实施例提供的一种使用伪连接区块链的流程图;
图5是本发明实施例提供的一种第二抽象接口从区块链获取报文的示意图;
图6是本发明实施例提供的一种第二抽象接口监听新块生成的报文的流程图;
图7是本发明实施例提供的一种设置缓存进行基础数据查询的流程图;
图8是本发明实施例提供的一种计算机设备的结构框图;
图9是本发明实施例提供的一种区块链交互装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,提供了一种区块链交互方法,如图1所示,该方法包括:
步骤102:通过接口平台的第一抽象接口接收应用层发送的对区块链进行操作的第一报文,其中,所述接口平台设置于应用层和区块链之间;
步骤104:通过接口平台的第二抽象接口从所述区块链获取第二报文;
步骤106:通过接口平台将第一报文转化为预设数据结构,再将转化后的第一报文转化为所述区块链采用的数据格式;通过接口平台将第二报文转化为所述预设数据结构,再将转化后的第二报文转化为所述应用层采用的数据格式;
步骤108:通过所述接口平台的第二抽象接口将转化格式后的第一报文发送给所述区块链;
步骤110:通过所述接口平台的第一抽象接口将转化格式后的第二报文发送给所述应用层。
由图1所示的流程可知,在本发明实施例中,通过在应用层和区块链之间设置接口平台,并通过接口平台的第一抽象接口实现接口平台与应用层之间的交互,通过接口平台的第二抽象接口实现接口平台与区块链之间的交互,进而通过接口平台在应用层和区块链之间做双向的报文转发,即该接口平台不做具体的业务处理,只做应用层和区块链之间双向的报文转发,使得避免应用层和区块链直接进行连接、交互,应用层不需要关心使用区块链的细节,使得应用层与区块链之间解耦,起到了屏蔽应用层和区块链双方的接口差异、屏蔽底层通信机制的效果,有利于避免由于应用层和区块链双方的接口差异、通信机制不同带来的双方交互操作繁杂的问题,有利于提高应用层和区块链双方交互的效率;同时,由于通过接口平台的第一抽象接口对接应用层,通过接口平台的第二抽象接口对接区块链,且接口平台对双方报文做预设数据结构、相应数据格式的转化,使得第一抽象接口和第二抽象接口都可以使用预设数据结构的数据,第一抽象接口和第二抽象接口的变更互不影响,有利于提高第一抽象接口和第二抽象接口的自由度。
具体实施时,可以采用Hyperledger Fabric Java SDK来开发接口平台的第一抽象接口和第二抽象接口,其中,SDK,hyperledger fabric发布的适用于特定语言的开发工具包,使用SDK可以使应用和区块链网络方便的进行交互,SDK封装了与区块链网络交互的底层机制,提供上层调用接口。可以通过Spring Boot来开发上述接口平台的框架,SpringBoot:由Pivotal团队提供的框架,用来简化新Spring应用的初始搭建及开发过程。
具体实施时,应用层可能为多个,相应的,如图2所示,上述对接应用层的第一抽象接口可以设置为多个,区块链涉及多种连接方式,即可以对应每种连接方式设置一个第二抽象接口,也就是说,上述对接区块链的第二抽象接口可以设置为多个。
具体实施时,为了满足不同的使用区块链的需求,在本实施例中,上述方法还包括:
所述接口平台设置有伪连接区块链,其中,所述伪连接区块链为模拟实现所述区块链功能的功能模块,即该伪连接区块链可以模拟真实的区块链,进而完成真实的区块链的功能;
通过所述接口平台的第二抽象接口将转化格式后的第一报文发送给所述区块链或所述伪连接区块链(具体的,可以根据是否需要对区块链进行真实操作,预先设置将第一报文发送给真实的区块链还是发送给伪连接区块链,以实现真实的区块链与伪连接区块链之间的切换,例如,第一报文是真实业务处理中需要对区块链进行真实操作,则可以按照预先设置,将第一报文发送给所述区块链;当应用层中业务系统处于开发、测试阶段,不需要对区块链进行真实操作,则可以按照预先设置,将第一报文发送给伪连接区块链)。
具体的,上述第一报文可以是应用层发送的对区块链进行任意操作的报文,在本实施例中,以查询操作为例,如图4所示,该查询过程包括如下步骤:
根据上述第一报文为查询操作,调用接口平台的第二抽象接口中的查询抽象接口,查询抽象接口根据预先设置转发第一报文,如果该查询是真实业务处理中需要对区块链进行真实操作,则按照预先设置,查询抽象接口基于第一报文、区块链的相关参数信息,将上述第一报文转发给区块链,即由区块链基于第一报文进行查询操作,此时不需要关心具体的区块链查询过程;如果应用层中业务系统处于开发、测试阶段,不需要对区块链进行真实操作,则按照预先设置,查询抽象接口基于第一报文、伪连接区块链的相关参数信息,将上述第一报文转发给伪连接区块链,即由伪连接区块链基于第一报文进行查询操作,具体的,伪连接区块链进行查询的过程可以是在接口平台的本地数据库中进行查询,并将查询结果通过第一抽象接口反馈给应用层。
具体实施时,区块链自身的机制决定了无法像其他的业务系统一样主动对报文做出通知,因此需要一个机制来获知区块链中存在新的报文,例如,针对新块生成的报文,如图3、图5所示,上述方法包括:
接口平台的第二抽象接口可以包括监听抽象接口,如图6所示,通过所述监听抽象接口监听获取区块链的新块生成的报文;
通过接口平台将新块生成的报文解析拆分为预设数据结构,并将解析拆分后的报文转化为所述应用层采用的数据格式;
通过所述接口平台的第一抽象接口将转化格式后的新块生成的报文发送给所述应用层,即应用层无需主动查询,接口平台获取新块生成的报文后反馈给应用层。
具体实施时,除了需要监听块生成的报文,还需要获取区块链针对应用层的操作的响应报文,例如,如图3、图5所示,上述接口平台的第二抽象接口还可以包括通信抽象接口,以便与区块链进行通信交互,获取响应报文(例如,是否收到某报文,某报文是否处理成功等响应报文);再通过接口平台将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式;最后,通过所述接口平台的第一抽象接口将转化格式后的响应报文发送给所述应用层,即应用层无需主动查询响应,接口平台获取响应报文后反馈给应用层。
具体实施时,接口平台可以设置多个第一抽象接口来对接应用层,如图5所示,第一抽象接口可以通过MQ、RESTApi等形式接收应用层发送的对区块链进行操作的请求报文,接口平台可以设置多个第二抽象接口来对接区块链,例如,通过设置监听抽象接口来监听区块链新块生成的报文,通过设置通信抽象接口来获取区块链的响应报文,具体的,通信抽象接口可以通过GRPC的形式获取响应报文,第二抽象接口也可以通过GRPC的形式向区块链转发报文。可见,接口平台通过第一抽象接口、第二抽象接口获取了不同连接方式的报文,为了便于不同接口之间互转报文及接口平台内部服务处理,在本实施例中,接口平台将第一抽象接口、第二抽象接口接收的报文均转化为预设数据结构,即接口平台的内部通用数据结构,该预设数据结构可以包括固定数据和可扩展字段数据。
具体实施时,当通信抽象接口接收的响应报文为异常报文(例如,某报文未接收到、某报文处理失败等异常报文)时,通过接口平台将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式的业务语言;通过所述接口平台的第一抽象接口将所述业务语言发送给所述应用层。具体的,由于当区块链产生异常信息时,报错信息较为底层且复杂难明,通过接口平台将异常报文转化封装为业务语言发送给所述应用层后,实现对业务层屏蔽区块链异常信息的作用。
具体实施时,针对基础数据(或称为热点数据,即查询或使用频率较高的数据)的查询,如果在区块链上查询则需要多次查询,效率低下且对区块链造成不必要的压力,那么,为了提高查询效率,免于频繁查询区块链,在本实施例中,如图3、图7所示,上述方法还包括:
所述接口平台设置有缓存,所述缓存用于存储所述应用层的基础数据,所述基础数据包括所述应用层中业务机构的相关信息(例如,业务机构的账号、名称、代码等信息);
根据接收的报文(该报文包括上述第一报文和上述第二报文),在所述缓存中查询所述报文包含的基础数据,并将查询到的基础数据与所述报文包含的基础数据进行匹配,并通过所述第一抽象接口或所述第二抽象接口将匹配成功的结果反馈给所述报文的发送方,例如,当该报文是通过第一抽象接口从应用层接收的第一报文,则通过第一抽象接口将匹配成功的结果反馈给应用层,当该报文是通过第二抽象接口从区块链获取的第二报文,则通过第二抽象接口将匹配成功的结果反馈给区块链,如匹配失败,则放弃该报文;如果在所述缓存中未查询到数据,则通过所述第二抽象接口将转化格式后的所述报文发送给所述区块链,并通过所述第二抽象接口获取所述区块链查询到的基础数据,将所述区块链查询到的基础数据与所述报文包含的基础数据进行匹配,通过所述第一抽象接口或所述第二抽象接口将匹配成功的结果反馈给所述报文的发送方,同样,当该报文是通过第一抽象接口从应用层接收的第一报文,则通过第一抽象接口将匹配成功的结果反馈给应用层,当该报文是通过第二抽象接口从区块链获取的第二报文,则通过第二抽象接口将匹配成功的结果反馈给区块链,将区块链查询到的基础数据存入缓存中;如匹配失败,则放弃该报文。
具体实施时,上述缓存可以是Redis,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
具体实施时,上述接口平台主要通过抽象接口实现应用层和区块链之间的报文双向转发,使得通过简单的调用抽象接口即可完成复杂的区块链操作,可以屏蔽底层复杂的通信细节,接口的流转实现系统的运行、具体的实现应用层和区块链解耦,使得系统具有高度的灵活性,易扩展,易修改,通过组建装配可以实现丰富的功能;有利于提供高效的信息传递、信息处理、信息缓存、信息通知等,使得业务层可以专注于业务层面的处理,不需要去关心使用区块链的细节,区块链可以专做区块链擅长的工作。
在本实施例中,提供了一种计算机设备,如图8所示,包括存储器802、处理器804及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的区块链交互方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的区块链交互方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
基于同一发明构思,本发明实施例中还提供了一种区块链交互装置,如下面的实施例所述。由于区块链交互装置解决问题的原理与区块链交互方法相似,因此区块链交互装置的实施可以参见区块链交互方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图9是本发明实施例的区块链交互装置的一种结构框图,如图9所示,该装置包括:
第一抽象接口模块902,用于接收应用层发送的对区块链进行操作的第一报文;
第二抽象接口模块904,用于从所述区块链获取第二报文;
报文处理模块906,用于将第一报文转化为预设数据结构,再将转化后的第一报文转化为所述区块链采用的数据格式;将第二报文转化为所述预设数据结构,再将转化后的第二报文转化为所述应用层采用的数据格式;
第二抽象接口模块904,还用于将转化格式后的第一报文发送给所述区块链;
第一抽象接口模块902,还用于将转化格式后的第二报文发送给所述应用层。
在一个实施例中,还包括:
伪连接区块链模块,用于模拟实现所述区块链的功能;
所述第二抽象接口模块,包括:
操作抽象接口单元,用于将转化格式后的第一报文发送给所述区块链或所述伪连接区块链模块。
在一个实施例中,所述第二抽象接口模块,包括:
监听抽象接口单元,用于监听获取区块链的新块生成的报文;
所述报文处理模块,还用于将新块生成的报文解析拆分为预设数据结构,并将解析拆分后的报文转化为所述应用层采用的数据格式;
第一抽象接口模块,用于将转化格式后的新块生成的报文发送给所述应用层。
在一个实施例中,所述第二抽象接口模块,还包括:
通信抽象接口单元,用于获取区块链的响应报文;
所述报文处理模块,还用于将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式;
所述第一抽象接口模块,用于将转化格式后的响应报文发送给所述应用层。
在一个实施例中,所述报文处理模块,还用于当响应报文为异常报文时,将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式的业务语言;
所述第一抽象接口模块,还用于将所述业务语言发送给所述应用层。
在一个实施例中,还包括:
缓存模块,用于存储所述应用层的基础数据,所述基础数据包括所述应用层中业务机构的相关信息;
查询模块,用于根据接收的报文,在所述缓存中查询所述报文包含的基础数据,并将查询到的基础数据与所述报文包含的基础数据进行匹配,通过所述第一抽象接口模块或所述第二抽象接口模块将匹配成功的结果反馈给所述报文的发送方;如果在所述缓存中未查询到数据,则通过所述第二抽象接口将转化格式后的所述报文发送给所述区块链,通过所述第二抽象接口获取所述区块链查询到的基础数据,将所述区块链查询到的基础数据与所述报文包含的基础数据进行匹配,通过所述第一抽象接口模块或所述第二抽象接口模块将匹配成功的结果反馈给所述报文的发送方,其中,所述报文包括所述第一报文和所述第二报文。
在一个实施例中,所述预设数据结构包括固定数据和可扩展字段数据。
本发明实施例实现了如下技术效果:通过在应用层和区块链之间设置接口平台,并通过接口平台的第一抽象接口实现接口平台与应用层之间的交互,通过接口平台的第二抽象接口实现接口平台与区块链之间的交互,进而通过接口平台在应用层和区块链之间做双向的报文转发,即该接口平台不做具体的业务处理,只做应用层和区块链之间双向的报文转发,使得避免应用层和区块链直接进行连接、交互,应用层不需要关心使用区块链的细节,使得应用层与区块链之间解耦,起到了屏蔽应用层和区块链双方的接口差异、屏蔽底层通信机制的效果,有利于避免由于应用层和区块链双方的接口差异、通信机制不同带来的双方交互操作繁杂的问题,有利于提高应用层和区块链双方交互的效率;同时,由于通过接口平台的第一抽象接口对接应用层,通过接口平台的第二抽象接口对接区块链,且接口平台对双方报文做预设数据结构、相应数据格式的转化,使得第一抽象接口和第二抽象接口都可以使用预设数据结构的数据,第一抽象接口和第二抽象接口的变更互不影响,有利于提高第一抽象接口和第二抽象接口的自由度。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种区块链交互方法,其特征在于,包括:
通过接口平台的第一抽象接口接收应用层发送的对区块链进行操作的第一报文,其中,所述接口平台设置于应用层和区块链之间;所述接口平台设置有真实的区块链和伪连接区块链,其中,所述伪连接区块链为模拟实现区块链功能的功能模块;
通过接口平台的第二抽象接口从所述区块链获取第二报文;
通过接口平台将第一报文转化为预设数据结构,再将转化后的第一报文转化为所述区块链采用的数据格式;通过接口平台将第二报文转化为所述预设数据结构,再将转化后的第二报文转化为所述应用层采用的数据格式;
通过所述接口平台的第二抽象接口将转化格式后的第一报文发送给所述真实的区块链或所述伪连接区块链;所述第一报文被根据是否需要对区块链进行真实操作预先设置发送给真实的区块链还是发送给伪连接区块链,以实现真实的区块链与伪连接区块链之间的切换;
通过所述接口平台的第一抽象接口将转化格式后的第二报文发送给所述应用层;
第一抽象接口设置为多个,第二抽象接口设置为多个;所述区块链涉及多种连接方式,每种连接方式对应一个第二抽象接口;
采用Hyperledger Fabric Java SDK来开发接口平台的第一抽象接口和第二抽象接口,其中,SDK,hyperledger fabric发布的适用于特定语言的开发工具包,使用SDK可以使应用层和区块链网络方便的进行交互,SDK封装了与区块链网络交互的底层机制,提供上层调用接口;
所述接口平台不做具体的业务处理,只做应用层和区块链之间双向的报文转发,使得避免应用层和区块链直接进行连接、交互,应用层不需要关心使用区块链的细节,使得应用层与区块链之间解耦。
2.如权利要求1所述的区块链交互方法,其特征在于,还包括:
所述接口平台的第二抽象接口包括监听抽象接口,通过所述监听抽象接口监听获取区块链的新块生成的报文;
通过接口平台将新块生成的报文解析拆分为预设数据结构,并将解析拆分后的报文转化为所述应用层采用的数据格式;
通过所述接口平台的第一抽象接口将转化格式后的新块生成的报文发送给所述应用层。
3.如权利要求1所述的区块链交互方法,其特征在于,还包括:
所述接口平台的第二抽象接口包括通信抽象接口,通过所述通信抽象接口获取区块链的响应报文;
通过接口平台将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式;
通过所述接口平台的第一抽象接口将转化格式后的响应报文发送给所述应用层。
4.如权利要求3所述的区块链交互方法,其特征在于,当响应报文为异常报文时,通过接口平台将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式的业务语言;
通过所述接口平台的第一抽象接口将所述业务语言发送给所述应用层。
5.如权利要求1至4中任一项所述的区块链交互方法,其特征在于,还包括:
所述接口平台设置有缓存,所述缓存用于存储所述应用层的基础数据,所述基础数据包括所述应用层中业务机构的相关信息;
根据接收的报文,在所述缓存中查询所述报文包含的基础数据,并将查询到的基础数据与所述报文包含的基础数据进行匹配,通过所述第一抽象接口或所述第二抽象接口将匹配成功的结果反馈给所述报文的发送方;如果在所述缓存中未查询到数据,则通过所述第二抽象接口将转化格式后的所述报文发送给所述区块链,通过所述第二抽象接口获取所述区块链查询到的基础数据,将所述区块链查询到的基础数据与所述报文包含的基础数据进行匹配,通过所述第一抽象接口或所述第二抽象接口将匹配成功的结果反馈给所述报文的发送方,其中,所述报文包括所述第一报文和所述第二报文。
6.如权利要求1至4中任一项所述的区块链交互方法,其特征在于,所述预设数据结构包括固定数据和可扩展字段数据。
7.一种区块链交互装置,其特征在于,所述区块链交互装置设置于应用层和区块链之间,所述区块链交互装置包括:
第一抽象接口模块,用于接收应用层发送的对区块链进行操作的第一报文,其中,所述区块链交互装置设置于应用层和区块链之间;所述区块链交互装置设置有真实的区块链和伪连接区块链,其中,所述伪连接区块链为模拟实现区块链功能的功能模块;所述区块链交互装置为接口平台;
第二抽象接口模块,用于从所述区块链获取第二报文;
报文处理模块,用于将第一报文转化为预设数据结构,再将转化后的第一报文转化为所述区块链采用的数据格式;将第二报文转化为所述预设数据结构,再将转化后的第二报文转化为所述应用层采用的数据格式;
第二抽象接口模块的操作抽象接口单元,用于将转化格式后的第一报文发送给所述真实的区块链或所述伪连接区块链;所述第一报文被根据是否需要对区块链进行真实操作预先设置发送给真实的区块链还是发送给伪连接区块链,以实现真实的区块链与伪连接区块链之间的切换;
第一抽象接口模块,还用于将转化格式后的第二报文发送给所述应用层;
第一抽象接口设置为多个,第二抽象接口设置为多个;所述区块链涉及多种连接方式,每种连接方式对应一个第二抽象接口;
采用Hyperledger Fabric Java SDK来开发接口平台的第一抽象接口和第二抽象接口,其中,SDK,hyperledger fabric发布的适用于特定语言的开发工具包,使用SDK可以使应用和区块链网络方便的进行交互,SDK封装了与区块链网络交互的底层机制,提供上层调用接口;
所述接口平台不做具体的业务处理,只做应用层和区块链之间双向的报文转发,使得避免应用层和区块链直接进行连接、交互,应用层不需要关心使用区块链的细节,使得应用层与区块链之间解耦。
8.如权利要求7所述的区块链交互装置,其特征在于,所述第二抽象接口模块,包括:
监听抽象接口单元,用于监听获取区块链的新块生成的报文;
所述报文处理模块,还用于将新块生成的报文解析拆分为预设数据结构,并将解析拆分后的报文转化为所述应用层采用的数据格式;
第一抽象接口模块,用于将转化格式后的新块生成的报文发送给所述应用层。
9.如权利要求7所述的区块链交互装置,其特征在于,所述第二抽象接口模块,还包括:
通信抽象接口单元,用于获取区块链的响应报文;
所述报文处理模块,还用于将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式;
所述第一抽象接口模块,用于将转化格式后的响应报文发送给所述应用层。
10.如权利要求9所述的区块链交互装置,其特征在于,
所述报文处理模块,还用于当响应报文为异常报文时,将响应报文转化为预设数据结构,并将转化后的响应报文转化为所述应用层采用的数据格式的业务语言;
所述第一抽象接口模块,还用于将所述业务语言发送给所述应用层。
11.如权利要求7至10中任一项所述的区块链交互装置,其特征在于,还包括:
缓存模块,用于存储所述应用层的基础数据,所述基础数据包括所述应用层中业务机构的相关信息;
查询模块,用于根据接收的报文,在所述缓存中查询所述报文包含的基础数据,并将查询到的基础数据与所述报文包含的基础数据进行匹配,通过所述第一抽象接口模块或所述第二抽象接口模块将匹配成功的结果反馈给所述报文的发送方;如果在所述缓存中未查询到数据,则通过所述第二抽象接口将转化格式后的所述报文发送给所述区块链,通过所述第二抽象接口获取所述区块链查询到的基础数据,将所述区块链查询到的基础数据与所述报文包含的基础数据进行匹配,通过所述第一抽象接口模块或所述第二抽象接口模块将匹配成功的结果反馈给所述报文的发送方,其中,所述报文包括所述第一报文和所述第二报文。
12.如权利要求7至10中任一项所述的区块链交互装置,其特征在于,所述预设数据结构包括固定数据和可扩展字段数据。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的区块链交互方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6中任一项所述的区块链交互方法的计算机程序。
CN201910889901.3A 2019-09-20 2019-09-20 区块链交互方法、装置、计算机设备及可读存储介质 Active CN110620819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910889901.3A CN110620819B (zh) 2019-09-20 2019-09-20 区块链交互方法、装置、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910889901.3A CN110620819B (zh) 2019-09-20 2019-09-20 区块链交互方法、装置、计算机设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110620819A CN110620819A (zh) 2019-12-27
CN110620819B true CN110620819B (zh) 2022-07-12

Family

ID=68923722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910889901.3A Active CN110620819B (zh) 2019-09-20 2019-09-20 区块链交互方法、装置、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110620819B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901384B (zh) * 2020-06-29 2023-10-24 成都质数斯达克科技有限公司 处理报文的系统、方法、电子设备以及可读存储介质
CN113220665B (zh) * 2021-05-20 2023-10-20 成都质数斯达克科技有限公司 一种区块链数据归档方法、装置、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002349A (zh) * 2018-06-25 2018-12-14 百度在线网络技术(北京)有限公司 应用程序交互方法、实现方法、装置、设备和介质
CN109634810A (zh) * 2018-12-10 2019-04-16 广东亿迅科技有限公司 基于Fabric的区块链业务平台和运行方法
CN109872251A (zh) * 2019-02-20 2019-06-11 上海理工大学 一种基于区块链技术的分布式能源交易通信平台、通信方法及通信平台的搭建方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170017954A1 (en) * 2015-07-14 2017-01-19 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
US11049104B2 (en) * 2017-04-05 2021-06-29 Samsung Sds Co., Ltd. Method of processing payment based on blockchain and apparatus thereof
CN107657059A (zh) * 2017-10-20 2018-02-02 中国银行股份有限公司 基于区块链应用系统的数据同步方法、中间件及系统
US20210004774A1 (en) * 2017-11-02 2021-01-07 Tata Consultancy Services Limited Method and system providing interoperability between blockchain ecosystems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002349A (zh) * 2018-06-25 2018-12-14 百度在线网络技术(北京)有限公司 应用程序交互方法、实现方法、装置、设备和介质
CN109634810A (zh) * 2018-12-10 2019-04-16 广东亿迅科技有限公司 基于Fabric的区块链业务平台和运行方法
CN109872251A (zh) * 2019-02-20 2019-06-11 上海理工大学 一种基于区块链技术的分布式能源交易通信平台、通信方法及通信平台的搭建方法

Also Published As

Publication number Publication date
CN110620819A (zh) 2019-12-27

Similar Documents

Publication Publication Date Title
CN110351283B (zh) 一种数据传输方法、装置、设备及存储介质
CN108881111B (zh) 一种实现多租户系统的方法及装置
CN110300082B (zh) 一种接口生成方法、装置及存储介质
CN106339237B (zh) 针对JavaEE领域WEB应用的插件加载框架及方法
CN110620819B (zh) 区块链交互方法、装置、计算机设备及可读存储介质
CN109104368B (zh) 一种请求连接方法、装置、服务器及计算机可读存储介质
CN108446105B (zh) 一种轻量级API Server开发框架及开发方法
CN112511591A (zh) 一种医院接口数据交互的实现方法、装置、设备和介质
CN113127108A (zh) 业务请求的处理方法及装置、存储介质以及电子设备
CN114448686A (zh) 一种基于微服务的跨网络通信装置与方法
CN112948306A (zh) 扩展系统接口的方法和装置
CN113114794A (zh) 一种基于二次代理处理域名的方法及设备
WO2021093671A1 (zh) 任务处理方法、系统、装置、设备及计算机可读存储介质
CN112181681A (zh) 一种远程调用方法、装置、计算机设备及存储介质
US10067808B2 (en) Nondeterministic operation execution environment utilizing resource registry
CN112202605A (zh) 服务配置方法、装置、设备及存储介质
CN113127335A (zh) 一种系统测试的方法和装置
CN115934537A (zh) 接口测试工具生成方法、装置、设备、介质及产品
CN116708558A (zh) 全链路追踪系统代理方法、装置、计算机设备及存储介质
CN114880321A (zh) 一种业务预警方法和装置
CN110990280B (zh) 一种测试数据自动生成系统及方法
CN114327823A (zh) 微服务集群的资源调用方法、系统、终端及存储介质
CN114296985A (zh) 大规模微服务集群场景下的全局异常处理方法和平台
CN113342845A (zh) 数据同步方法、计算机设备及可读存储介质
CN111488391A (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