1.本技术实施例涉及文档处理技术,尤指一种基于区块链技术的文档处理方法、装置和客户端。
背景技术:
2.现有办公产品(如wps等软件)主要应用于公众领域,其网络办公功能主要在开放性网络上实现协同编辑及文档共享,其采用服务器客户端模式,需要建立公有云或者是建立服务器。
3.部分大型或重要企业内部网络复杂、安全设备较多,传统的云模式或服务器客户端模式的网络文档协同编辑技术或系统无法满足安全要求,无法部署应用,或在该机制下无法实现双向协同编辑;
4.部分大型或重要企业对于文档安全要求较高,需要能够防篡改和可靠记录修改、下载记录信息;现有软件采用的简单日志记录模式无法实现防篡改和文档的不可否认。
5.现在企业要求控制办公成本和实现编辑高效的文档编辑共享,传统服务器模式部署复杂,建设和维护成本高,一旦服务器出现问题,即无法开展协同办公编辑,需要一种新的即插即用、可靠性较高的协同便捷技术。
技术实现要素:
6.本技术实施例提供了一种基于区块链技术的文档处理方法、装置和客户端,能够实现文档数据在客户端的分布式存储,实现去中心化,并能够实现文档的防篡改和文档的不可否认,并能提高网络安全性,方案简单、成本低,为即插即用提供技术基础。
7.本技术实施例提供了一种基于区块链技术的文档处理方法,应用于第一客户端侧,所述第一客户端为预设的局域网内任意的需要对文档数据进行同步的客户端;所述方法可以包括:
8.通过广播机制与所述局域网内的一个或多个第二客户端建立网络连接;所述第二客户端为所述局域网内除所述第一客户端以外的处于开启状态的客户端;
9.根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成账本签名信息;
10.通过所述广播机制,向建立网络连接的第二客户端发送数据请求;所述数据请求包含加密后的文档数据和所述账本签名信息;以使得每个建立网络连接的第二客户端接收到所述数据请求后,对所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。
11.在本技术的示例性实施例中,所述通过广播机制与预设的局域网内处于开启状态的一个或多个第二客户端建立网络连接,可以包括:
12.遍历所述局域网内第二客户端的ip地址,通过所述广播机制向遍历到的第二客户端发送连接请求;
13.接收一个或多个所第二客户端的返回信息,所述返回信息包含所述第二客户端处于开启状态的信息,建立与所述一个或多个第二客户端的网络连接,并记录发送所述返回信息的第二客户端的ip地址。
14.在本技术的示例性实施例中,所述第一账本信息可以包括以下任意一种或多种:保存所述文档数据的文件名称、所述文档数据的存储路径、所述文档数据的更新时间以及所述第一客户端的ip地址;
15.所述根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成账本签名信息,可以包括:通过预设的加密算法对所述文件名称、所述存储路径、所述更新时间以及所述第二客户端的ip地址进行加密运算,获取一个唯一性标识信息,作为所述账本签名信息。
16.在本技术的示例性实施例中,所述方法还可以包括:
17.在包含所述文档数据的可编辑文件向所述第一客户端上传时,对所述可编辑文件的文件内容的读取以及数据流的转换进行加密,并对所述可编辑文件进行压缩;和/或,
18.采用多进程并发形式向建立网络连接的第二客户端发送所述数据请求。
19.在本技术的示例性实施例中,所述方法还可以包括:
20.预先构建所述局域网,并为所述局域网内的每个客户端配置对应的ip地址;所述客户端为所述第一客户端或所述第二客户端。
21.在本技术的示例性实施例中,所述方法还可以包括:
22.当所述局域网内的任意客户端启动预设平台,通过所述预设平台访问本地ip地址和指定端口的统一资源定位符url地址时,确定所述任意客户端处于开启状态。
23.本技术实施例还提供了一种基于区块链技术的文档处理装置,可以包括第一处理器和第一计算机可读存储介质,所述第一计算机可读存储介质中存储有第一指令,当所述第一指令被所述第一处理器执行时,实现上述任意一项所述的应用于第一客户端侧的基于区块链技术的文档处理方法。
24.本技术实施例还提供了一种基于区块链技术的文档处理方法,应用于第二客户端侧,所述第二客户端为预设的局域网内除所述第一客户端以外的处于开启状态的客户端;所述第一客户端为预设的局域网内任意的需要对文档数据进行同步的客户端;所述方法可以包括:
25.与所述局域网内通过广播机制发送连接请求的第一客户端建立网络连接;
26.接收所述第一客户端通过所述广播机制发送的数据请求;所述数据请求包含加密后的文档数据和账本签名信息;所述账本签名信息是所述第一客户端根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成的;
27.对从所述数据请求中提取的所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。
28.在本技术的示例性实施例中,所述对从所述数据请求中提取的所述账本签名信息进行验证,可以包括:
29.将从所述数据请求中提取的所述账本签名信息与本地存储的账本签名信息相比对;
30.当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息
一致时,确定为第一验证结果;
31.当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息不一致时,确定为第二验证结果。
32.在本技术的示例性实施例中,所述根据验证结果对所述文档数据采用相应的处理方案,可以包括:
33.当验证结果为所述第一验证结果时,将所述文档数据作为修改后数据进行保存;
34.当验证结果为所述第二验证结果时,将所述文档数据作为新增数据进行保存。
35.本技术实施例还提供了一种基于区块链技术的文档处理装置,可以包括第二处理器和第二计算机可读存储介质,所述第二计算机可读存储介质中存储有第二指令,当所述第二指令被所述第二处理器执行时,实现上述任意一项所述的应用于第二客户端侧的基于区块链技术的文档处理方法。
36.本技术实施例还提供了一种客户端,可以包括所述的基于区块链技术的文档处理装置。
37.与相关技术相比,本技术实施例可以包括:通过广播机制与局域网内的一个或多个第二客户端建立网络连接;所述第二客户端为所述局域网内除所述第一客户端以外的处于开启状态的客户端;根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成账本签名信息;通过所述广播机制,向建立网络连接的第二客户端发送数据请求;所述数据请求包含加密后的文档数据和所述账本签名信息;以使得每个建立网络连接的第二客户端接收到所述数据请求后,对所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。该实施例方案通过广播机制实现了每台客户端分布式存储,实现了去中心化,账本签名信息实现了客户端拥有独立的账本管理和统一可校验的签名记录,从而实现了文档的防篡改和文档的不可否认,且通过局域网提高了网络安全性,并且本技术实施例方案简单、成本低,为即插即用提供技术基础。
38.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
39.附图用来提供对本技术技术方案的理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
40.图1为本技术实施例的应用于第一客户端侧的基于区块链技术的文档处理方法流程图;
41.图2为本技术实施例的局域网内处于开启状态的客户端网络连接示意图;
42.图3为本技术实施例的同一区块内的各个节点进行文件同步示意图;
43.图4为本技术实施例的客户端之间通过广播机制进行的两次请求示意图;
44.图5为本技术实施例的应用于第一客户端侧的基于区块链技术的文档处理装置组成框图;
45.图6为本技术实施例的应用于第二客户端侧的基于区块链技术的文档处理方法流程图;
46.图7为本技术实施例的应用于第二客户端侧的基于区块链技术的文档处理装置组成框图;
47.图8为本技术实施例的客户端组成框图。
具体实施方式
48.本技术描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本技术所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
49.本技术包括并设想了与本领域普通技术人员已知的特征和元件的组合。本技术已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本技术中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
50.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本技术实施例的精神和范围内。
51.本技术实施例提供了一种基于区块链技术的文档处理方法,应用于第一客户端侧,所述第一客户端为预设的局域网内任意的需要对文档数据进行同步的客户端;如图1所示,所述方法可以包括步骤s101-s103:
52.s101、通过广播机制与所述局域网内的一个或多个第二客户端建立网络连接;所述第二客户端为所述局域网内除所述第一客户端以外的处于开启状态的客户端;
53.s102、根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成账本签名信息;
54.s103、通过所述广播机制,向建立网络连接的第二客户端发送数据请求;所述数据请求包含加密后的文档数据和所述账本签名信息;以使得每个建立网络连接的第二客户端接收到所述数据请求后,对所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。
55.在本技术的示例性实施例中,将广播机制和数字签名技术(如账本签名信息)相结合,实现了局域网下多客户端数据传输与认证的区块链模式的文档同步方法。其中,广播机制实现了每台客户端分布式存储,实现了去中心化,账本签名信息实现了客户端拥有独立的账本管理和统一可校验的签名记录,从而实现了文档的防篡改和文档的不可否认,且通
过局域网提高了网络安全性。
56.在本技术的示例性实施例中,所述方法还可以包括:
57.预先构建所述局域网,并为所述局域网内的每个客户端配置对应的ip(互联网协议)地址;所述客户端为所述第一客户端或所述第二客户端。
58.在本技术的示例性实施例中,还需要测试该局域网内客户端直接ip使用命令ping、指定端口使用命令telnet的可通信的网络环境。
59.在本技术的示例性实施例中,所述方法还可以包括:
60.当所述局域网内的任意客户端启动预设平台,通过所述预设平台访问本地ip地址和指定端口的统一资源定位符url地址时,确定所述任意客户端处于开启状态。
61.在本技术的示例性实施例中,该预设平台可以为应用app、应用小程序、网页平台等,在此对于该预设平台的具体实现方式不做限定。
62.在本技术的示例性实施例中,例如,针对局域网内的每个客户端,启动app应用后,可以使用浏览器访问本机ip与指定端口的url地址,即可对相应的应用界面(如,网页web界面)执行浏览操作,这样当前的客户端就可视为一个开启状态的独立节点,如图2所示。
63.在本技术的示例性实施例中,新的客户端由关闭状态变更到开启状态时,可以视为新节点加入。多个客户端都处于开启状态且处于当前同一局域网的网络下时,则该多个客户端形成的节点可以视作组合成一个区块,如图2所示。任何新节点加入一个区块时,可以首先通过本技术实施例的文档处理方法与区块内的其他节点进行数据同步。
64.在本技术的示例性实施例中,如图3所示,任意一个处于开启状态的节点可以向局域网内的其它处于开启状态的客户端通过广播机制与数字签名结合,对客户端间账本签名信息的内容进行校验,根据校验结果实现数据的自动更新,保证区块下所有节点的文件都是最新的和统一的。
65.在本技术的示例性实施例中,所述方法还可以包括:
66.在包含所述文档数据的可编辑文件向所述第一客户端上传时,对所述可编辑文件的文件内容的读取以及数据流的转换进行加密,并对所述可编辑文件进行压缩。
67.在本技术的示例性实施例中,针对可编辑文件,在文件向客户端上传时就可以对文件内容的读取、数据流的转换进行加密压缩(pako.min.js),存储为密文字符串的文本文件,只有基于应用界面读取文件数据再解压、加密、展示和下载,才能得到想要的文件格式,进一步了保障数据文件的安全性。
68.在本技术的示例性实施例中,例如,区块内的表格可编辑文件在传输过程中,可以先由web前端对表格可编辑文件的数据流进行加密、压缩,再到应用后端通过广播机制多进程并发请求(包括连接请求和数据请求),提高协同编辑、更新的效率。
69.在本技术的示例性实施例中,所述通过广播机制与预设的局域网内处于开启状态的一个或多个第二客户端建立网络连接,可以包括:
70.遍历所述局域网内第二客户端的ip地址,通过所述广播机制向遍历到的第二客户端发送连接请求;
71.接收一个或多个所第二客户端的返回信息,所述返回信息包含所述第二客户端处于开启状态的信息,建立与所述一个或多个第二客户端的网络连接,并记录发送所述返回信息的第二客户端的ip地址。
72.在本技术的示例性实施例中,如图4所示,在局域网模式下,第一客户端需要发送两次请求,第一次请求为建立连接(可以称为连接请求)、第二次请求为数据传输(可以称为数据请求)。
73.在本技术的示例性实施例中,发送第一次请求时,第一客户端a可以获取本机ip地址和指定端口,通过多进程并发模式,指定端口及遍历局域网地址范围向其他客户端地址发送连接请求;如果某一个或多个第二客户端b处于开启状态,并且接收到该连接请求后,向第一客户端a反馈开启状态。
74.在本技术的示例性实施例中,第一客户端a将反馈了返回信息的第二客户端b作为可通信客户端,并记录这些第二客户端b的ip地址。
75.在本技术的示例性实施例中,该第二客户端b的ip地址用于第一客户端a后续发送数据请求时的目标地址。
76.在本技术的示例性实施例中,第一客户端a在广播第二次请求(数据请求)前,首先生成和加密(md5)关于本次数据请求的数字签名内容(即账本签名信息),将该数字签名信息附件在发送数据中发送给进行网络连接后的各个第二客户端b。
77.在本技术的示例性实施例中,所述第一账本信息可以包括以下任意一种或多种:保存所述文档数据的文件名称、所述文档数据的存储路径、所述文档数据的更新时间以及所述第一客户端的ip地址;
78.所述根据所述第一客户端a自身对应的第一本地账本文件中的第一账本信息生成账本签名信息,可以包括:通过预设的加密算法对所述文件名称、所述存储路径、所述更新时间以及所述第一客户端b的ip地址进行加密运算,获取一个唯一性标识信息,作为所述账本签名信息。
79.在本技术的示例性实施例中,在每个第一客户端a每次完成数据请求后,参与广播的任意客户端(包括第一客户端a和第二客户端b)都将在本机的账本文件中更新账本记录,账本信息可以包括:文件名称、存储路径、更新时间、客户端ip地址等信息,再由以上信息生成预设加密算法(例如,不可逆加密md5算法)的唯一性标识信息,获取该账本签名信息,通过步骤中第二客户端b在接收数据请求后对账本签名信息进行对比校验,解决文件信息统一和客户端信任问题。
80.在本技术的示例性实施例中,在第一客户端a生成该账本签名信息以后,可以向建立网络连接的第二客户端b发送第二次请求(数据请求)。具体地,用户可以在第一客户端a的界面进行操作,发送数据进行传输,基于前述方案中记录的第二客户端b的ip地址清单,可以采用多线程并发形式向第二客户端b发送数据请求。
81.在本技术的示例性实施例中,第二客户端b接收到数据请求以后,对从所述数据请求中提取的所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。
82.在本技术的示例性实施例中,对从所述数据请求中提取的所述账本签名信息进行验证,可以包括:
83.将从所述数据请求中提取的所述账本签名信息与本地存储的账本签名信息相比对;
84.当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息
一致时,确定为第一验证结果;
85.当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息不一致时,确定为第二验证结果。
86.在本技术的示例性实施例中,第二客户端b接收到数据请求,提取数据请求中的账本签名信息,与本地存储的账本签名信息相比对相对比。
87.在本技术的示例性实施例中,第二客户端b本地存储的账本签名信息是由第二客户端b自身对应的第二本地账本文件中的第二账本信息生成的。所述第二账本信息可以包括以下任意一种或多种:保存所述文档数据的文件名称、所述文档数据的存储路径,所述文档数据的更新时间以及所述第二客户端b的ip地址。根据以上信息生成预设加密算法(例如,不可逆加密md5算法)的唯一性标识信息,获取第二客户端b本地存储的账本签名信息。
88.在本技术的示例性实施例中,对于同一文档数据来说,在第一客户端a和第二客户端b中对应的账本签名信息应该是相同的。因此,第二客户端b对第一客户端a发送的数据请求中的账本签名信息进行验证时,可以将从所述数据请求中提取的所述账本签名信息与本地存储的账本签名信息相比对。
89.在本技术的示例性实施例中,所述根据验证结果对所述文档数据采用相应的处理方案,可以包括:
90.当验证结果为所述第一验证结果时,将所述文档数据作为修改后数据进行保存;
91.当验证结果为所述第二验证结果时,将所述文档数据作为新增数据进行保存。
92.在本技术的示例性实施例中,如果验证结果为第一验证结果(两个账本签名信息一致),说明是针对第二客户端b中存储的文档数据的更新(可以视作对该文档数据进行了修改),因此可以将数据请求中提取的文档数据作为修改数据,用来更新第二本地账本文件中相应的文档数据;如果验证结果为第二验证结果(两个账本签名信息不一致),说明不是针对第二客户端b中存储的文档数据的更新(可以视作第二客户端b中原来未存储该文档信息,当前数据请求中的文档数据为新增文档),因此可以将数据请求中提取的文档数据作为新增数据,在第二本地账本文件中增加该新增数据。
93.在本技术的示例性实施例中,在完成文档数据处理操作后,第二客户端b可以修改第二账本信息的内容,以对第二账本信息进行更新,并可以生成最新的数字签名信息(即,根据更新后的第二账本信息生成最新的账本签名信息)。
94.在本技术的示例性实施例中,每个第二客户端b完成以上操作后,可以反馈结果至第一客户端a,第一客户端a同时也更新本机内的第一账本信息和数字签名信息(即,根据更新后的第一账本信息生成最新的账本签名信息),保证各个客户端内数字签名的统一。
95.本技术实施例还提供了一种基于区块链技术的文档处理装置1,如图5所示,可以包括第一处理器11和第一计算机可读存储介质12,所述第一计算机可读存储介质12中存储有第一指令,当所述第一指令被所述第一处理器11执行时,实现上述任意一项所述的应用于第一客户端侧的基于区块链技术的文档处理方法。
96.在本技术的示例性实施例中,前述的应用于第一客户端侧的基于区块链技术的文档处理方法实施例均适用于该装置实施例中,在此不再一一赘述。
97.本技术实施例还提供了一种基于区块链技术的文档处理方法,应用于第二客户端侧,所述第二客户端为预设的局域网内除所述第一客户端以外的处于开启状态的客户端;
所述第一客户端为预设的局域网内任意的需要对文档数据进行同步的客户端;如图6所示,所述方法可以包括s201-s203:
98.s201、与所述局域网内通过广播机制发送连接请求的第一客户端建立网络连接;
99.s202、接收所述第一客户端通过所述广播机制发送的数据请求;所述数据请求包含加密后的文档数据和账本签名信息;所述账本签名信息是所述第一客户端根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成的;
100.s203、对从所述数据请求中提取的所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。
101.在本技术的示例性实施例中,如图4所示,在局域网模式下,第一客户端需要发送两次请求,第一次请求为建立连接(可以称为连接请求)、第二次请求为数据传输(可以称为数据请求)。
102.在本技术的示例性实施例中,发送第一次请求时,第一客户端a可以获取本机ip地址和指定端口,通过多进程并发模式,指定端口及遍历局域网地址范围向其他客户端地址发送连接请求;如果某一个或多个第二客户端b处于开启状态,并且接收到该连接请求后,向第一客户端a反馈开启状态。
103.在本技术的示例性实施例中,第一客户端a将反馈了返回信息的第二客户端b作为可通信客户端,并记录这些第二客户端b的ip地址。
104.在本技术的示例性实施例中,该第二客户端b的ip地址用于第一客户端a后续发送数据请求时的目标地址。
105.在本技术的示例性实施例中,第一客户端a在广播第二次请求(数据请求)前,首先生成和加密(md5)关于本次数据请求的数字签名内容(即账本签名信息),将该数字签名信息附件在发送数据中发送给进行网络连接后的各个第二客户端b。
106.在本技术的示例性实施例中,所述第一账本信息可以包括以下任意一种或多种:保存所述文档数据的文件名称、所述文档数据的存储路径、所述文档数据的更新时间以及所述第一客户端的ip地址;
107.所述根据所述第一客户端a自身对应的第一本地账本文件中的第一账本信息生成账本签名信息,可以包括:通过预设的加密算法对所述文件名称、所述存储路径、所述更新时间以及所述第一客户端b的ip地址进行加密运算,获取一个唯一性标识信息,作为所述账本签名信息。
108.在本技术的示例性实施例中,在每个第一客户端a每次完成数据请求后,参与广播的任意客户端(包括第一客户端a和第二客户端b)都将在本机的账本文件中更新账本记录,账本信息可以包括:文件名称、存储路径、更新时间、客户端ip地址等信息,再由以上信息生成预设加密算法(例如,不可逆加密md5算法)的唯一性标识信息,获取该账本签名信息,通过步骤中第二客户端b在接收数据请求后对账本签名信息进行对比校验,解决文件信息统一和客户端信任问题。
109.在本技术的示例性实施例中,在第一客户端a生成该账本签名信息以后,可以向建立网络连接的第二客户端b发送第二次请求(数据请求)。具体地,用户可以在第一客户端a的界面进行操作,发送数据进行传输,基于前述方案中记录的第二客户端b的ip地址清单,可以采用多线程并发形式向第二客户端b发送数据请求。
110.在本技术的示例性实施例中,第二客户端b接收到数据请求以后,对从所述数据请求中提取的所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。
111.在本技术的示例性实施例中,对从所述数据请求中提取的所述账本签名信息进行验证,可以包括:
112.将从所述数据请求中提取的所述账本签名信息与本地存储的账本签名信息相比对;
113.当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息一致时,确定为第一验证结果;
114.当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息不一致时,确定为第二验证结果。
115.在本技术的示例性实施例中,第二客户端b接收到数据请求,提取数据请求中的账本签名信息,与本地存储的账本签名信息相比对相对比。
116.在本技术的示例性实施例中,第二客户端b本地存储的账本签名信息是由第二客户端b自身对应的第二本地账本文件中的第二账本信息生成的。所述第二账本信息可以包括以下任意一种或多种:保存所述文档数据的文件名称、所述文档数据的存储路径,所述文档数据的更新时间以及所述第二客户端b的ip地址。根据以上信息生成预设加密算法(例如,不可逆加密md5算法)的唯一性标识信息,获取第二客户端b本地存储的账本签名信息。
117.在本技术的示例性实施例中,对于同一文档数据来说,在第一客户端a和第二客户端b中对应的账本签名信息应该是相同的。因此,第二客户端b对第一客户端a发送的数据请求中的账本签名信息进行验证时,可以将从所述数据请求中提取的所述账本签名信息与本地存储的账本签名信息相比对。
118.在本技术的示例性实施例中,所述根据验证结果对所述文档数据采用相应的处理方案,可以包括:
119.当验证结果为所述第一验证结果时,将所述文档数据作为修改后数据进行保存;
120.当验证结果为所述第二验证结果时,将所述文档数据作为新增数据进行保存。
121.在本技术的示例性实施例中,如果验证结果为第一验证结果(两个账本签名信息一致),说明是针对第二客户端b中存储的文档数据的更新(可以视作对该文档数据进行了修改),因此可以将数据请求中提取的文档数据作为修改数据,用来更新第二本地账本文件中相应的文档数据;如果验证结果为第二验证结果(两个账本签名信息不一致),说明不是针对第二客户端b中存储的文档数据的更新(可以视作第二客户端b中原来未存储该文档信息,当前数据请求中的文档数据为新增文档),因此可以将数据请求中提取的文档数据作为新增数据,在第二本地账本文件中增加该新增数据。
122.在本技术的示例性实施例中,在完成文档数据处理操作后,第二客户端b可以修改第二账本信息的内容,以对第二账本信息进行更新,并可以生成最新的数字签名信息(即,根据更新后的第二账本信息生成最新的账本签名信息)。
123.在本技术的示例性实施例中,每个第二客户端b完成以上操作后,可以反馈结果至第一客户端a,第一客户端a同时也更新本机内的第一账本信息和数字签名信息(即,根据更新后的第一账本信息生成最新的账本签名信息),保证各个客户端内数字签名的统一。
124.在本技术的示例性实施例中,区块内其它的相关操作,如文件夹层级的建立、文件上传等,均可以如上述的文档处理方法一样,直接由操作端(任意客户端)异步发送请求,完成区块内全部客户端的实时同步。
125.本技术实施例还提供了一种基于区块链技术的文档处理装置2,如图7所示,可以包括第二处理器21和第二计算机可读存储介质22,所述第二计算机可读存储介质22中存储有第二指令,当所述第二指令被所述第二处理器21执行时,实现上述任意一项所述的应用于第二客户端侧的基于区块链技术的文档处理方法。
126.在本技术的示例性实施例中,前述的应用于第二客户端侧的基于区块链技术的文档处理方法实施例均适用于该装置实施例中,在此不再一一赘述。
127.本技术实施例还提供了一种客户端3,如图8所示,可以包含所述的基于区块链技术的文档处理装置1和基于区块链技术的文档处理装置2。
128.在本技术的示例性实施例中,前述的应用于第一客户端和第二客户端侧的基于区块链技术的文档处理方法实施例均适用于该装置实施例中,在此不再一一赘述。
129.在本技术的示例性实施例中,至少包含以下优势:
130.1、区块同步:参照区块链技术,同时基于企业内部局域网模式下,实现本地分布存储,每次操作记录都进行分布式账本进行记账,每台本地化操作都广播到局域网内其他开启状态的机器进行本地文件同步,可防篡改,确保文档可信度和记录修改痕迹。
131.2、去中心化-多机组合:每台机器可独立和组合使用,各机器之间不分主从关系,新机器开启时先与其他机器进行账本记录(即账本签名信息)对比,数据文件的本地更新与同步。这种模式不需要服务器,不仅节省了投资,还免维护,且即插即用,只要终端联网的模式下就可使用,可靠性高。而无需服务器模式下,在同一区域的办公终端的协同能够较好的适应企业较为复杂的网络和信息安全环境。
132.3、在线协同编辑:根据业务是否可以在线查看、在线编辑功能上传文件,实现文件的协同编辑工作,优化办公模式。
133.4、压缩加解密:数据文件采用压缩和加解密技术,提高传输速度和保障数据安全,符合企业数据安全要求。
134.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模
块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
技术特征:
1.一种基于区块链技术的文档处理方法,其特征在于,应用于第一客户端侧,所述第一客户端为预设的局域网内任意的需要对文档数据进行同步的客户端;所述方法包括:通过广播机制与所述局域网内的一个或多个第二客户端建立网络连接;所述第二客户端为所述局域网内除所述第一客户端以外的处于开启状态的客户端;根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成账本签名信息;通过所述广播机制,向建立网络连接的第二客户端发送数据请求;所述数据请求包含加密后的文档数据和所述账本签名信息;以使得每个建立网络连接的第二客户端接收到所述数据请求后,对所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。2.根据权利要求1所述的基于区块链技术的文档处理方法,其特征在于,所述通过广播机制与预设的局域网内处于开启状态的一个或多个第二客户端建立网络连接,包括:遍历所述局域网内第二客户端的ip地址,通过所述广播机制向遍历到的第二客户端发送连接请求;接收一个或多个所第二客户端的返回信息,所述返回信息包含所述第二客户端处于开启状态的信息,建立与所述一个或多个第二客户端的网络连接,并记录发送所述返回信息的第二客户端的ip地址。3.根据权利要求1所述的基于区块链技术的文档处理方法,其特征在于,所述第一账本信息包括以下任意一种或多种:保存所述文档数据的文件名称、所述文档数据的存储路径、所述文档数据的更新时间以及所述第一客户端的ip地址;所述根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成账本签名信息,包括:通过预设的加密算法对所述文件名称、所述存储路径、所述更新时间以及所述第二客户端的ip地址进行加密运算,获取一个唯一性标识信息,作为所述账本签名信息。4.根据权利要求1-3任意一项所述的基于区块链技术的文档处理方法,其特征在于,所述方法还包括:在包含所述文档数据的可编辑文件向所述第一客户端上传时,对所述可编辑文件的文件内容的读取以及数据流的转换进行加密,并对所述可编辑文件进行压缩;和/或,采用多进程并发形式向建立网络连接的第二客户端发送所述数据请求。5.一种基于区块链技术的文档处理装置,其特征在于,包括第一处理器和第一计算机可读存储介质,所述第一计算机可读存储介质中存储有第一指令,当所述第一指令被所述第一处理器执行时,实现如权利要求1-4任意一项所述的基于区块链技术的文档处理方法。6.一种基于区块链技术的文档处理方法,其特征在于,应用于第二客户端侧,所述第二客户端为预设的局域网内除第一客户端以外的处于开启状态的客户端;所述第一客户端为预设的局域网内任意的需要对文档数据进行同步的客户端;所述方法包括:与所述局域网内通过广播机制发送连接请求的第一客户端建立网络连接;接收所述第一客户端通过所述广播机制发送的数据请求;所述数据请求包含加密后的文档数据和账本签名信息;所述账本签名信息是所述第一客户端根据所述第一客户端自身对应的第一本地账本文件中的第一账本信息生成的;
对从所述数据请求中提取的所述账本签名信息进行验证,并根据验证结果对所述文档数据采用相应的处理方案。7.根据权利要求6所述的基于区块链技术的文档处理方法,其特征在于,所述对从所述数据请求中提取的所述账本签名信息进行验证,包括:将从所述数据请求中提取的所述账本签名信息与本地存储的账本签名信息相比对;当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息一致时,确定为第一验证结果;当从所述数据请求中提取的所述账本签名信息与所述本地存储的账本签名信息不一致时,确定为第二验证结果。8.根据权利要求7所述的基于区块链技术的文档处理方法,其特征在于,所述根据验证结果对所述文档数据采用相应的处理方案,包括:当验证结果为所述第一验证结果时,将所述文档数据作为修改后数据进行保存;当验证结果为所述第二验证结果时,将所述文档数据作为新增数据进行保存。9.一种基于区块链技术的文档处理装置,其特征在于,包括第二处理器和第二计算机可读存储介质,所述第二计算机可读存储介质中存储有第二指令,当所述第二指令被所述第二处理器执行时,实现如权利要求6-8任意一项所述的基于区块链技术的文档处理方法。10.一种客户端,其特征在于,包括权利要求5和权利要求9所述的基于区块链技术的文档处理装置。
技术总结
本申请实施例公开了一种基于区块链技术的文档处理方法、装置和客户端,应用于第一客户端侧的方法包括:通过广播机制与第二客户端建立网络连接;第二客户端为局域网内除第一客户端以外处于开启状态的客户端;根据第一客户端自身第一本地账本文件中的第一账本信息生成账本签名信息;通过广播机制向第二客户端发送数据请求;数据请求包含加密后的文档数据和账本签名信息;以使第二客户端接收到数据请求后对账本签名信息进行验证,并根据验证结果对文档数据采用相应的处理方案。该实施例方案实现了文档数据在客户端的分布式存储,实现了去中心化,并实现了文档的防篡改和不可否认,提高了网络安全性,方案简单、成本低,为即插即用提供技术基础。提供技术基础。提供技术基础。
技术研发人员:赵筑雨 何文仲 吕飞 林家杰
受保护的技术使用者:贵州黔驰信息股份有限公司
技术研发日:2021.12.02
技术公布日:2022/3/8