CN109375944B - 一种基于区块链数据结构的终端软件分发验证方法 - Google Patents
一种基于区块链数据结构的终端软件分发验证方法 Download PDFInfo
- Publication number
- CN109375944B CN109375944B CN201810984245.0A CN201810984245A CN109375944B CN 109375944 B CN109375944 B CN 109375944B CN 201810984245 A CN201810984245 A CN 201810984245A CN 109375944 B CN109375944 B CN 109375944B
- Authority
- CN
- China
- Prior art keywords
- version
- file
- block
- software
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于区块链数据结构的终端软件分发验证方法,包括:版本文件压缩成zip包,上传到服务器;服务器解zip包,上传后的文件由服务器生成版本数据,并存储版本文件;服务器通知软件分发客户端有新的版本,软件分发客户端从服务器下载版本链信息,已有版本区块校验,未下载版本区块则下载;对更新版本的校验,校验失败则文件重新下载,直到下载完全成功,完成对更新版本的校验后,将区块文件更新到软件运行目录中。通过上述方式,本发明能够完成对终端版本的分发验证,利用区块链数据结构存储版本信息,不易篡改,保证终端软件的升级的完整准确;利用版本文件哈希值易于验证软件分发结果。
Description
技术领域
本发明涉及终端软件分发验证领域,特别是涉及一种基于区块链数据结构的终端软件分发验证方法。
背景技术
终端设备上软件的部署和维护工作量大,时间长,成本高。而远程软件分发也面临着分发文件内容错误或软件更新时出错的问题。
发明内容
本发明主要解决的技术问题是提供一种基于区块链数据结构的终端软件分发验证方法,能够完成对终端版本的分发验证,利用区块链数据结构存储版本信息,不易篡改,保证终端软件的升级的完整准确;利用版本文件哈希值易于验证软件分发结果。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于区块链数据结构的终端软件分发验证方法,包括:终端设备上设置软件分发客户端,服务器上设置软件版本数据库,版本文件存储库;版本链条上每个版本构成区块链的一个区块,区块中存在区块头和区块文件,其中区块头中包含了前一区块的区块头哈希值和本区块区块文件的完整哈希树,即本区块的区块文件需计算生成默克尔树;终端设备和服务器上均存储完整的软件版本链条;
版本分发步骤如下;
第一步,版本文件压缩成zip包,上传到服务器,设置版本号;服务器解zip包,将版本文件存储在版本文件存储库中,并生成版本文件的完整默克尔树路径,并放入软件版本数据库,与当前版本号对应;另外,软件版本数据库中还需计算前一版本的区块头哈希值并存储;
第二步,服务器通知软件分发客户端有新的版本;软件分发客户端连接软件版本数据库获取新版本的区块头数据,并获得前一版本的头哈希值,与当前版本链条中对比,如果当前版本链条中已存在此哈希值,则仅需下载此新版本即可,否则继续向前追溯,直到找到已存在的版本为止;
第三步,得到新版本的默克尔树,根据默克尔树中文件哈希值从版本文件存储库获取文件并校验,如果校验失败则文件重新下载,直到下载完全成功,更新本地版本链条,并根据文件路径进行文件更新,文件更新完成也需校验文件哈希值,校验失败则需重新进行更新操作;重复此步骤,直到已得到最新版本并更新完成。
进一步,第一步中上传的版本包文件打包时要按照实际更新的目录结构打包、上传;上传后的文件由服务器生成版本数据,并存储版本文件。
进一步,第二步中软件分发客户端从服务器下载版本链信息,已有版本区块校验,未下载版本区块则下载。
进一步,第三步中完成对更新版本的校验后,将区块文件更新到软件运行目录中。
本发明的有益效果是:本发明利用区块链构建版本链条,并利用区块链实现对软件分发结果的检查,本发明能准确的进行软件分发,避免软件分发中出现错误引起终端软件出现错误。
具体实施方式
下面对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
本发明实施例包括:
一种基于区块链数据结构的终端软件分发验证方法,包括:终端设备上设置软件分发客户端,服务器上设置软件版本数据库,版本文件存储库;版本链条上每个版本构成区块链的一个区块,区块中存在区块头和区块文件,其中区块头中包含了前一区块的区块头哈希值和本区块区块文件的完整哈希树,即本区块的区块文件需计算生成默克尔树;终端设备和服务器上均存储完整的软件版本链条;
版本分发步骤如下;
第一步,版本文件压缩成zip包,上传到服务器,设置版本号,上传的版本包文件打包时要按照实际更新的目录结构打包、上传;上传后的文件由服务器生成版本数据,并存储版本文件;服务器解zip包,将版本文件存储在版本文件存储库中,并生成版本文件的完整默克尔树路径,并放入软件版本数据库,与当前版本号对应;另外,软件版本数据库中还需计算前一版本的区块头哈希值并存储;
第二步,服务器通知软件分发客户端有新的版本;软件分发客户端连接软件版本数据库获取新版本的区块头数据,并获得前一版本的头哈希值,与当前版本链条中对比,如果当前版本链条中已存在此哈希值,则仅需下载此新版本即可,否则继续向前追溯,直到找到已存在的版本为止;
第三步,得到新版本的默克尔树,根据默克尔树中文件哈希值从版本文件存储库获取文件并校验,如果校验失败则文件重新下载,直到下载完全成功,更新本地版本链条,并根据文件路径进行文件更新,文件更新完成也需校验文件哈希值,校验失败则需重新进行更新操作;重复此步骤,直到已得到最新版本并更新完成。例如设备本机版本链条存储目录D:\atm\version_chain,其中根据区块头哈希值创建目录,目录中分别存储区块头数据和区块文件,区块文件需按照更新时的目录结构存储;完成对更新版本的校验后,将区块文件更新到软件运行目录中。
本发明利用区块链构建版本链条,并利用区块链实现对软件分发结果的检查,本发明能准确的进行软件分发,避免软件分发中出现错误引起终端软件出现错误。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种基于区块链数据结构的终端软件分发验证方法,其特征在于,包括:终端设备上设置软件分发客户端,服务器上设置软件版本数据库,版本文件存储库;版本链条上每个版本构成区块链的一个区块,区块中存在区块头和区块文件,其中区块头中包含了前一区块的区块头哈希值和本区块区块文件的完整哈希树,即本区块的区块文件需计算生成默克尔树;终端设备和服务器上均存储完整的软件版本链条;
版本分发步骤如下;
第一步,版本文件压缩成zip包,上传到服务器,设置版本号;服务器解zip包,将版本文件存储在版本文件存储库中,并生成版本文件的完整默克尔树路径,并放入软件版本数据库,与当前版本号对应;另外,软件版本数据库中还需计算前一版本的区块头哈希值并存储;
第二步,服务器通知软件分发客户端有新的版本;软件分发客户端连接软件版本数据库获取新版本的区块头数据,并获得前一版本的头哈希值,与当前版本链条中对比,如果当前版本链条中已存在此哈希值,则仅需下载此新版本即可,否则继续向前追溯,直到找到已存在的版本为止;
第三步,得到新版本的默克尔树,根据默克尔树中文件哈希值从版本文件存储库获取文件并校验,如果校验失败则文件重新下载,直到下载完全成功,更新本地版本链条,并根据文件路径进行文件更新,文件更新完成也需校验文件哈希值,校验失败则需重新进行更新操作;重复此步骤,直到已得到最新版本并更新完成。
2.根据权利要求1所述的一种基于区块链数据结构的终端软件分发验证方法,其特征在于:第一步中上传的版本包文件打包时要按照实际更新的目录结构打包、上传;上传后的文件由服务器生成版本数据,并存储版本文件。
3.根据权利要求1所述的一种基于区块链数据结构的终端软件分发验证方法,其特征在于:第二步中软件分发客户端从服务器下载版本链信息,已有版本区块校验,未下载版本区块则下载。
4.根据权利要求1所述的一种基于区块链数据结构的终端软件分发验证方法,其特征在于:第三步中完成对更新版本的校验后,将区块文件更新到软件运行目录中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810984245.0A CN109375944B (zh) | 2018-08-28 | 2018-08-28 | 一种基于区块链数据结构的终端软件分发验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810984245.0A CN109375944B (zh) | 2018-08-28 | 2018-08-28 | 一种基于区块链数据结构的终端软件分发验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109375944A CN109375944A (zh) | 2019-02-22 |
CN109375944B true CN109375944B (zh) | 2021-10-01 |
Family
ID=65404820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810984245.0A Active CN109375944B (zh) | 2018-08-28 | 2018-08-28 | 一种基于区块链数据结构的终端软件分发验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109375944B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069948A (zh) * | 2019-03-14 | 2019-07-30 | 深圳壹账通智能科技有限公司 | 将系列数字文件在区块链上进行公开的方法及相关设备 |
CN110489161B (zh) * | 2019-08-22 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 一种版本文件的管理方法及相关装置 |
CN110989994B (zh) * | 2019-11-18 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 基于区块链的代码版本管理方法、装置、终端及存储介质 |
CN111177096A (zh) * | 2019-12-11 | 2020-05-19 | 招银云创(深圳)信息技术有限公司 | 日志管理方法、装置、计算机设备和存储介质 |
KR102365945B1 (ko) * | 2019-12-12 | 2022-02-22 | (주)포뎁스 | 블록체인을 기반으로 응용 애플리케이션에 대한 업데이트 처리가 가능한 전자 단말 장치 및 그 동작 방법 |
CN111679853A (zh) * | 2020-06-08 | 2020-09-18 | 中国银行股份有限公司 | 开源软件的发布方法、装置、计算机设备及可读存储介质 |
CN112491812B (zh) * | 2020-07-08 | 2022-03-01 | 支付宝(杭州)信息技术有限公司 | 区块链一体机的哈希更新方法及装置 |
CN113971289A (zh) | 2020-07-08 | 2022-01-25 | 支付宝(杭州)信息技术有限公司 | 区块链一体机的可信启动方法及装置 |
CN112947967B (zh) * | 2021-03-08 | 2023-09-26 | 中国联合网络通信集团有限公司 | 软件更新方法、区块链应用商店及软件上传终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763369A (zh) * | 2016-02-04 | 2016-07-13 | 湖南长城信息金融设备有限责任公司 | 一种终端设备远程软件版本分发方法及系统 |
CN107077557A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 软件应用程序发布和验证的方法及装置 |
CN107733651A (zh) * | 2017-09-11 | 2018-02-23 | 联动优势科技有限公司 | 一种区块链生成方法、节点及系统 |
TW201812674A (zh) * | 2016-07-08 | 2018-04-01 | 英商凱理普特恩國際有限公司 | 分散式交易處理與認證系統 |
CN108023794A (zh) * | 2017-12-04 | 2018-05-11 | 四川长虹电器股份有限公司 | 一种设备访问控制方法及装置 |
CN108270874A (zh) * | 2018-02-05 | 2018-07-10 | 武汉斗鱼网络科技有限公司 | 应用程序的更新方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437585B2 (en) * | 2015-10-23 | 2019-10-08 | Oracle International Corporation | Managing highly scalable continuous delivery pipelines |
US10438170B2 (en) * | 2017-01-05 | 2019-10-08 | International Business Machines Corporation | Blockchain for program code credit and programmer contribution in a collective |
-
2018
- 2018-08-28 CN CN201810984245.0A patent/CN109375944B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763369A (zh) * | 2016-02-04 | 2016-07-13 | 湖南长城信息金融设备有限责任公司 | 一种终端设备远程软件版本分发方法及系统 |
TW201812674A (zh) * | 2016-07-08 | 2018-04-01 | 英商凱理普特恩國際有限公司 | 分散式交易處理與認證系統 |
CN107077557A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 软件应用程序发布和验证的方法及装置 |
CN107733651A (zh) * | 2017-09-11 | 2018-02-23 | 联动优势科技有限公司 | 一种区块链生成方法、节点及系统 |
CN108023794A (zh) * | 2017-12-04 | 2018-05-11 | 四川长虹电器股份有限公司 | 一种设备访问控制方法及装置 |
CN108270874A (zh) * | 2018-02-05 | 2018-07-10 | 武汉斗鱼网络科技有限公司 | 应用程序的更新方法及装置 |
Non-Patent Citations (1)
Title |
---|
"区块链~Merkle Tree(默克尔树)算法解析";桑海;《https://www.cnblogs.com/sanghai/p/7608701.html》;20170928;第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109375944A (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109375944B (zh) | 一种基于区块链数据结构的终端软件分发验证方法 | |
CN105763369B (zh) | 一种终端设备远程软件版本分发方法及系统 | |
CN104699511B (zh) | 插件升级方法及装置 | |
CN106575227B (zh) | 自动软件更新框架 | |
CN104866307B (zh) | 一种应用程序的修复方法和装置 | |
CN106302753A (zh) | 客户端程序增量更新的方法及系统 | |
CN104363264A (zh) | 移动终端软件的多渠道sdk接入系统及方法 | |
CN113114749B (zh) | 一种哈希链构建及文件数据同步方法、装置及系统 | |
CN105302554A (zh) | 一种Android系统自动化程序构建方法及系统 | |
CN110337036B (zh) | 机顶盒的升级方法、装置及存储介质 | |
CN104133699B (zh) | 设备系统软件升级方法与系统 | |
CN104461873A (zh) | 一种应用程序的测试方法和装置 | |
WO2019243201A1 (en) | Hierarchical distributed ledger | |
CN104469409A (zh) | 智能电视软件差分升级的自动化测试方法 | |
CN103218244A (zh) | 通信设备的软件更新升级方法 | |
CN114968323A (zh) | 一种基于国密算法的差分升级方法 | |
CN108334771B (zh) | 一种增量升级包生成、增量更新方法及装置 | |
CN114168182A (zh) | 一种Android终端应用升级的方法 | |
CN112667272A (zh) | 电表升级方法、系统、智能电表及存储介质 | |
CN108200157A (zh) | 主节点触发回退的日志同步方法及装置 | |
CN107438017A (zh) | 服务器系统接口扩展器固件升级方法及系统 | |
CN107633179B (zh) | 一种操作数据库的方法及系统 | |
CN113934624B (zh) | 一种深空探测系统星载程序在轨维护、验证系统及方法 | |
JP6979987B2 (ja) | 情報処理装置 | |
CN114443111A (zh) | 一种控制器本地差分刷写的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210818 Address after: 215100 818 Wusong Road, Wusong River Industrial Park, Wuzhong development area, Suzhou, Jiangsu Applicant after: INSPUR FINANCIAL INFORMATION TECHNOLOGY Co.,Ltd. Address before: 215100 Building 1, 178 Tayun Road, Yuexi street, Wuzhong District, Suzhou City, Jiangsu Province Applicant before: SUZHOU INSPUR INTELLIGENT SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |