区块链数据授权方法、电子装置及计算机可读存储介质与流程

文档序号:21103220发布日期:2020-06-16 21:01阅读:201来源:国知局
区块链数据授权方法、电子装置及计算机可读存储介质与流程

本发明涉及区块链技术领域,尤其涉及一种区块链数据授权方法、电子装置及计算机可读存储介质。



背景技术:

随着区块链技术的发展普及,利用区块链可溯源、不可篡改等特性,可以解决诸多场景下的难题。同时,由于数据存储在区块链上,对于企业数据的隐私性和安全性提出了更高的要求。一方面,需要通过数据加解密算法保证企业各自链上数据的安全性;另一方面,对于企业间的数据访问,需要提供一种数据授权方案。

传统的数据授权方案仅仅是授权固定业务模块固定数据给固定企业查看,对于新增的业务模块需要二次开发,并且对于不断增长的业务数据以及不断加入链上联盟的企业数据,每次新增数据及新增企业都要做数据授权。这种授权方式一方面频繁操作容易出错,另一方面运营需要做大量反复操作。另外,授权的及时性也无法保障。



技术实现要素:

有鉴于此,本发明提出一种区块链数据授权方法、电子装置及计算机可读存储介质,以解决至少一个上述技术问题。

首先,为实现上述目的,本发明提出一种区块链数据授权方法,该方法包括步骤:

配置需要在区块链上进行数据授权的企业数据的各个业务模块;

设置与各个所述业务模块的数据相应的数据授权规则,其中,所述数据授权规则包括静态授权和动态授权两种方式;

将所设置的数据授权规则同步至区块链网络;

定时或者在收到通知时从所述区块链网络中获取与当前节点相关的第一数据授权规则;及

根据所述第一数据授权规则从所述区块链网络中获取相应的授权数据。

可选地,该方法还包括步骤:

当有与当前节点相关的新数据加入所述区块链网络时,直接从所述区块链网络中获取所述新数据对应的第二数据授权规则;

判断所述新数据是否符合所述第二数据授权规则中的授权条件;

当所述新数据符合授权条件时,当前节点获取所述新数据中相应的授权数据。

可选地,该方法还包括步骤:

当授权过期或取消时,生成对应的失效授权规则;

将所述失效授权规则同步至区块链网络;

定期获取并执行与当前节点相关的失效授权规则,删除前置库索引,并更新链上授权历史记录。

可选地,所述静态授权包括固定数据授权、范围数据授权;所述动态授权包括动态数据授权、动态企业授权、动态数据及企业授权、动态多业务关联数据授权。

可选地,所述数据授权规则包括授权机构、被授权机构、授权业务、授权业务字段、是否关联授权、授权有效期、授权条件、是否动态授权,其中,当选择动态授权时,所述数据授权规则中的一个或多个项目设置为非固定值。

可选地,所述根据所述第一数据授权规则从所述区块链网络中获取相应的授权数据的步骤包括:

针对所述第一数据授权规则中的授权数据生成相应的sql,在前置库数据索引表中遍历所述授权数据对应的区块链chainid,从而根据所述chainid从所述区块链网络获取所述授权数据。

可选地,该方法还包括步骤:

若当前节点为新加入所述区块链网络的企业节点,则直接从所述区块链网络中获取与所述当前节点相关的第三数据授权规则,然后根据所述第三数据授权规则从所述区块链网络中获取相应的授权数据。

可选地,该方法还包括步骤:

将所述数据授权规则及授权执行历史记录、授权失效或取消记录,均保存在每个节点对应的前置库中。

此外,为实现上述目的,本发明还提供一种电子装置,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的区块链数据授权系统,所述区块链数据授权系统被所述处理器执行时实现如上述的区块链数据授权方法的步骤。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有区块链数据授权系统,所述区块链数据授权系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的区块链数据授权方法的步骤。

相较于现有技术,本发明所提出的区块链数据授权方法、电子装置及计算机可读存储介质,可以针对区块链上的数据进行业务模块和数据授权规则的配置,并同步至区块链网络各个节点,既支持固定授权方式,也支持动态数据和/或企业授权的方式。区块链上的每个节点可以从该区块链获取已配置好的数据授权规则并执行,从而获取相应的授权数据,尤其是在动态授权方式下,当有新数据或新企业加入区块链时,不需要重新配置数据授权规则,避免了大量反复操作,降低了错误率,保障了授权的及时性。

附图说明

图1是本发明电子装置一可选的硬件架构的示意图;

图2是本发明区块链数据授权系统第一实施例的程序模块示意图;

图3是本发明区块链数据授权系统第二实施例的程序模块示意图;

图4是本发明区块链数据授权系统第三实施例的程序模块示意图;

图5是本发明区块链数据授权方法第一实施例的流程示意图;

图6是本发明区块链数据授权方法第二实施例的流程示意图;

图7是本发明区块链数据授权方法第三实施例的流程示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明电子装置2一可选的硬件架构的示意图。

本实施例中,所述电子装置2可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-13的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,所述电子装置2可以是服务器,也可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,并且可以是独立的服务器,也可以是多个服务器所组成的服务器集群。

所述电子装置2可以是组成区块链网络的节点。

所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,所述存储器11还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如区块链数据授权系统200的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置2的总体操作。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的区块链数据授权系统200等。

所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述电子装置2与其他电子设备之间建立通信连接。

至此,己经详细介绍了本发明相关设备的硬件结构和功能。下面,将基于上述介绍提出本发明的各个实施例。

首先,本发明提出一种区块链数据授权系统200。

参阅图2所示,是本发明区块链数据授权系统200第一实施例的程序模块图。

本实施例中,所述区块链数据授权系统200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本发明各实施例的区块链数据授权操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,区块链数据授权系统200可以被划分为一个或多个模块。例如,在图2中,所述区块链数据授权系统200可以被分割成配置模块201、设置模块202、同步模块203、获取模块204。其中:

所述配置模块201,用于配置需要在区块链上进行数据授权的各个业务模块。

具体地,对于区块链上联盟的企业数据,可以划分为各个业务模块,提供系统页面进行业务模块配置。例如,将所述区块链企业联盟的商品、订单、物流等数据抽象为多个业务模块进行配置。在本实施例中,可以填写业务模块配置表、业务模块关联配置表、业务模块详细配置表等,保存在前置库中,然后下发到区块链网络的各个节点。其中,主要可以配置业务模块名称、唯一标识(id)、业务模块字段、字段属性等。所述字段属性包括是否唯一值、是否为时间字段、是否为动态字段、是否必须授权等。

所述设置模块202,用于设置数据授权规则。

具体地,针对各个所述业务模块的数据,需要授权给相应的企业节点查看。因此,要对这些数据设置相应的数据授权规则。在本实施例中,提供静态授权和动态授权两种方式。其中,静态授权包括固定数据授权、范围数据授权等授权场景;动态授权包括动态数据授权、动态企业授权、动态数据+企业授权、动态多业务关联数据授权等授权场景。例如,将企业a的001号订单数据授权给企业b(固定数据给固定企业查看)、2018年10-12月的订单数据授权给企业c(支持数据范围的过滤),属于静态授权。另外,还可以设置各种复杂查询条件或者按字段授权,以及多业务关联数据授权,例如将企业a的某字段值为xx(如订单金额大于100万)的订单数据授权给企业b、授权企业a的业务a关联的业务b的某字段数据给企业b和c。

并且,在上述授权条件的基础上,还可以选择是否可以动态授权,所述动态授权即当有新数据或新企业节点加入所述区块链时,不需要重新进行数据授权设置,可以直接按之前已设置好的数据授权规则执行与之相关的数据授权。

也就是说,在本实施例中,所述数据授权规则包括授权机构、被授权机构、授权业务、授权业务字段、是否关联授权、授权有效期、授权条件、是否动态授权等。这些数据授权规则可以通过填写数据授权表、关联数据授权表、数据授权条件表等,保存在前置库中。

值得注意的是,当选择动态授权时,所述数据授权规则中的一个或多个项目(如被授权机构、授权条件等)需要被设置为非固定值。例如,当针对某企业的手机订单数据进行动态授权时,将订单金额大于100万的订单数据(而不是固定的某一条或某几条数据)授权给所有手机供应商(而不是某一个企业之类)查看。因此,当有新数据或新企业节点加入时,就可以直接适配利用所述授权规则,执行相关的数据授权。

所述同步模块203,用于将所设置的数据授权规则同步至区块链网络。

具体地,每个企业节点完成授权数据规则的设置后,需要同步至区块链网络,区块链中的其他企业节点通过定时或通知的方式,即时同步与自身相关的数据授权规则。

所述获取模块204,用于获取与当前节点相关的数据授权规则。

具体地,该企业节点定时(或者在收到通知时)从所述区块链网络中获取与自身相关的数据授权规则。在本实施例中,各个企业节点可以根据预先设置的时间间隔定时从所述区块链网络中获取与自身相关的数据授权规则,例如每隔一小时获取一次。在其他实施例中,各个企业节点也可以是在收到通知时从所述区块链网络中获取所述数据授权规则,例如当某个企业节点完成授权数据规则的设置后(或者某个企业节点有新数据录入时等等),通知区块链上的其他企业节点,则其他企业节点在收到该通知后从所述区块链网络中获取自身相关的数据授权规则。

所述获取模块204,还用于根据所获取的数据授权规则从所述区块链网络中获取相应的授权数据。

