掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的数据标准管理方法

文献发布时间:2023-06-19 10:00:31


一种基于区块链的数据标准管理方法

技术领域

本发明涉及数据标准管理和区块链技术领域,具体公开了一种基于区块链的数据标准管理方法。

背景技术

随着各行业信息化的进行,各系统都沉淀了大量的数据,要想把这些数据运用起来就需要统一的标准,于是就有了数据标准管理的需求。

数据标准是指保障数据的内外部使用和交换的一致性和准确性的规范性约束。数据标准的具体形态通常是一个或多个元数据的集合,即元数据是数据标准的基本单元。何为元数据,元数据即是用来描述数据的数据,如对一张数据表中各字段的名称、类型、长度等的描述数据就称为元数据。标准元数据又是什么,标准元数据即某一组织或团体共同制定和认可的元数据。在建立数据仓库的过程中作为规则来进行数据转换;数据在部门间共享和交换过程中,用于描述数据的格式,提高共享和交换效率。

由于数据标准中的元数据在数据治理过程中作用关键,因此对元数据就必须要求极高的统一性、认可度和可信度。传统数据标准管理,一般是由指定的部门或组织(比如IT部门)牵头,通过调研形成数据标准,数据标准包含了数据集、数据子类,具体地包含了描述数据子类的元数据,然后将元数据信息存放到中心库中,数据标准的维护和管理由指定的部门完成,这就是一种中心化的数据标准管理模式和系统。但是数据标准的使用各方难以参与数据标准的制定和维护升级,流程复杂,责权不清晰。往往一个组织花了大力气指定数据标准之后,随着业务的变化,数据标准很快就不适用了,修订数据标准的进度跟不上业务的变化速度,最终使得数据标准形同虚设。第二,大型组织或者是跨组织的环境中数据标准存在可信度问题,但是使用中心化模式的数据标准管理中的组织无法识别该元数据是否可信,只有无条件的信任中心库。需要一种分布式去中心化的数据标准管理方法和系统,使得数据标准中的元数据可信,并且数据标准中的元数据在制定和维护的过程中相关组织都能参与其中的。

发明内容

本发明的目的在于,针对数据中心或数据仓库数据标准管理中,使用数据标准的各组织或业务部门无法识别数据标准中的元数据是否可信,也很难参与中心化的数据标准管理维护的现状,利用区块链数据不可篡改,可追溯的特点,提出了一种基于区块链的标准数据管理方法,包含基于区块链的元数据转换方法,实现了多方共同参与数据标准的创建维护。

为了实现上述发明目的,本发明提供了以下技术方案:

一种基于区块链的数据标准管理方法,步骤包括:

A、创建元数据时,把元数据信息上传到区块链,获取每一条元数据信息的唯一标识编码;

B、在调用数据标准中的元数据的时候,根据唯一标识编码,对获取的元数据进行区块链上的验真,确定获取的元数据是否被篡改;

步骤A具体包括:

第一步,将原始的元数据转换为目标格式,得到目标格式的元数据;

第二步,对目标格式的元数据进行运算,得到每条目标格式的元数据对应的字符串;

第三步,对字符串进行加密,得到加密字符串;

第四步,将字符串、字符串相应的加密字符串、表名、相关的描述、更改前信息来源和当前元数据版本组合成区块链上的元数据信息,字符串相应的加密字符串是元数据信息的唯一标识编码。

进一步的,方法还包括步骤B,在调用数据标准中的元数据的时候,根据唯一标识编码,对获取的元数据进行区块链上的验真,确定获取的元数据是否被篡改;

具体包括以下步骤:

当获取链下的元数据时,查找链下的元数据中的加密字符串;

通过加密字符串,到区块链上查找是否有对应的链上元数据,如果有,获取的链下的元数据未被篡改,如果没有,获取的链下的元数据被篡改。

作为优选方案,步骤还包括:区块中元数据的维护方法,区块中元数据的维护方法包括以下步骤:1)数据的准备;2)链上共识的达成;3)链下数据同步更改。

进一步的,数据的准备具体包括以下步骤:

找到需要进行更改的元数据更改前的加密字符串;

按照步骤A 的方法将更改后的元数据信息转换为链上数据结构,获的更改后的元数据信息;

