一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的信息推送方法、装置、设备、介质和程序产品与流程

2021-11-03 12:48:00 来源:中国专利 TAG:


1.本公开涉及区块链领域或金融领域等,更具体地涉及一种基于区块链的信息推送方法、装置、设备、介质和程序产品。


背景技术:

2.由于区块链技术的设计理念,导致区块链是一个确定性的、封闭的系统环境,具有较高的安全性和可靠性。通常一个区块链系统无法与链下业务系统建立联系,更无法向链下业务系统传输数据。相关技术中,链下业务系统要获取一个区块链系统的数据时,需要与区块链系统对接,然后主动查询区块链中的信息。
3.在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:
4.每个链下业务系统对接区块链系统的结构耦合度较高,且该种对接结构需要解析并处理获得区块链中所有区块数据,而每个链下业务系统想要获取的信息可能只有所有区块数据中的一部分,从而导致浪费了不必要的数据处理时间和系统资源。


技术实现要素:

5.鉴于上述问题,本公开提供了一种令每个链下业务系统与区块链系统进行解耦,且每个链下业务系统能够有针对性的获取目标信息的基于区块链的信息推送方法、装置、设备、介质和程序产品。
6.本公开实施例的一个方面提供了一种基于区块链的信息推送方法,包括:获取n个区块中每个区块的区块数据,其中,所述每个区块为所述区块链中指定区块高度的区块;基于预设条件从至少一个所述区块数据中确定出目标信息,其中,所述预设条件包括至少一个目标智能合约的信息,所述目标信息包括通过至少一个目标智能合约处理并在所述区块链进行上链的数据;将所述目标信息推送至m个业务系统,其中,n和m分别为大于或等于1的整数。
7.根据本公开的实施例,所述m个业务系统包括第一业务系统,所述获取n个区块中每个区块的区块数据包括:基于所述第一业务系统的当前通知状态,确定对应的监控块高区间,其中,所述指定区块高度属于所述监控块高区间;遍历所述监控块高区间中的每个区块来获取所述区块数据。
8.根据本公开的实施例,所述基于所述第一业务系统的当前通知状态,确定监控块高区间包括:在所述当前通知状态为非指定状态的情况下,若为首次通知,则将所述区块链的起始区块的区块高度作为所述监控块高区间的最小块高,将所述区块链的最新区块的区块高度作为所述监控块高区间的最大块高;或若为非首次通知,则将未遍历过的区块的最小区块高度作为所述监控块高区间的最小块高,将所述最新区块的区块高度作为所述监控块高区间的最大块高。
9.根据本公开的实施例,所述m个业务系统中第一业务系统的当前通知状态,确定监控块高区间包括:在当前通知状态为指定通知状态的情况下,若指定起始块高小于所述区
块链的最新区块的区块高度,则将所述指定起始块高作为所述监控块高区间的最小块高,将指定结束块高作为所述监控块高区间的最大块高;或若指定起始块高大于所述最新区块的区块高度,则将未遍历过的区块的最小区块高度作为所述监控块高区间的最小块高,将所述区块链的最新区块的区块高度作为所述监控块高区间的最大块高。
10.根据本公开的实施例,区块链系统包括所述区块链,所述通过至少一个目标智能合约处理并在所述区块链进行上链包括:通过所述区块链系统的第一节点接收用户的交易信息;若所述交易信息为特定交易信息,令所述第一节点调用所述至少一个目标智能合约处理所述特定交易信息;将处理获得的所述目标信息在所述区块链进行上链。
11.根据本公开的实施例,监听事件包括所述目标信息,所述至少一个目标智能合约处理所述特定交易信息包括:所述至少一个目标智能合约基于所述特定交易信息生成对应的所述监听事件。
12.根据本公开的实施例,所述监听事件包括监听标识,所述基于预设条件从至少一个所述区块数据中确定出目标信息包括:从所述区块数据中搜索所述监听标识;基于搜索到的所述监听标识,获取与所述监听标识相关联的所述目标信息。
13.根据本公开的实施例,所述方法还包括设置配置文件,具体包括:在所述配置文件中设置所述区块链的访问信息,以通过所述访问信息获取所述区块数据;和/或在所述配置文件中设置所述m个业务系统中每个业务系统的地址信息;和/或在所述配置文件中设置所述预设条件,其中,包括:设置所述至少一个目标智能合约的名称,以及所述至少一个目标智能合约生成的监听标识。
14.根据本公开的实施例,根据权利要求8所述的方法,其中,所述m个业务系统包括至少一个目标业务系统,所述将所述目标信息推送至m个业务系统包括:从所述目标信息中获取要通知的所述至少一个目标业务系统;从所述配置文件中获取所述至少一个目标业务系统中每个目标业务系统的地址信息;基于所述地址信息和所述目标信息,对所述每个目标业务系统进行通知。
15.根据本公开的实施例,在所述对所述至少一个目标业务系统进行通知之后,还包括:循环执行以下操作,直至全部通知成功,接收所述每个目标业务系统返回的响应信息;在存在一个或多个所述响应信息表征通知失败的情况下,在第一文件中记录所述目标信息,以及通知失败的目标业务系统的地址信息;基于所述目标信息和所述地址信息,定时重新发送通知。
16.根据本公开的实施例,在所述设置配置文件之后,所述方法还包括:通过第一接口接收所述配置文件的更新内容;基于所述更新内容动态更新所述配置文件。
17.本公开实施例的另一方面提供了一种基于区块链的信息推送装置,包括获取模块、确定模块和通知模块。获取模块用于获取n个区块中每个区块的区块数据,其中,所述每个区块为所述区块链中指定区块高度的区块。所述确定模块用于基于预设条件从至少一个所述区块数据中确定出目标信息,其中,所述预设条件包括至少一个目标智能合约的信息,所述目标信息包括通过至少一个目标智能合约处理并在所述区块链进行上链的数据。所述通知模块用于将所述目标信息推送至m个业务系统,其中,n和m分别为大于或等于1的整数。
18.本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行
时,使得一个或多个处理器执行如上所述的方法。
19.本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
20.本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
21.上述一个或多个实施例具有如下优点或有益效果:可以至少部分地解决链下业务系统与区块链系统耦合度较高,浪费数据处理时间和系统资源的问题,通过独立的通知端获取n个区块中每个区块的区块数据,并基于预设条件从区块数据中确定目标信息,能够根据目标信息有针对性的通知到m个业务系统,从而解耦了区块链系统和链下业务系统,节省了每个链下业务系统处理区块数据的时间和系统资源,提高了每个链下业务系统获取目标信息的效率。
附图说明
22.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
23.图1示意性示出了根据本公开实施例的适于实现基于区块链的信息推送方法的应用场景图;
24.图2示意性示出了根据本公开实施例的基于区块链的信息推送方法的流程图;
25.图3示意性示出了根据本公开实施例的获取n个区块中每个区块的区块数据的流程图;
26.图4示意性示出了根据本公开实施例的确定监控块高区间的流程图;
27.图5示意性示出了根据本公开实施例的获得目标信息并上链的流程图;
28.图6示意性示出了根据本公开实施例的确定出目标信息的流程图;
29.图7示意性示出了根据本公开另一实施例的基于区块链的信息推送方法的流程图;
30.图8示意性示出了根据本公开实施例的更新配置文件的流程图;
31.图9示意性示出了根据本公开实施例的将目标信息推送至m个业务系统的流程图;
32.图10示意性示出了根据本公开实施例的定时重新发送通知的流程图;
33.图11示意性示出了根据本公开的又一实施例的基于区块链的信息推送方法的流程图;
34.图12示意性示出了根据本公开实施例的发送通知的流程图;
35.图13示意性示出了根据本公开实施例的基于区块链的信息推送装置的结构框图;以及
36.图14示意性示出了根据本公开实施例的适于实现基于区块链的信息推送方法的电子设备的方框图。
具体实施方式
37.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细
节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
38.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并小排除存在或添加一个或多个其他特征、步骤、操作或部件。
39.相关技术中,链下业务系统为了获得区块链系统中的数据,需要与区块链系统对接并主动查询。首先,在对接过程中,需要每个链下业务系统的技术人员具有较高的区块链技术水平,例如熟练掌握区块链数据结构,这样加大了链下业务系统对接的难度。其次,每个链下业务系统直接对接区块链系统,若区块链系统进行了技术或数据上的改进,每个链下业务系统都需要适应性更改,导致耦合度太高。
40.本公开的实施例提供了一种基于区块链的信息推送方法、装置、设备、介质和程序产品。该基于区块链的信息推送方法包括:获取n个区块中每个区块的区块数据,其中,每个区块为区块链中指定区块高度的区块。基于预设条件从至少一个区块数据中确定出目标信息,其中,预设条件包括至少一个目标智能合约的信息,目标信息包括通过至少一个目标智能合约处理并在区块链进行上链的数据。将目标信息推送至m个业务系统,其中,n和m分别为大于或等于1的整数。
41.根据本公开的实施例,通过独立的通知端获取n个区块中每个区块的区块数据,并基于预设条件从区块数据中确定目标信息,能够根据目标信息有针对性的通知到m个业务系统,从而解耦了区块链系统和链下业务系统,节省了每个链下业务系统处理区块数据的时间和系统资源,提高了每个链下业务系统获取目标信息的效率。另外,可以使链下业务系统的技术人员无需了解区块链技术就可以完成与区块链系统的对接,降低了对接难度。
42.需要说明的是,本公开实施例提供的基于区块链的信息推送方法、装置、设备、介质和程序产品可用于区块链技术在数据传输、交互相关方面,也可用于除计区块链技术之外的多种领域,如金融领域等。本公开实施例提供的基于区块链的信息推送方法、装置、设备、介质和程序产品的应用领域不做限定。
43.在本公开的技术方案中,所涉及的区块链系统的数据或区块链中区块数据的收集、存储、使用、加工、传输、提供或应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
44.图1示意性示出了根据本公开实施例的适于实现基于区块链的信息推送方法的应用场景图。
45.如图1所示,根据该实施例的应用场景100可以包括区块链系统110,终端设备121、122、123,网络131、132、133,通知服务器140和m个业务服务器(例如第一服务器1501、第二服务器1502......第m服务器150m)。
46.区块链系统110可以包括节点111、112、113、114和115等,以及区块链116。区块链系统110可以允许用户(例如金融机构、客户或业务人员等)接入作为一个节点。节点111、112、113、114和115等可以形成区块链网络,例如点对点(peer to peer,p2p)网络。区块链116可以包括区块a、b、c和d等。每个区块可以包括时间戳、前一区块的加密哈希值以及当前区块的哈希值和区块数据,区块数据可以是包括用户的交易数据,例如用户办理付款、转
账、收款、定期理财、货币兑换等业务的交易信息。其中,节点111、112、113、114和115等可以设置在不同的服务器中,并各自具有节点客户端,通过节点客户端可以展示合约调用、事件推送、数据处理、账户状态变化等过程,相关技术中,节点客户端属于区块链系统的一部分,其无法与链下装置进行数据交互。
47.用户可以使用终端设备121、122、123通过网络131与通知服务器140交互,以接收或发送消息等。终端设备121、122、123上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。终端设备121、122、123可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
48.网络131用以在终端设备121、122、123与通知服务器140之间提供通信链路的介质。网络132用以在节点111与通知服务器140之间提供通信链路的介质。网络133用以在通知服务器140和m个业务服务器中的任一服务器之间提供通信链路的介质。网络131、132、133可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
49.通知服务器140中可以部署通知端,通知端可以利用节点111的ip地址和端口,通过监听节点111来获取区块链116中的区块数据。通知服务器140可以是提供各种服务的服务器,例如对用户利用终端设备121、122、123所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。在一些实施例中,可将第一服务器1501、第二服务器1502......第m服务器150m中的任一服务器替代通知服务器140,进行上述操作。
50.m个业务服务器可以与通知服务器140的硬件相同或者不相同,在第一服务器1501、第二服务器1502......第m服务器150m中可以分别部署有第一链下业务系统、第二链下业务系统......第m链下业务系统。其中,链下业务系统指的是独立于区块链系统110的链下系统,其可以包括其他的区块链系统,或非区块链系统。
51.在本公开的实施例中,区块链系统中的各个节点可以基于提前设置的多个智能合约进行交易信息的核验以及上链等操作。智能合约例如是数字化合约、智能化合约,是将合同合约用代码构建的计算协议。当外界条件发生变化满足预定条款时,该智能合约将自动执行。智能合约的副本可以保存在区块链116中,节点111、112、113、114和115等都可以存储有区块链116,因此,每个节点都可以访问并调用智能合约。其中,上链是指数据根据区块链系统的规则被打包在一个区块中,该区块成为一个新的区块并链接到前面的区块,成为区块链上不可篡改的数据。
52.需要说明的是,本公开实施例所提供的基于区块链的信息推送方法一般可以由通知服务器140执行。相应地,本公开实施例所提供的基于区块链的信息推送装置一般可以设置于通知服务器140中。本公开实施例所提供的基于区块链的信息推送方法也可以由不同于通知服务器140且能够与终端设备121、122、123和/或通知服务器140通信的服务器或服务器集群执行。相应地,本公开实施例所提供的基于区块链的信息推送装置也可以设置于不同于通知服务器140且能够与终端设备121、122、123和/或通知服务器140通信的服务器或服务器集群中。
53.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需
要,可以具有任意数目的终端设备、网络和服务器。
54.以下将基于图1描述的场景,通过图2~图12对本公开实施例的基于区块链的信息推送方法进行详细描述。
55.图2示意性示出了根据本公开实施例的基于区块链的信息推送方法的流程图。
56.如图2所示,该实施例的基于区块链的信息推送方法包括操作s210~操作s230。
57.在操作s210,获取n个区块中每个区块的区块数据,其中,每个区块为区块链中指定区块高度的区块。
58.根据本公开的实施例,参照图1,通知服务器140可以通过节点111的ip地址和端口信息,获取区块链116中任一区块的数据。其中,指定区块高度可以为通过终端设备设置每个业务系统想要获取的区块高度。
59.在操作s220,基于预设条件从至少一个区块数据中确定出目标信息,其中,预设条件包括至少一个目标智能合约的信息,目标信息包括通过至少一个目标智能合约处理并在区块链进行上链的数据。
60.根据本公开的实施例,预设条件可以包括至少一个目标智能合约的名称,或至少一个目标智能合约处理信息过程中生成的监听标识。在获取到区块数据后,可以从多个交易信息中基于预设条件搜索对应的监听标识(如名称字段或监听事件字段)。
61.在操作s230,将目标信息推送至m个业务系统,其中,n和m分别为大于或等于1的整数。
62.根据本公开的实施例,可以将目标信息中的所有内容或部分内容发送到m个业务系统中的一个或多个业务系统。这里的业务系统即为链下业务系统。
63.例如在资金监管的场景中,其中,节点112为用户节点,节点113为a企业节点,节点114为b银行节点,节点115为c银行节点。业务服务器1501可以部署有b银行的链下业务系统。业务服务器1502可以部署有c银行的链下业务系统。
64.首先,用户通过节点112发送一笔使用b银行的银行账户的付款交易(仅为示例)。
65.然后,节点112将付款交易发送到区块链网络。
66.接着,相应节点(如共识节点)获取到付款交易后调用一个目标智能合约进行处理,例如进行验证。处理完成后进行上链操作,例如写入到d区块中。在一些实施例中,可以由节点112调用一个目标智能合约进行处理后再发送到区块链网络。
67.接着,通知服务器140中的通知端定时轮询区块链116,从区块链116中获取n个区块中每个区块的区块数据。
68.接着,例如通知端获取到d区块的区块数据,其中包括多笔交易的数据。每笔交易的数据可以包括用户账号、业务名称、金额、银行等信息。其中,上述付款交易对应的付款交易信息中还可以包括目标智能合约自动生成的监听标识,该监听标识包括事先编程目标智能合约时与通知端约定好的相关字段。
69.接着,通知端判断每笔交易信息是否需要通知。例如通知端获取到付款交易信息,通过监听标识中的字段确定该笔付款交易信息需要通知。在本公开的一些实施例中,监听标识可以包括该笔付款交易的摘要信息,以及调用的目标智能合约名称等字段。
70.最后,通知端从监听标识或付款交易信息中获得涉及b银行。则将该笔付款交易信息发送到业务服务器1501中b银行的链下业务系统,以执行该笔付款交易。
71.根据本公开的实施例,通过独立的通知端获取n个区块中每个区块的区块数据,并基于预设条件从区块数据中确定目标信息,能够根据目标信息有针对性的通知到m个业务系统,从而解耦了区块链系统和链下业务系统,节省了每个链下业务系统处理区块数据的时间和系统资源,提高了每个链下业务系统获取目标信息的效率。另外,可以使链下业务系统的技术人员无需了解区块链技术就可以完成与区块链系统的对接,降低了对接难度。
72.图3示意性示出了根据本公开实施例的操作s210中获取n个区块中每个区块的区块数据的流程图。
73.如图3所示,操作s210中获取n个区块中每个区块的区块数据可以包括操作s310~操作s320。其中,m个业务系统包括第一业务系统。
74.在操作s310,基于第一业务系统的当前通知状态,确定对应的监控块高区间,其中,指定区块高度属于监控块高区间。
75.根据本公开的实施例,每个业务系统可以与通知端进行数据交互,通知端以确定每个业务系统的当前通知状态,并确定想要获得目标信息的种类、时间,或者想要获取的特定区块的信息。其中,第一业务系统可以为m个业务系统中的任一个业务系统。
76.在操作s320,遍历监控块高区间中的每个区块来获取区块数据。
77.根据本公开的实施例,可以提前设定遍历的间隔时间、遍历顺序(如顺序遍历、随机遍历、偶数/奇数遍历等)、解析规则(如区块的区块数据结构)、预设条件、监听字段等。
78.利用本公开实施例的信息推送方法,每个业务系统可以根据自身需求制定获取通知信息的策略,更有针对性的获取到目标信息。各个业务系统的通知可以由通知端执行,从而避免了相关技术中各个业务系统进行区块数据处理而浪费时间和资源。
79.图4示意性示出了根据本公开实施例的操作s310中确定监控块高区间的流程图。
80.如图4所示,在操作s310基于第一业务系统的当前通知状态,确定对应的监控块高区间可以包括操作s410~操作s470。
81.在操作s410,判断第一业务系统的当前通知状态是否为指定状态。若否,则执行操作s420。若是,则执行操作s450。
82.在操作s420,判断是否为首次通知第一业务系统。若否,则执行操作s440。若是,则执行操作s430。
83.在操作s430,若为首次通知,则将区块链的起始区块的区块高度作为监控块高区间的最小块高,将区块链的最新区块的区块高度作为监控块高区间的最大块高。
84.在操作s440,若为非首次通知,则将未遍历过的区块的最小区块高度作为监控块高区间的最小块高,将最新区块的区块高度作为监控块高区间的最大块高。
85.根据本公开的实施例,若第一业务系统并未指定如何进行通知。那么可以按照区块链中区块的顺序依次获取区块数据,将相应的目标信息进行通知。其中,块高为区块高度。
86.参见图1,若a区块为区块链116的起始区块,其区块高度为0001,依次类推,d区块为区块链116的最新区块,其区块高度为0004(仅为示例)。若为首次通知,则监控块高区间为0001~0004。若为非首次通知,且已遍历过a区块,b区块具有未遍历过的区块的最小区块高度0002,则监控块高区间为0002~0004。
87.利用本公开的实施例的信息推送方法,无论是首次通知还是非首次通知,可以通
过确定好的监控区块区间保证未遍历过的区块都能够被获取区块数据,以便将每条目标信息通知到对应的业务系统。
88.在操作s450,判断指定起始块高是否小于区块链中最新区块的区块高度。若否,则执行操作s470。若是,则执行操作s460。
89.在操作s460,若指定起始块高小于区块链的最新区块的区块高度,则将指定起始块高作为监控块高区间的最小块高,将指定结束块高作为监控块高区间的最大块高。
90.根据本公开的实施例,例如第一业务系统可以根据需求获取指定范围内的区块的相关信息。参照图1,第一业务系统指定的监控块高区间为0001~0003(仅为示例)。此时区块高度0001为指定起始块高,0003为指定结束块高。在本公开的一些实施例中,若仅有指定起始块高,则指定结束块高为最新区块的区块高度。若指定结束块高大于最新区块的区块高度,则通过定时轮询的方式直至获取到指定结束块高对应的区块。
91.在操作s470,若指定起始块高大于最新区块的区块高度,则将未遍历过的区块的最小区块高度作为监控块高区间的最小块高,将区块链的最新区块的区块高度作为监控块高区间的最大块高。
92.根据本公开的实施例,参照图1,若指定起始块高为0008,此时区块链116中不存在对应该区块高度的区块。那么可以根据未遍历过的区块确定监控块高区间。
93.根据本公开的实施例,若未查到遍历完的块高记录,则区块链116中的所有区块皆是未遍历过的区块。此时可以查询第一业务系统的通知系统,以确定是否是首次指定或通知。若为非首次使用通知服务,则将区块链116中d区块(即最新区块)的区块高度0004作为监控块高区间的最小块高,最大块高暂不设定。
94.利用本公开的实施例的信息推送方法,可以根据每个业务系统的需求灵活提供通知服务,使得通知信息能够更有针对性,避免对区块链中的所有区块数据进行处理,提高了通知效率。
95.图5示意性示出了根据本公开实施例的操作s220中获得目标信息并上链的流程图。
96.如图5所示,该实施例的操作s220中通过至少一个目标智能合约处理并在区块链进行上链包括操作s510~操作s530。
97.在操作s510,通过区块链系统的第一节点接收用户的交易信息。
98.在操作s520,若交易信息为特定交易信息,令第一节点调用至少一个目标智能合约处理特定交易信息。
99.根据本公开的实施例,参照图1,用户可以通过节点112发送一笔使用b银行的银行账户的付款交易。其中,特定交易信息可以根据每个业务系统的需求制定,例如b银行的业务系统可以设置特定交易信息为付款交易或收款交易等信息。
100.在操作s530,将处理获得的目标信息在区块链进行上链。
101.根据本公开的实施例,监听事件包括目标信息,至少一个目标智能合约处理特定交易信息包括:至少一个目标智能合约基于特定交易信息生成监听事件。
102.根据本公开的实施例,通过目标智能合约生成的监听事件确定每个业务系统想要获取的信息,能够更有针对性的进行获取,并提高获取目标信息的效率。
103.图6示意性示出了根据本公开实施例的操作s220中确定出目标信息的流程图。
104.如图6所示,操作s220中基于预设条件从至少一个区块数据中确定出目标信息包括操作s610~操作s620。其中,所述监听事件包括监听标识。
105.在操作s610,从至少一个所述区块数据中搜索所述监听标识。
106.根据本公开的实施例,可以在编程目标智能合约时,设定该目标智能合约处理交易信息的种类,以此识别特定交易信息。并设定处理特定交易信息的逻辑,如生成监听事件、监听标识以及监听事件的数据结构。通知端可以根据上述数据结构(如特定字段)从各个区块的区块数据中搜索是否有监听标识。
107.在操作s620,基于搜索到的监听标识,获取与监听标识相关联的目标信息。
108.根据本公开的实施例,根据监听标识可以确定该笔特定交易信息是某个业务系统需要的。然后,可以根据监听标识获取到与之关联的特定交易信息,将其推送至对应的业务系统。
109.利用本公开实施例的信息推送方法,能够通过部署目标智能合约,通过监听标识快速确定目标信息,而无需对区块数据中所有的交易信息进行判断是否需要通知,从而提高了通知效率。
110.图7示意性示出了根据本公开另一实施例的基于区块链的信息推送方法的流程图。
111.如图7所示,该实施例的基于区块链的信息推送方法可以包括操作s210~操作s230。在操作s210之前,还可以操作s710。其中,操作s210~操作s230的内容可以参照上述图1的相关描述,在此不做赘述。
112.在操作s710,设置配置文件。
113.根据本公开的实施例,在配置文件中设置区块链的访问信息,以通过访问信息获取区块数据。其中,参考图1,访问信息可以包括节点111的ip地址和端口信息。
114.根据本公开的实施例,在配置文件中设置m个业务系统中每个业务系统的地址信息。其中,地址信息可以包括每个业务系统的url(uniform resource locator)地址。
115.根据本公开的实施例,在配置文件中设置预设条件,其中,包括:设置至少一个目标智能合约的名称,以及至少一个目标智能合约生成的监听标识的数据结构。
116.其中,ip地址端口信息、智能合约名称和业务系统的url在配置文件中以数组形式存在,能够令通知端同时服务多个业务系统。用户可以通过终端设备121、122、123设置配置文件中的内容。
117.图8示意性示出了根据本公开实施例的更新配置文件的流程图。
118.如图8所示,该实施例的基于区块链的信息推送方法可以包括操作s810~操作s820。
119.在操作s810,通过第一接口接收配置文件的更新内容。
120.在操作s820,基于更新内容动态更新配置文件。
121.根据本公开的实施例,当监听的节点ip和端口、智能合约名称以及链下业务系统的url发生变化,则可以修改配置文件。具体地,在修改完配置文件之后,可以调用通知端暴露的配置更新的接口http://ip:8xxx/reload(仅为示例),就可以动态的更新配置信息,不用重启通知端。
122.图9示意性示出了根据本公开实施例的操作s230中将目标信息推送至m个业务系
统的流程图。
123.如图9所示,该实施例的基于区块链的信息推送方法可以包括操作s910~操作s930。
124.在操作s910,从目标信息中获取要通知的至少一个目标业务系统。
125.在操作s920,从配置文件中获取至少一个目标业务系统中每个目标业务系统的地址信息。
126.根据本公开的实施例,例如目标信息包括用户的付款信息,其中,包括用于付款的b银行账户。此时,通知端可以从配置文件中获取b银行的业务系统的地址信息,如url链接。
127.在操作s930,基于地址信息和目标信息,对每个目标业务系统进行通知。
128.根据本公开的实施例,b银行的业务系统可能并不需要目标信息中的全部内容,可以对目标信息进行处理获得通知信息,并按照b银行业务系统的地址进行推送。
129.图10示意性示出了根据本公开实施例的定时重新发送通知的流程图。
130.如图10所示,该实施例的定时重新发送通知包括循环执行操作s1010~操作s1040,直至全部通知成功。
131.在操作s1010,接收每个目标业务系统返回的响应信息。
132.根据本公开的实施例,例如用户的一笔交易可能涉及a企业、b银行和c银行。在向a企业、b银行和c银行各自的业务系统(即目标业务系统)发送通知后,接收a企业、b银行和c银行返回的响应信息。
133.在操作s1020,判断是否全部通知成功。若是,则结束本次通知操作。若否,在存在一个或多个响应信息表征通知失败的情况下,则执行操作s1030。
134.在操作s1030,在第一文件中记录目标信息,以及通知失败的目标业务系统的地址信息。
135.在操作s1040,基于目标信息和地址信息,定时重新发送通知。
136.如果b银行和c银行返回错误信息(即响应信息表征通知失败),则将本次通知涉及的智能合约名称、交易的id、目标信息、b银行url和c银行url等内容皆记录到record_error文件(即第一文件)中,定时重发。在一些实施例中,如果重发成功则删除记录文件record_error的相关通知内容。如果该url返回成功信息(响应信息表征通知成功),则将本次通知涉及的智能合约名称、交易的id、目标信息、b银行url和c银行url皆记录到record_success文件中,方便运维人员运维。
137.根据本公开的实施例,可以按每日日期进行递增保存日志(如record_error文件和record_success文件),样例为