具体地,当所述数据授权规则首次生效时,该企业节点上层服务针对所述数据授权规则中的授权数据生成相应的sql,在前置库数据索引表中遍历该授权数据对应的区块链chainid,从而根据该chainid从区块链网络获取授权数据。所获取的授权数据信息保存在该企业节点前置库的一对一索引表中。并且,所述数据授权规则的授权执行历史记录被记录在前置库的数据授权记录表中。

在本实施例中,所获取的授权数据并非拉取整条数据所有字段数据,而是通过数据授权规则中的字段设置,动态拉取授权字段(例如仅获取订单金额字段的数据),实现不同业务不同数据的不同字段值授权。

值得注意的是,整个过程中的数据授权规则设置、授权执行历史记录,及后续的授权失效或取消记录,均保存到每个企业节点所述前置库中。

在所述区块链网络中,核心的上链数据包括各个业务模块的业务数据以及授权结果数据,另外每个企业节点保存在前置库的各个配置表也同步至所述区块链网络中。

本实施例提供的区块链数据授权系统,可以针对区块链上的数据进行业务模块和数据授权规则的配置,并同步至区块链网络各个节点,既支持固定授权方式,也支持动态数据和/或企业授权的方式,还支持复杂查询条件和数据范围的过滤,或者按字段授权,避免了大量反复操作,降低错误率,保障了授权的及时性。另外,授权执行记录也存储在区块链上,保证可追溯,不可篡改。

参阅图3所示,是本发明区块链数据授权系统200第二实施例的程序模块图。本实施例中,所述的区块链数据授权系统200除了包括第一实施例中的所述配置模块201、设置模块202、同步模块203、获取模块204之外,还包括判断模块205。其中:

所述获取模块204,还用于当有与当前节点相关的新数据加入所述区块链网络时,获取所述新数据对应的数据授权规则。

具体地,当某个节点有新数据录入时,保存相关信息到业务表(业务模块配置表、业务模块关联配置表、业务模块详细配置表),然后将该新数据上链。若当前企业节点与该新数据相关(需要授权给该企业节点),则该企业节点从之前已设置好的数据授权规则中获取与该新数据对应的数据授权规则。

例如,之前已设置的某条数据授权规则为将企业a的订单金额大于100万的订单数据动态授权给企业b。当企业a有新的订单数据上链时,企业b获取该条数据授权规则。

所述判断模块205,用于判断所述新数据是否符合所述数据授权规则中的授权条件。

具体地,虽然该新数据与该企业节点相关,但还需进一步判断该新数据是否符合授权条件。若不符合,则该企业节点无法获取该新数据,结束此次任务,等待下次新数据上链。若该新数据符合授权条件,则该企业节点有权查看该新数据,需要从区块链中获取该新数据。

例如,所述新数据为订单金额为300万的订单数据,则该新数据符合将企业a的订单金额大于100万的订单数据动态授权给企业b这一条数据授权规则中的授权条件,企业b需要获取该新数据。

所述获取模块204,还用于当符合授权条件时,获取所述新数据中相应的授权数据。

具体地,当该新数据符合授权条件时,表示该企业节点有权查看该新数据(整条数据或某字段数据)。此时该企业节点首先根据所述数据授权规则匹配该新数据中的授权数据(例如该新数据中的某个字段数据为该企业节点对应的授权数据),然后确定该授权数据的区块链chainid,再根据该chainid从区块链网络中获取授权数据。

另外,当该节点为新加入所述区块链网络的企业节点时,也可以直接从区块链网络中获取与该企业节点相关的数据授权规则,然后根据所获取的数据授权规则从所述区块链网络中获取相应的授权数据。例如,之前已设置的某条数据授权规则为将企业a的订单金额大于100万的订单数据动态授权给所有手机供应商查看。之前所述区块链中只有企业b和企业c两个手机供应商,现在加入了另一个手机供应商企业d,则企业d加入区块链后可以直接从所述区块链网络中获取与自身相关的数据授权规则,例如获取到将企业a的订单金额大于100万的订单数据动态授权给所有手机供应商这一条规则。然后,企业d就可以根据该规则直接获取授权数据,而不需要企业a重新为企业d授权。

当然,在新的企业节点加入所述区块链网络时,也可以针对自身需要授权给其他企业的数据设置新的数据授权规则并发布到所述区块链网络,供其他企业节点获取。

具体过程中的详细技术内容在上述步骤中有类似说明,在此不再赘述。

本实施例提供的区块链数据授权系统,可以针对区块链上的数据进行业务模块和数据授权规则的配置,并同步至区块链网络各个节点,支持动态数据和/或企业授权的方式,当有新数据或新企业加入区块链时,不需要重新配置数据授权规则,可以直接从区块链上获取并执行与自身相关的已配置好的数据授权规则,授权执行记录也存储在区块链上,保证可追溯,不可篡改。