将更改前的加密字符串添加到更改后的元数据信息中的“更改前信息来源”字段中。

作为优选方案,链上共识的达成的步骤包括:

C1、构建组织通道,组织通道包含多个组织节点,组织节点与使用数据标准中的元数据组织一一对应,并且元数据组织被许可在组织通道中发起元数据修改请求;

C2、其中一个组织节点发起修改数据标准中的元数据的请求,并构建修改提案;

C3、组织通道中的背书节点根据修改提案的内容和组织通道的构建信息,对修改提案进行验证,当验证通过,则生成交易结果;

C4、根据交易结果和背书节点的签名,生成提案响应;

C5、判断提案响应是否满足预先的背书策略,若满足,则将修改提案按照时间顺序打包成区块;

C6、每一个组织节点对区块中的修改提案进行验证,如果区块中的修改提案没变化,则区块的交易标记为有效;

C7、当区块的交易标记为有效时,对链上的元数据进行修改。

作为优选方案,组织通道和组织节点满足以下条件:

1)组织节点相应的使用数据标准中的元数据的组织完成了所在元数据标准组织的注册和登记,并且获取了确认身份的加密材料;

2)被修改元数据的区块链设置了背书策略,并定义了修改元数据的方法;

3)发起修改元数据请求的组织节点具有发起修改元数据的权限;

4)组织通道上所有组织节点都同意的情况下,才能触发区块链对元数据进行修改。

作为优选方案,步骤C3中,对修改提案进行验证,验证的内容包括:

1)修改提案的格式是否完整;2)修改提案是否为首次提交;3)验证背书节点的签名是否有效的;4)构建修改提案的组织节点是否具有发起修改元数据的权限。

作为优选方案,交易结果包括响应值和写集,写集是待修改元数据的键值对。

作为优选方案,预先的背书策略是组织通道中的所有节点都要背书。

基于相同的构思,本发明还提出了一种基于区块链的数据标准管理系统,包括至少一个处理器,以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任一项的方法。

与现有技术相比,本发明的有益效果:

1、本发明将元数据信息通过区块链技术进行数据转换上链,使得元数据可追溯、不可篡改,因此,使用的组织可以完全信任从中心库获得的标准元数据;

2、本发明还将联盟链中的链码和通道引入元数据区块链中,实现数据的不可篡改,可追溯,多方共同参与数据标准创建维护。

附图说明:

图1为本发明实施例1中的一种基于区块链的数据标准管理方法的流程图;

图2为本发明实施例1中的数据标准中的元数据信息在链下数据存储方式示意图;

图3为本发明实施例1中的json字符串示意图;

图4为本发明实施例1中的区块上的元数据信息结构图;

图5为本发明实施例1中的加入MD5加密字符串的元数据信息在链下数据存储方式示意图;

图6为本发明实施例1中的元数据在区块中的结构图;

图7为本发明实施例1中的将更改后的元数据信息转换为链上数据结构图;

图8为本发明实施例1中的记账节点将接受到的数据放入区块中的过程图;

图9为本发明实施例1中的Fabric链上共识的达成的具体步骤的流程图。

具体实施方式

下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。

实施例1

本发明的方案中,不完全摒弃中心库,只是在原来的基础上进行区块链的改造。以表1中元数据信息为例子,首先在创建数据标准中的元数据的时候,就把元数据信息上传到区块链中,在区块链中把元数据信息看着是一种资产,每条数据上传后就会得到一个唯一标志,把得到的唯一标志存到中心库对应的元数据上,如表2所示。因此,这样有人在使用这些元数据的时候,就可以拿着在区块上的唯一标识去获取在区块链上的数据进行比对,由于区块链的特性数据不可篡改,这样就解决了可信的问题。

表1元数据信息示例

表2带有区块标识的元数据格式示例

一种基于区块链的数据标准管理方法的流程图如图1所述,该方法包括以下步骤:

创建元数据时,把元数据信息上传到区块链,获取每一条元数据信息的唯一标识编码。

第一步,将原始的元数据转换为json格式,得到json格式的元数据;

第二步,对json格式的元数据进行运算,得到每条json格式的元数据对应的json字符串;

