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

一种基于区块链的建筑领域中数据打包的方法与流程

2022-03-23 09:24:22 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,具体为一种基于区块链的建筑领域中数据打包的方法。


背景技术:

2.当前在建筑行业,许多建筑公司还是采用纸质的数据记录方式,导致建筑数据无法数字化,且数据整理需要花费大量人力;少数部分建筑企业虽然使用了数字化的方式记录数据,但数据仍然仅留存在企业内部,企业拥有数据的所有操作权限,容易出现数据篡改的现象;对于极少数采用区块链的数据记录系统,虽然解决了数据数字化和防篡改的问题,但是在数据的安全、使用效率、监管等方面仍然具有缺陷。因此我们对此做出改进,提出一种基于区块链的建筑领域中数据打包的方法。


技术实现要素:

3.为了解决上述技术问题,本发明提供了如下的技术方案:
4.本发明一种基于区块链的建筑领域中数据打包的方法,包括业务系统模块、区块打包服务模块和区块链系统;所述业务系统模块收集建筑企业中的待上链数据,然后送入到区块打包服务模块,利用区块打包服务模块对待上链数据进行打包上链,并将打包上链后的上链数据送入到区块链系统中;
5.所述区块打包服务模块包含https模块、交易池模块、区块模板管理模块、数据打包模块、数据库模块、密钥管理模块和grpc模块,具体为以下步骤,
6.步骤1、对需要上链的数据,按照数据的业务类型进行数据清洗,形成用于上链的原始数据;
7.步骤2、通过https模块提供的数据上链接口,提交待上链的原始数据到区块打包服务模块;然后https模块将验证通过后的待上链数据存储到交易池;
8.步骤3、https模块通知打包模块,告知打包模块交易池中有待处理的交易,打包模块通过区块模板管理模块获取一个区块模板,模板管理模块会定时从区块链获取状态信息,并组装模板;然后从交易池中获取待上链的交易;
9.步骤4、打包模块逐条操作从交易池中获取的交易,为每条交易生成一个对称密钥,通过该对称密钥将交易内容进行加密,获得密文,实现加密原始交易,并组装好链上交易数据结构,并添加到区块中;
10.步骤5、打包模块调用密钥管理模块,对组装好的区块进行数字签名,完成区块的组装工作;打包模块将未打包进区块的交易返还给交易池,更新区块模板,将新上链的区块添加到模板的父区块域;
11.步骤6、打包模块将组装好的区块通过grpc模块发送到该参与者对应的区块链节点上,送入到区块链系统中,进行数据的共识。
12.作为本发明的一种优选技术方案,所述的https模块对用户提交的数据进行简单
的验证,包括原始数据的参数是否完整,原始数据是否符合符合业务逻辑;检查请求的原始数据是否为重复提交;以及原始数据是否合法。
13.作为本发明的一种优选技术方案,在所述的加密原始交易完成后,使用该参与者的公钥把加密对称密钥进行加密;最后使用监管部门的公钥加密对称密钥,将加密后的交易密文、经参与者的公钥把加密对称密钥进行加密合监管部门的公钥加密对称密钥加密后的对称密钥密文、交易所属业务类型、交易数据标签组装成链上交易数据结构,并添加到区块的交易区域;检查区块大小是否超出限制,如果未超出,则打包模块继续逐条操作从交易池中获取的交易,将下一条交易添加到区块中,如果超出,则退出循环进入步骤5。
14.作为本发明的一种优选技术方案,所述的打包模块检查交易池中是否还有待上链数据,如果有则重复数据打包的过程,直至交易池中的数据全部打包完成。
15.作为本发明的一种优选技术方案,所述的原始数据应包括:数据的业务类型、数据的唯一标识、数据的版本号,以及可选的数据标签。
16.作为本发明的一种优选技术方案,所述的交易池中的交易按照签名者的唯一标识分别存储,实现不同签名者的数据隔离;所述的区块模板管理模块每隔3秒从区块链节点查询最新状态,更新区块模板;并且在打包出新的区块链,将新区块的hash放入模板的父区块域,替换掉父区块域中的一个较早的区块hash。
17.作为本发明的一种优选技术方案,所述的密钥管理模块用于管理节点的公私钥、管理所有已知的链上用户的数字证书,用于数据访问授权时使用;其次密钥管理模块还提供对称密钥的生成与加解密、非对称密钥的加解密、签名、验签等功能。
18.作为本发明的一种优选技术方案,所述的从交易池中获取待上链的交易的方法是,每次获取同一签名者的待上链交易。
19.作为本发明的一种优选技术方案,所述的业务系统模块用于收集建筑企业中的待上链数据,并为数据生成唯一的数据标识、数据版本,数据类型以及符合自己应用需求的数据标签。
20.所述的更新区块模板用于使用新区块的hash替换掉模板中一个已有父区块,实现对历史区块的引用。
21.本发明的有益效果是:
22.该种基于区块链的建筑领域中数据打包的方法通过对称加密算法保证链上数据的隐私;通过给监管机构授权,保证监管节点能够对链上数据进行穿透式管控;另外打包服务每隔一段时间获取一次链上状态,组装区块版本,并在该时间段内根据实时打包情况更新区块模板,从而减少与区块链的交互,并且能够在交易高峰时通过引用自己之前发的区块,达到交易快速确认的效果,缩短交易确认时间;本发明还为链上数据设置数据标签,用户上链时可为数据自定义标签,标签以明文存储,后期使用数据时可以通过标签快速检索。
附图说明
23.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
24.图1是本发明一种基于区块链的建筑领域中数据打包的方法的流程图;
25.图2是本发明一种基于区块链的建筑领域中数据打包的方法的系统框图;
26.图3是实施例2中的基于区块链的建筑领域中数据打包的方法部署架构图。
27.图中:1、业务系统模块;2、区块打包服务模块;3、区块链系统;4、https模块;5、交易池模块;6、区块模板管理模块;7、数据打包模块;8、数据库模块;9、密钥管理模块;10、grpc模块。
具体实施方式
28.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
29.实施例1:如图1和图2所示,本发明一种基于区块链的建筑领域中数据打包的方法,包括业务系统模块1、区块打包服务模块2和区块链系统3;所述业务系统模块1用于收集建筑企业中的待上链数据,然后送入到区块打包服务模块2,利用区块打包服务模块2对待上链数据进行打包上链,并将打包上链后的上链数据送入到区块链系统3中;
30.所述区块打包服务模块2包含https模块4、交易池模块5、区块模板管理模块6、数据打包模块7、数据库模块8、密钥管理模块9和grpc模块10,具体为以下步骤,所述的交易池中的交易按照签名者的唯一标识分别存储,实现不同签名者的数据隔离;所述的区块模板管理模块每隔3秒从区块链节点查询最新状态,更新区块模板;并且在打包出新的区块链,将新区块的hash放入模板的父区块域,替换掉父区块域中的一个较早的区块hash。所述的密钥管理模块用于管理节点的公私钥、管理所有已知的链上用户的数字证书,用于数据访问授权时使用;其次密钥管理模块还提供对称密钥的生成与加解密、非对称密钥的加解密、签名、验签等功能。所述的从交易池中获取待上链的交易的方法是,每次获取同一签名者的待上链交易。所述的业务系统模块用于收集建筑企业中的待上链数据,并为数据生成唯一的数据标识、数据版本,数据类型以及符合自己应用需求的数据标签;所述的更新区块模板用于使用新区块的hash替换掉模板中一个已有父区块,实现对历史区块的引用。
31.步骤1、对需要上链的数据,按照数据的业务类型进行数据清洗,形成用于上链的原始数据;所述的https模块对用户提交的数据进行简单的验证,包括原始数据的参数是否完整,原始数据是否符合符合业务逻辑;检查请求的原始数据是否为重复提交;以及原始数据是否合法.
32.步骤2、通过https模块提供的数据上链接口,提交待上链的原始数据到区块打包服务模块;然后https模块将验证通过后的待上链数据存储到交易池;
33.步骤3、https模块通知打包模块,告知打包模块交易池中有待处理的交易,打包模块通过区块模板管理模块获取一个区块模板,模板管理模块会定时从区块链获取状态信息,并组装模板;然后从交易池中获取待上链的交易;
34.步骤4、打包模块逐条操作从交易池中获取的交易,为每条交易生成一个对称密钥,通过该对称密钥将交易内容进行加密,获得密文,实现加密原始交易,并组装好链上交易数据结构,并添加到区块中;在所述的加密原始交易完成后,使用该参与者的公钥把加密对称密钥进行加密;最后使用监管部门的公钥加密对称密钥,将加密后的交易密文、经参与者的公钥把加密对称密钥进行加密合监管部门的公钥加密对称密钥加密后的对称密钥密文、交易所属业务类型、交易数据标签组装成链上交易数据结构,并添加到区块的交易区域;检查区块大小是否超出限制,如果未超出,则打包模块继续逐条操作从交易池中获取的
交易,将下一条交易添加到区块中,如果超出,则退出循环进入步骤5。
35.步骤5、打包模块调用密钥管理模块,对组装好的区块进行数字签名,完成区块的组装工作;打包模块将未打包进区块的交易返还给交易池,更新区块模板,将新上链的区块添加到模板的父区块域;
36.步骤6、打包模块将组装好的区块通过grpc模块发送到该参与者对应的区块链节点上,送入到区块链系统中,进行数据的共识。
37.当所述的打包模块检查交易池中是否还有待上链数据,如果有则重复数据打包的过程,直至交易池中的数据全部打包完成。
38.实施例2,如图3所示,是整个系统的部署架构图,图中的每个服务器表示一个服务节点;其中n1、n2、g1、ni为区块链节点,其中n1、n2、ni代表普通的建筑公司,g1代表国家监管部门;p1表示n1对应的数据打包服务、b1表示n1对应的业务系统服务;一般n1、p1、b1部署在同一个内网中,n1、n2、ni、g1处于外网环境。附图2是打包服务的架构图,图中每个框表示一个子模块;附图3是数据打包服务的流程图,图中每个框表示一个代码操作。
39.以下结合附图3对本发明进行详细描述。
40.假设n1对应的业务系统有一条数据考勤数据待上链,首先b1为该条数据构造唯一的数据标识、数据版本、考勤内容、数据标签,假设构造的请求体如下:{“dataid”:”record_101”,”dataversion”:”101”,”bizcode”:”1001”,”datacontent”:”姓名:张三考勤地址:xx省xx市xx街道xx号考勤时间:2021年10月8日06时30分28秒”,”indexes”:{“project”:”project101”}};
41.b1调用p1提供的http接口,提交待上链交易tx1;
42.p1收到b1发来的请求后,执行如下步骤:
43.步骤s1001验证b1提交的参数是否合法,是否包含数据标识、数据版本、业务类型,数据内容,参数合法且包含所需必填项则进入下一步,否则返回错误信息;
44.步骤s1002验证b1提交的参数是否已经上链,如果已经处理过相同参数的请求,则直接返回处理成功,如果不存在则进入下一步;
45.步骤s1003将交易tx1放入交易池中;
46.步骤s1004计算msghash=hash(“record_101” ”101”),并记录msghash到数据库中用于后续做重复性校验;
47.步骤s1005通知数据打包模块有新的交易待上链;
48.步骤s1006打包模块收到通知后,从区块模板管理模块获取一个区块模板t1,t1中已经填充好了区块时间戳、引用的父区块列表等;
49.步骤s1007从交易池中取出待上链的考勤数据tx1;
50.步骤s1008使用随机数生成算法,生成一个对称密钥cipherkey;
51.步骤s1009使用对称密钥加密考勤数据,计算:encdata=cipher(”姓名:张三考勤地址:xx省xx市xx街道xx号考勤时间:2021年10月8日06时30分28秒”,cipherkey);
52.步骤s1010使用n1公钥加密对称密钥,计算enccipherkeyn1=encrypt(cipherkey,publickeyn1);
53.步骤s1011使用g1公钥加密对称密钥,计算enccipherkeyg1=encrypt(cipherkey,publickeyg1);
54.步骤s1012将dataid、dataversion、bizcode、encdata、enccipherkeyn1、enccipherkeyg1,数据标签indexes组装成区块链交易;
55.步骤s1013将组装好的区块链交易,添加到区块模板中;
56.步骤s1014判断当前区块是否超过4m的限制,如果超过,则执行s1015;如果没超过,则判断交易池中是否有该签名者的交易,如果有则执行s1007,没有则执行a1015;
57.步骤s1015使用n1的私钥对组装好的区块进行数字签名,计算:sign=publicsign(t1,privatekeyn1)
58.步骤s1016发送组装好的t1到区块链节点n1;
59.步骤s1017计算区块的散列值,blockhash=hash(t1),将blockhash放入模板的父区块域,形成新的区块模板t2,供下次打包时使用;
60.返回数据上链结果,结束。
61.经过打包服务后,会将业务端b1提交的明文数据加密成密文encdata,保证了数据的私密性;通过n1和g1的公钥加密加密密钥,保证n1和g1具有数据的访问权限,所以在保证隐私的前提下,提供了政府穿透式监管的能力;数据上链时bizcode、indexes会以明文的形式存储,这样在后续查询等操作下,可以通过bizcode进行分类,通过indexes数据标签可以实现数据的高效查询。
62.最后应说明的是:以上仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献