参阅图4所示,是本发明区块链数据授权系统200第三实施例的程序模块图。本实施例中,所述的区块链数据授权系统200除了包括第二实施例中的所述配置模块201、设置模块202、同步模块203、获取模块204、判断模块205之外,还包括生成模块206、执行模块207。其中:

所述生成模块206,用于当授权过期或取消时,生成对应的失效授权规则。

具体地,针对某一条数据授权规则,当授权过期(达到数据授权规则中的失效时间)或取消(接收到授权方主动取消授权的请求)时,生成一条对应的失效授权规则,标记flag为失效。所述失效授权规则也保存在该节点的前置库中。

所述同步模块203,还用于将所述失效授权规则同步至区块链网络。

具体地,当生成所述失效授权规则并保存后,还要将所述失效授权规则同步至区块链网络,从而使与所述失效授权规则相关的企业节点可以执行所述失效授权规则。

所述执行模块207,用于定期执行与当前节点相关的失效授权规则,删除前置库索引,并更新链上授权历史记录。

具体地,区块链上的每个企业节点也要定期(例如每一秒钟)获取并执行与该节点相关的失效授权规则,从前置库的一对一索引表中删除之前获取的与所述失效授权规则对应的授权数据,并更新授权历史记录(授权失效记录,也要同步到区块链网络)。

本实施例提供的区块链数据授权系统,可以针对区块链上的数据进行业务模块和数据授权规则的配置,并同步至区块链网络各个节点,既支持固定授权方式,也支持动态数据和/或企业授权的方式,还支持复杂查询条件和数据范围的过滤,或者按字段授权,并且可以进行授权失效及取消操作,避免了大量反复操作,降低错误率,保障了授权的及时性。另外,授权执行记录也存储在区块链上,保证可追溯,不可篡改。

此外,本发明还提出一种区块链数据授权方法。

参阅图5所示,是本发明区块链数据授权方法第一实施例的流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。该方法包括:

步骤s500,配置需要在区块链上进行数据授权的各个业务模块。

具体地,对于区块链上联盟的企业数据,可以划分为各个业务模块,提供系统页面进行业务模块配置。例如,将所述区块链企业联盟的商品、订单、物流等数据抽象为多个业务模块进行配置。在本实施例中,可以填写业务模块配置表、业务模块关联配置表、业务模块详细配置表等,保存在前置库中,然后下发到区块链网络的各个节点。其中,主要可以配置业务模块名称、唯一标识(id)、业务模块字段、字段属性等。所述字段属性包括是否唯一值、是否为时间字段、是否为动态字段、是否必须授权等。

步骤s502,设置数据授权规则。

具体地,针对各个所述业务模块的数据,需要授权给相应的企业节点查看。因此,要对这些数据设置相应的数据授权规则。在本实施例中,提供静态授权和动态授权两种方式。其中,静态授权包括固定数据授权、范围数据授权等授权场景;动态授权包括动态数据授权、动态企业授权、动态数据+企业授权、动态多业务关联数据授权等授权场景。例如,将企业a的001号订单数据授权给企业b(固定数据给固定企业查看)、2018年10-12月的订单数据授权给企业c(支持数据范围的过滤),属于静态授权。另外,还可以设置各种复杂查询条件或者按字段授权,以及多业务关联数据授权,例如将企业a的某字段值为xx(如订单金额大于100万)的订单数据授权给企业b、授权企业a的业务a关联的业务b的某字段数据给企业b和c。

并且,在上述授权条件的基础上,还可以选择是否可以动态授权,所述动态授权即当有新数据或新企业节点加入所述区块链时,不需要重新进行数据授权设置,可以直接按之前已设置好的数据授权规则执行与之相关的数据授权。

也就是说,在本实施例中,所述数据授权规则包括授权机构、被授权机构、授权业务、授权业务字段、是否关联授权、授权有效期、授权条件、是否动态授权等。这些数据授权规则可以通过填写数据授权表、关联数据授权表、数据授权条件表等,保存在前置库中。

值得注意的是,当选择动态授权时,所述数据授权规则中的一个或多个项目(如被授权机构、授权条件等)需要被设置为非固定值。例如,当针对某企业的手机订单数据进行动态授权时,将订单金额大于100万的订单数据(而不是固定的某一条或某几条数据)授权给所有手机供应商(而不是某一个企业之类)查看。因此,当有新数据或新企业节点加入时,就可以直接适配利用所述授权规则,执行相关的数据授权。

步骤s504,将所设置的数据授权规则同步至区块链网络。

具体地,每个企业节点完成授权数据规则的设置后,需要同步至区块链网络,区块链中的其他企业节点通过定时或通知的方式,即时同步与自身相关的数据授权规则。

步骤s506,获取与当前节点相关的数据授权规则。