202x

xx

xx_sys.log’。同时为防止日志数据过大,按日志保存策略保存历史日志,其中,日志保存测策略例如可以为删除规定日期之前的日志。
138.图11示意性示出了根据本公开的又一实施例的基于区块链的信息推送方法的流程图。
139.如图11所示,该实施例的基于区块链的信息推送方法包括操作s1110~操作s1170。
140.在操作s1110,获取监控块高区间。其中,可以参照操作s310,以及操作s410~操作s470等步骤,在此不做赘述。
141.在操作s1120,遍历监控块高区间中的每个区块,其中,可以参照操作s320等步骤,
在此不做赘述。其中,操作s1120可以包括操作s1130~操作s1160。
142.令i的初始值为监控块高区间的最小块高,循环执行操作s1130~操作s1160,直至遍历完监控块高区间中的每个区块。
143.在操作s1130,查询第i个区块的区块数据。
144.在操作s1140,判断第i个区块的区块数据中是否有目标信息。若是,则执行操作s1150。若否,则令i=i 1,然后执行操作s1130。其中,可以参照操作s220,以及操作s610~操作s620等步骤,以判断是否有目标信息,在此不做赘述。
145.在操作s1150,发送通知。其中,可以参照操作s230等步骤,在此不做赘述。
146.在操作s1160,判断是否遍历完全部区块。若是,则执行操作s1170。若否,则令i=i 1,然后执行操作s1130。
147.在操作s1170,更新遍历完的块高记录。根据每个业务系统的当前通知状态确定监控块高区间,例如在非指定状态中的非首次通知状态时,或在指定状态时指定起始块高大于最新区块的区块高度,则基于块高记录确定未遍历过的区块。
148.图12示意性示出了根据本公开实施例的操作s1150中发送通知的流程图。
149.如图12所示,该实施例的操作s1150中发送通知包括操作s1210~操作s1270。下面以第i个区块为例,详细描述具体通知流程。
150.在操作s1210,根据目标信息从配置文件中获取目标业务系统的地址信息。其中,可以参照操作s910~操作s920等步骤,在此不做赘述。
151.在操作s1220,基于目标信息和地址信息发送通知。其中,可以参照操作s930等步骤,在此不做赘述。该目标信息可以对应第i个区块中某个交易信息。
152.在操作s1230,判断是否通知成功。若是,则执行操作s1250.若否,则执行操作s1240。其中,可以参照操作s1010~操作s1020等步骤,在此不做赘述。
153.在操作s1240,通知内容写入第一文件,形成失败记录。然后定时执行操作s1220,此时根据失败记录中的目标信息和地址信息发送通知。其中,失败记录可以包括本次通知涉及的智能合约名称、交易的id、目标信息、通知失败的目标业务系统的地址信息等,可以参照操作s1010。
154.在操作s1250,记录成功日志。
155.在操作s1260,标记该目标信息已经成功发送。
156.在操作s1270,判断第i个区块中的目标信息是否通知完成。若是,则结束本次循环。若否,则执行操作s1210。由于一个区块中包括多个交易的数据,可能有多个交易的数据皆包括目标信息,要将每个目标信息通知到m个业务系统。
157.虽然上文以特定的顺序描述了方法的各个操作,然而本公开的实施例不限于此,上述操作可以根据需要以其他顺序执行。例如当前目标信息在操作s1240中形成失败记录后定时重发的循环操作,可以与操作s1270后继续通知下一个目标信息的操作异步执行,互不影响。
158.基于上述基于区块链的信息推送方法,本公开还提供了一种基于区块链的信息推送装置。以下将结合图13对该装置进行详细描述。
159.图13示意性示出了根据本公开实施例的基于区块链的信息推送装置的结构框图。
160.如图13所示,该实施例的基于区块链的信息推送装置1300包括获取模块1310、确
定模块1320和通知模块1330。
161.获取模块1310例如可以执行操作s210,用于获取n个区块中每个区块的区块数据,其中,每个区块为区块链中指定区块高度的区块。
162.根据本公开的实施例,获取模块1310例如还可以执行操作s310~操作s320。
163.根据本公开的实施例,通知装置1300还可以包括块高区间模块。块高区间模块可以用于执行操作s410~操作s470。
164.确定模块1320例如可以执行操作s220,用于基于预设条件从至少一个区块数据中确定出目标信息,其中,预设条件包括至少一个目标智能合约的信息,目标信息包括通过至少一个目标智能合约处理并在区块链进行上链的数据。
165.根据本公开的实施例,确定模块1320例如还可以执行操作s510~操作s530。在一些实施例中,确定模块1320例如还可以执行操作s610~操作s620。
166.通知模块1330例如可以执行操作s230,用于将目标信息推送至m个业务系统,其中,n和m分别为大于或等于1的整数。
167.根据本公开的实施例,通知模块1330例如还可以执行操作s910~操作s930,以及操作s1010~操作s1040。
168.根据本公开的实施例,通知装置1300还可以包括配置文件模块,配置文件模块例如可以执行操作s710、操作s810~操作s820。
169.根据本公开的实施例,获取模块1310、确定模块1320和通知模块1330中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块1310、确定模块1320和通知模块1330中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块1310、确定模块1320和通知模块1330中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
170.图14示意性示出了根据本公开实施例的适于实现基于区块链的信息推送方法的电子设备的方框图。
171.如图14所示,根据本公开实施例的电子设备1400包括处理器1401,其可以根据存储在只读存储器(rom)1402中的程序或者从存储部分1408加载到随机访问存储器(ram)1403中的程序而执行各种适当的动作和处理。处理器1401例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器1401还可以包括用于缓存用途的板载存储器。处理器1401可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
172.在ram 1403中,存储有电子设备1400操作所需的各种程序和数据。处理器1401、rom 1402以及ram 1403通过总线1404彼此相连。处理器1401通过执行rom 1402和/或ram 1403中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 1402和ram 1403以外的一个或多个存储器中。处理器1401也可以通过执行
存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
173.根据本公开的实施例,电子设备1400还可以包括输入/输出(i/o)接口1405,输入/输出(i/o)接口1405也连接至总线1404。电子设备1400还可以包括连接至i/o接口1405的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至i/o接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。
174.本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
175.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 1402和/或ram 1403和/或rom 1402和ram 1403以外的一个或多个存储器。
176.本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现根据本公开实施例的方法。
177.在该计算机程序被处理器1401执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
178.在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1409被下载和安装,和/或从可拆卸介质1411被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
179.在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被处理器1401执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
180.根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备
上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
181.以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献