第三步,对json字符串进行md5加密算法,得到md5加密字符串;

第四步,将json字符串、json字符串相应的md5加密字符串、表名、相关的描述、更改前信息来源和当前元数据版本组合成区块链上的元数据信息, json字符串相应的md5加密字符串是所述元数据信息的唯一标识编码。

换方法。元数据信息在链下数据存储方式如图2所示。每一条数据包括了九类数据,分别是“table_code”、“meta_code”、“meta_name”、“meta_cn_name”、“meta_type”、“meta_len”、“meta_constraint”、“meta_valuie_space”。

第一步,通过将委员会表的元数据转换为json格式;

第二步,使用JSON.stringify(metaJson)函数得到每条数据对应的json字符串;

第三步,对json字符串进行md5加密算法,得到md5加密字符串,例如:

json字符串如图3所示,通过Var md5Str=md5(metaJsonStr)这一函数式,得到相应的md5加密字符串为:

md5Str = F5B89BEC77BD75374AED6F13BFD8798D

第四步,委员会表的元数据json字符串(data),及相应的MD5加密算法得到的加密串(tx_id),再加上表名(table_name)、相关的描述(desc)、从区块上的哪条元数据信息更改而来(update_from)、当前元数据版本(version)。这些信息共同组成区块上的元数据信息(也就是区块中的一个交易信息),其结构如图4所示。table_name定义为被元数据所描述的表名称;Desc定义为对元数据的描述;data定义为元数据的详细数据,采用json字符串的方式存储;tx_id是对元数据MD5加密后字符串,也是元数据在区块上的唯一标识;update_from是更新前的元数据tx_id,可用来寻找更新前的元数据信息地址;Version是当前元数据的版本信息。

作为优选方案,每次向链上新增的元数据信息时,update_from为null,每次对链上的元数据信息进行更改时,update_from保存元数据更新前的元数据tx_id。

作为优选方案,新增元数据通过上述第一步到第四步,添加到区块链上之后,如图2所示的元数据信息增加tx_id字段,保存对元数据MD5加密后字符串,也即是保存元数据在区块上的唯一标识,存储格式如图5所示。

元数据在区块中的结构如图6所示,委员会表的元数据在区块中是一条交易数据,每次更改其元数据信息,就在区块中形成一个新的交易数据,可以通过update_from形成元数据更改链条,而链下可以使用链码通过tx_id对链上的元数据信息进行访问。如要访问TX02的元数据,调用fabric的链码get方法,并将tx_id=md-02作为参数传入,即可从链上查询出TX02中的元数据信息。

当使用元数据的组织需要对获取的元数据进行验真时,具体方法如下:

如例子中的委员会表需要验证是否链下存储的数据是否被篡改,那么就查询出table_code为GXXX0201的所有元数据信息,把对应得tx_id内容获取到,然后到链上查询出对应的元数据信息,如果通过tx_id在链上没有成功获取到元数据信息,那么该链下的元数据就是被篡改过,如果成功获取到了,那么按照前面区块中元数据初始化的1、2、3步骤把线下元数据的md5加密后的字符串计算出来和下线存储的元数据进行比对,如果不一样说明数据被篡改,反之证明数据没被篡改过,能放心的使用该元数据信息。

作为优选方案,本发明还包括区块中元数据的维护,元数据维护主要分为三个步骤:

1)数据的准备

2)链上共识的达成

3)链下数据同步更改

如委员会表的元数据中委员会职责字段的长度(meta_len)由200改为1000,其修改维护过程如下:

1)数据的准备

a)找到要更改元数据的md5字符串,也就是tx_id,此处找到的tx_id为:

F5B89BEC77BD75374AED6F13BFD8798D,tx_id将用在新的链上元数据交易信息的update_from中。

b)按照元数据上链初始化过程将更改后的元数据信息转换为链上数据结构,如图7所示。

2)链上共识的达成

当组织发起更改链上元数据的时,链上区块的机制就会询问其他背书组织是否允许修改,只有满足了背书策略中允许的条件后,通过排序节点将数据广播到各个记账节点上,记账节点将接受到的数据放入区块中,过程如图8所示。

具体步骤的流程如图9所示,步骤包括:

C1、构建组织通道,组织通道包含多个组织节点,组织节点与使用数据标准中的元数据的组织一一对应,并且组织被许可在组织通道中发起元数据修改请求;

C2、其中一个组织节点发起修改元数据的请求,并构建修改提案;

C3、组织通道中的背书节点根据修改提案的内容和组织通道的构建信息,对修改提案进行验证,当验证通过,则生成交易结果;

C4、根据交易结果和背书节点的签名,生成提案响应;

C5、判断提案响应是否满足预先的背书策略,若满足,则将修改提案按照时间顺序打包成区块;

C6、每一个组织节点对区块中的修改提案进行验证,如果区块中的修改提案没变化,则区块的交易标记为有效;

C7、当区块的交易标记为有效时,对链上的元数据进行修改。

以图8为例具体说明联盟链实现链上审核和元数据更改的过程,过程如下:

2.1、假设条件:

1)已经设置了一个通道MDChannel,该通道正常运行,通道上分别有组织org1、org2、org3、org4、org5,分别对应节点peerA、peerB、peerC、peerD、peerE,5个组织都已经使用组织的 CA 注册和登记完成,并且拿到了用于在网络中用确认身份的加密材料。

2)修改链上原始数据的链码MDChiancode均在peerA-peerE上安装完成了初始化,且都得到上述五个组织的认可,链码MDChiancode定义了修改元数据的方法,链码也设置了一个背书策略,该策略是每一次元数据修改都必须被五个组织的节点都签名。

3)权限定义:org1和org2可发起元数据更改请求,org3、org4、org5仅能查看。

4)修改元数据的请求只有在5个组织都同意的情况下,才会触发链码MDChiancode对元数据进行修改。

2.2、组织org1发起一个修改元数据请求

组织org1发送一个元数据修改请求。该请求会到达peerA、peerB、peerC、peerD、peerE。然后,要构建一个修改提案。提案是带有确定输入参数的调用链码方法的请求。该请求的作用就是修改链码上的元数据。

2.3、背书节点验证签名并执行交易

背书节点验证(1)修改提案的格式完整,(2)且验证该提案之前没有被提交过(3)验证签名是有效的(使用 MSP),(4)验证发起者(在这个例子中是org1)有权在该通道上执行该操作(也就是说,每个背书节点确保发起者满足通道 Writers 策略)。背书节点将提案输入作为调用的链码函数的参数。然后根据当前状态数据库执行链码,生成交易结果,包括响应值、写集(即表示要更新的元数据的键值对)。但并没有对账本进行更新。这些值以及背书节点的签名会一起作为“提案响应”返回到 SDK,SDK 会为应用程序解析该响应。

2.4、检查提案响应,广播给排序服务

应用程序验证背书节点的签名,并比较这些修改提案响应,以确定其是否相同,是否满足指定的背书策略(即 peerA -peerE 都要背书)。满足条件后将修改提案给排序服务,排序服务接受提案,按时间排序并将其打包成区块。

2.5、验证和提交交易

排序服务打包后的区块被“发送”给通道上的所有 Peer 节点。对区块内的修改提案进行验证,以确保满足背书策略,并确保从步骤3执行提案生成读集以来,读集中变量的账本状态没有变化。如果没有变化,块中的交易会被标记为有效。

2.6、对链上的元数据进行修改

每个 Peer 节点都将区块追加到通道的链上,对于每个有效的修改,写集都提交到当前状态数据库。系统会发出一个事件,通知客户端应用程序本次元数据修改已被不可更改地附加到链上,同时还会通知交易验证结果是有效的。

以上方式就实现多方共同维护管理标准元数据,并且每一次对元数据的修改过程都会在链上被记录下来。

1)链下数据同步更改

链上数据修改完成后,fabric向链下发送结果消息,如果修改成功,链下数据一并修改,并把tx_id改为链上最新版本的tx_id,举例中就是把tx_id由

F5B89BEC77BD75374AED6F13BFD8798D

改为

B19542B9C3A8D9EAD40401787415A653。

以上所述仅为本发明的较佳实施例而己,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 一种基于区块链的数据标准管理方法
  • 一种基于区块链的算力数据管理方法及区块链系统
技术分类

06120112388923