具体地,该企业节点定时(或者在收到通知时)从所述区块链网络中获取与自身相关的数据授权规则。在本实施例中,各个企业节点可以根据预先设置的时间间隔定时从所述区块链网络中获取与自身相关的数据授权规则,例如每隔一小时获取一次。在其他实施例中,各个企业节点也可以是在收到通知时从所述区块链网络中获取所述数据授权规则,例如当某个企业节点完成授权数据规则的设置后(或者某个企业节点有新数据录入时等等),通知区块链上的其他企业节点,则其他企业节点在收到该通知后从所述区块链网络中获取自身相关的数据授权规则。

步骤s508,根据所获取的数据授权规则从所述区块链网络中获取相应的授权数据。

具体地,当所述数据授权规则首次生效时,该企业节点上层服务针对所述数据授权规则中的授权数据生成相应的sql,在前置库数据索引表中遍历该授权数据对应的区块链chainid,从而根据该chainid从区块链网络获取授权数据。所获取的授权数据信息保存在该企业节点前置库的一对一索引表中。并且,所述数据授权规则的授权执行历史记录被记录在前置库的数据授权记录表中。

在本实施例中,所获取的授权数据并非拉取整条数据所有字段数据,而是通过数据授权规则中的字段设置,动态拉取授权字段(例如仅获取订单金额字段的数据),实现不同业务不同数据的不同字段值授权。

值得注意的是,整个过程中的数据授权规则设置、授权执行历史记录,及后续的授权失效或取消记录,均保存到每个企业节点所述前置库中。

在所述区块链网络中,核心的上链数据包括各个业务模块的业务数据以及授权结果数据,另外每个企业节点保存在前置库的各个配置表也同步至所述区块链网络中。

本实施例提供的区块链数据授权方法,可以针对区块链上的数据进行业务模块和数据授权规则的配置,并同步至区块链网络各个节点,既支持固定授权方式,也支持动态数据和/或企业授权的方式,还支持复杂查询条件和数据范围的过滤,或者按字段授权,避免了大量反复操作,降低错误率,保障了授权的及时性。另外,授权执行记录也存储在区块链上,保证可追溯,不可篡改。

如图6所示,是本发明区块链数据授权方法的第二实施例的流程示意图。本实施例中,所述区块链数据授权方法的步骤s600-s608与第一实施例的步骤s500-s508相类似,区别在于该方法还包括步骤s610-s614。

该方法包括以下步骤:

步骤s600,配置需要在区块链上进行数据授权的各个业务模块。

具体地,对于区块链上联盟的企业数据,可以划分为各个业务模块,提供系统页面进行业务模块配置。例如,将所述区块链企业联盟的商品、订单、物流等数据抽象为多个业务模块进行配置。在本实施例中,可以填写业务模块配置表、业务模块关联配置表、业务模块详细配置表等,保存在前置库中,然后下发到区块链网络的各个节点。其中,主要可以配置业务模块名称、唯一标识(id)、业务模块字段、字段属性等。所述字段属性包括是否唯一值、是否为时间字段、是否为动态字段、是否必须授权等。

步骤s602,设置数据授权规则。

具体地,针对各个所述业务模块的数据,需要授权给相应的企业节点查看。因此,要对这些数据设置相应的数据授权规则。在本实施例中,提供静态授权和动态授权两种方式。其中,静态授权包括固定数据授权、范围数据授权等授权场景;动态授权包括动态数据授权、动态企业授权、动态数据+企业授权、动态多业务关联数据授权等授权场景。例如,将企业a的001号订单数据授权给企业b(固定数据给固定企业查看)、2018年10-12月的订单数据授权给企业c(支持数据范围的过滤),属于静态授权。另外,还可以设置各种复杂查询条件或者按字段授权,以及多业务关联数据授权,例如将企业a的某字段值为xx(如订单金额大于100万)的订单数据授权给企业b、授权企业a的业务a关联的业务b的某字段数据给企业b和c。

并且,在上述授权条件的基础上,还可以选择是否可以动态授权,所述动态授权即当有新数据或新企业节点加入所述区块链时,不需要重新进行数据授权设置,可以直接按之前已设置好的数据授权规则执行与之相关的数据授权。

也就是说,在本实施例中,所述数据授权规则包括授权机构、被授权机构、授权业务、授权业务字段、是否关联授权、授权有效期、授权条件、是否动态授权等。这些数据授权规则可以通过填写数据授权表、关联数据授权表、数据授权条件表等,保存在前置库中。

值得注意的是,当选择动态授权时,所述数据授权规则中的一个或多个项目(如被授权机构、授权条件等)需要被设置为非固定值。例如,当针对某企业的手机订单数据进行动态授权时,将订单金额大于100万的订单数据(而不是固定的某一条或某几条数据)授权给所有手机供应商(而不是某一个企业之类)查看。因此,当有新数据或新企业节点加入时,就可以直接适配利用所述授权规则,执行相关的数据授权。

步骤s604,将所设置的数据授权规则同步至区块链网络。

具体地,每个企业节点完成授权数据规则的设置后,需要同步至区块链网络,区块链中的其他企业节点通过定时或通知的方式,即时同步与自身相关的数据授权规则。

步骤s606,获取与当前节点相关的数据授权规则。

具体地,该企业节点定时(或者在收到通知时)从所述区块链网络中获取与自身相关的数据授权规则。在本实施例中,各个企业节点可以根据预先设置的时间间隔定时从所述区块链网络中获取与自身相关的数据授权规则,例如每隔一小时获取一次。在其他实施例中,各个企业节点也可以是在收到通知时从所述区块链网络中获取所述数据授权规则,例如当某个企业节点完成授权数据规则的设置后(或者某个企业节点有新数据录入时等等),通知区块链上的其他企业节点,则其他企业节点在收到该通知后从所述区块链网络中获取自身相关的数据授权规则。

步骤s608,根据所获取的数据授权规则从所述区块链网络中获取相应的授权数据。

具体地,当所述数据授权规则首次生效时,该企业节点上层服务针对所述数据授权规则中的授权数据生成相应的sql,在前置库数据索引表中遍历该授权数据对应的区块链chainid,从而根据该chainid从区块链网络获取授权数据。所获取的授权数据信息保存在该企业节点前置库的一对一索引表中。并且,所述数据授权规则的授权执行历史记录被记录在前置库的数据授权记录表中。

在本实施例中,所获取的授权数据并非拉取整条数据所有字段数据,而是通过数据授权规则中的字段设置,动态拉取授权字段(例如仅获取订单金额字段的数据),实现不同业务不同数据的不同字段值授权。

值得注意的是,整个过程中的数据授权规则设置、授权执行历史记录,及后续的授权失效或取消记录,均保存到每个企业节点所述前置库中。

在所述区块链网络中,核心的上链数据包括各个业务模块的业务数据以及授权结果数据,另外每个企业节点保存在前置库的各个配置表也同步至所述区块链网络中。

步骤s610,当有与当前节点相关的新数据加入所述区块链网络时,获取所述新数据对应的数据授权规则。

具体地,当某个节点有新数据录入时,保存相关信息到业务表(业务模块配置表、业务模块关联配置表、业务模块详细配置表),然后将该新数据上链。若当前企业节点与该新数据相关(需要授权给该企业节点),则该企业节点从之前已设置好的数据授权规则中获取与该新数据对应的数据授权规则。

例如,之前已设置的某条数据授权规则为将企业a的订单金额大于100万的订单数据动态授权给企业b。当企业a有新的订单数据上链时,企业b获取该条数据授权规则。

步骤s612,判断所述新数据是否符合所述数据授权规则中的授权条件。

具体地,虽然该新数据与该企业节点相关,但还需进一步判断该新数据是否符合授权条件。若不符合,则该企业节点无法获取该新数据,结束此次任务,等待下次新数据上链。若该新数据符合授权条件,则该企业节点有权查看该新数据,需要从区块链中获取该新数据。

例如,所述新数据为订单金额为300万的订单数据,则该新数据符合将企业a的订单金额大于100万的订单数据动态授权给企业b这一条数据授权规则中的授权条件,企业b需要获取该新数据。

步骤s614,当符合授权条件时,获取所述新数据中相应的授权数据。

具体地,当该新数据符合授权条件时,表示该企业节点有权查看该新数据(整条数据或某字段数据)。此时该企业节点首先根据所述数据授权规则匹配该新数据中的授权数据(例如该新数据中的某个字段数据为该企业节点对应的授权数据),然后确定该授权数据的区块链chainid,再根据该chainid从区块链网络中获取授权数据。

另外,当该节点为新加入所述区块链网络的企业节点时,也可以直接从区块链网络中获取与该企业节点相关的数据授权规则,然后根据所获取的数据授权规则从所述区块链网络中获取相应的授权数据。例如,之前已设置的某条数据授权规则为将企业a的订单金额大于100万的订单数据动态授权给所有手机供应商查看。之前所述区块链中只有企业b和企业c两个手机供应商,现在加入了另一个手机供应商企业d,则企业d加入区块链后可以直接从所述区块链网络中获取与自身相关的数据授权规则,例如获取到将企业a的订单金额大于100万的订单数据动态授权给所有手机供应商这一条规则。然后,企业d就可以根据该规则直接获取授权数据,而不需要企业a重新为企业d授权。

当然,在新的企业节点加入所述区块链网络时,也可以针对自身需要授权给其他企业的数据设置新的数据授权规则并发布到所述区块链网络,供其他企业节点获取。

具体过程中的详细技术内容在上述步骤中有类似说明,在此不再赘述。

本实施例提供的区块链数据授权方法,可以针对区块链上的数据进行业务模块和数据授权规则的配置,并同步至区块链网络各个节点,支持动态数据和/或企业授权的方式,当有新数据或新企业加入区块链时,不需要重新配置数据授权规则,可以直接从区块链上获取并执行与自身相关的已配置好的数据授权规则,授权执行记录也存储在区块链上,保证可追溯,不可篡改。

如图7所示,是本发明区块链数据授权方法的第三实施例的流程示意图。本实施例中,所述区块链数据授权方法的步骤s700-s714与第一实施例的步骤s600-s614相类似,区别在于该方法还包括步骤s716-s720。

该方法包括以下步骤:

步骤s700,配置需要在区块链上进行数据授权的各个业务模块。

具体地,对于区块链上联盟的企业数据,可以划分为各个业务模块,提供系统页面进行业务模块配置。例如,将所述区块链企业联盟的商品、订单、物流等数据抽象为多个业务模块进行配置。在本实施例中,可以填写业务模块配置表、业务模块关联配置表、业务模块详细配置表等,保存在前置库中,然后下发到区块链网络的各个节点。其中,主要可以配置业务模块名称、唯一标识(id)、业务模块字段、字段属性等。所述字段属性包括是否唯一值、是否为时间字段、是否为动态字段、是否必须授权等。

步骤s702,设置数据授权规则。

具体地,针对各个所述业务模块的数据,需要授权给相应的企业节点查看。因此,要对这些数据设置相应的数据授权规则。在本实施例中,提供静态授权和动态授权两种方式。其中,静态授权包括固定数据授权、范围数据授权等授权场景;动态授权包括动态数据授权、动态企业授权、动态数据+企业授权、动态多业务关联数据授权等授权场景。例如,将企业a的001号订单数据授权给企业b(固定数据给固定企业查看)、2018年10-12月的订单数据授权给企业c(支持数据范围的过滤),属于静态授权。另外,还可以设置各种复杂查询条件或者按字段授权,以及多业务关联数据授权,例如将企业a的某字段值为xx(如订单金额大于100万)的订单数据授权给企业b、授权企业a的业务a关联的业务b的某字段数据给企业b和c。

并且,在上述授权条件的基础上,还可以选择是否可以动态授权,所述动态授权即当有新数据或新企业节点加入所述区块链时,不需要重新进行数据授权设置,可以直接按之前已设置好的数据授权规则执行与之相关的数据授权。

也就是说,在本实施例中,所述数据授权规则包括授权机构、被授权机构、授权业务、授权业务字段、是否关联授权、授权有效期、授权条件、是否动态授权等。这些数据授权规则可以通过填写数据授权表、关联数据授权表、数据授权条件表等,保存在前置库中。

值得注意的是,当选择动态授权时,所述数据授权规则中的一个或多个项目(如被授权机构、授权条件等)需要被设置为非固定值。例如,当针对某企业的手机订单数据进行动态授权时,将订单金额大于100万的订单数据(而不是固定的某一条或某几条数据)授权给所有手机供应商(而不是某一个企业之类)查看。因此,当有新数据或新企业节点加入时,就可以直接适配利用所述授权规则,执行相关的数据授权。

步骤s704,将所设置的数据授权规则同步至区块链网络。

具体地,每个企业节点完成授权数据规则的设置后,需要同步至区块链网络,区块链中的其他企业节点通过定时或通知的方式,即时同步与自身相关的数据授权规则。

步骤s706,获取与当前节点相关的数据授权规则。

具体地,该企业节点定时(或者在收到通知时)从所述区块链网络中获取与自身相关的数据授权规则。在本实施例中,各个企业节点可以根据预先设置的时间间隔定时从所述区块链网络中获取与自身相关的数据授权规则,例如每隔一小时获取一次。在其他实施例中,各个企业节点也可以是在收到通知时从所述区块链网络中获取所述数据授权规则,例如当某个企业节点完成授权数据规则的设置后(或者某个企业节点有新数据录入时等等),通知区块链上的其他企业节点,则其他企业节点在收到该通知后从所述区块链网络中获取自身相关的数据授权规则。

步骤s708,根据所获取的数据授权规则从所述区块链网络中获取相应的授权数据。

具体地,当所述数据授权规则首次生效时,该企业节点上层服务针对所述数据授权规则中的授权数据生成相应的sql,在前置库数据索引表中遍历该授权数据对应的区块链chainid,从而根据该chainid从区块链网络获取授权数据。所获取的授权数据信息保存在该企业节点前置库的一对一索引表中。并且,所述数据授权规则的授权执行历史记录被记录在前置库的数据授权记录表中。

在本实施例中,所获取的授权数据并非拉取整条数据所有字段数据,而是通过数据授权规则中的字段设置,动态拉取授权字段(例如仅获取订单金额字段的数据),实现不同业务不同数据的不同字段值授权。

值得注意的是,整个过程中的数据授权规则设置、授权执行历史记录,及后续的授权失效或取消记录,均保存到每个企业节点所述前置库中。

在所述区块链网络中,核心的上链数据包括各个业务模块的业务数据以及授权结果数据,另外每个企业节点保存在前置库的各个配置表也同步至所述区块链网络中。

步骤s710,当有与当前节点相关的新数据加入所述区块链网络时,获取所述新数据对应的数据授权规则。

具体地,当某个节点有新数据录入时,保存相关信息到业务表(业务模块配置表、业务模块关联配置表、业务模块详细配置表),然后将该新数据上链。若当前企业节点与该新数据相关(需要授权给该企业节点),则该企业节点从之前已设置好的数据授权规则中获取与该新数据对应的数据授权规则。

例如,之前已设置的某条数据授权规则为将企业a的订单金额大于100万的订单数据动态授权给企业b。当企业a有新的订单数据上链时,企业b获取该条数据授权规则。

步骤s712,判断所述新数据是否符合所述数据授权规则中的授权条件。

具体地,虽然该新数据与该企业节点相关,但还需进一步判断该新数据是否符合授权条件。若不符合,则该企业节点无法获取该新数据,结束此次任务,等待下次新数据上链。若该新数据符合授权条件,则该企业节点有权查看该新数据,需要从区块链中获取该新数据。

例如,所述新数据为订单金额为300万的订单数据,则该新数据符合将企业a的订单金额大于100万的订单数据动态授权给企业b这一条数据授权规则中的授权条件,企业b需要获取该新数据。

步骤s714,当符合授权条件时,获取所述新数据中相应的授权数据。

具体地,当该新数据符合授权条件时,表示该企业节点有权查看该新数据(整条数据或某字段数据)。此时该企业节点首先根据所述数据授权规则匹配该新数据中的授权数据(例如该新数据中的某个字段数据为该企业节点对应的授权数据),然后确定该授权数据的区块链chainid,再根据该chainid从区块链网络中获取授权数据。

另外,当该节点为新加入所述区块链网络的企业节点时,也可以直接从区块链网络中获取与该企业节点相关的数据授权规则,然后根据所获取的数据授权规则从所述区块链网络中获取相应的授权数据。例如,之前已设置的某条数据授权规则为将企业a的订单金额大于100万的订单数据动态授权给所有手机供应商查看。之前所述区块链中只有企业b和企业c两个手机供应商,现在加入了另一个手机供应商企业d,则企业d加入区块链后可以直接从所述区块链网络中获取与自身相关的数据授权规则,例如获取到将企业a的订单金额大于100万的订单数据动态授权给所有手机供应商这一条规则。然后,企业d就可以根据该规则直接获取授权数据,而不需要企业a重新为企业d授权。

当然,在新的企业节点加入所述区块链网络时,也可以针对自身需要授权给其他企业的数据设置新的数据授权规则并发布到所述区块链网络,供其他企业节点获取。

具体过程中的详细技术内容在上述步骤中有类似说明,在此不再赘述。

步骤s716,当授权过期或取消时,生成对应的失效授权规则。

具体地,针对某一条数据授权规则,当授权过期(达到数据授权规则中的失效时间)或取消(接收到授权方主动取消授权的请求)时,生成一条对应的失效授权规则,标记flag为失效。所述失效授权规则也保存在该节点的前置库中。

步骤s718,将所述失效授权规则同步至区块链网络。

具体地,当生成所述失效授权规则并保存后,还要将所述失效授权规则同步至区块链网络,从而使与所述失效授权规则相关的企业节点可以执行所述失效授权规则。

步骤s720,定期执行与当前节点相关的失效授权规则,删除前置库索引,并更新链上授权历史记录。

具体地,区块链上的每个企业节点也要定期(例如每一秒钟)获取并执行与该节点相关的失效授权规则,从前置库的一对一索引表中删除之前获取的与所述失效授权规则对应的授权数据,并更新授权历史记录(授权失效记录,也要同步到区块链网络)。

本实施例提供的区块链数据授权方法,可以针对区块链上的数据进行业务模块和数据授权规则的配置,并同步至区块链网络各个节点,既支持固定授权方式,也支持动态数据和/或企业授权的方式,还支持复杂查询条件和数据范围的过滤,或者按字段授权,并且可以进行授权失效及取消操作,避免了大量反复操作,降低错误率,保障了授权的及时性。另外,授权执行记录也存储在区块链上,保证可追溯,不可篡改。

本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有区块链数据授权程序,所述区块链数据授权程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的区块链数据授权方法的步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1