CN109375944B - 一种基于区块链数据结构的终端软件分发验证方法 - Google Patents

一种基于区块链数据结构的终端软件分发验证方法 Download PDF

Info

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
Application number
CN201810984245.0A
Other languages
English (en)
Other versions
CN109375944A (zh
Inventor
张家重
王涛
胡焱
付宪瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Financial Information Technology Co Ltd
Original Assignee
Inspur Financial Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Financial Information Technology Co Ltd filed Critical Inspur Financial Information Technology Co Ltd
Priority to CN201810984245.0A priority Critical patent/CN109375944B/zh
Publication of CN109375944A publication Critical patent/CN109375944A/zh
Application granted granted Critical
Publication of CN109375944B publication Critical patent/CN109375944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明公开了一种基于区块链数据结构的终端软件分发验证方法,包括:版本文件压缩成zip包,上传到服务器;服务器解zip包,上传后的文件由服务器生成版本数据,并存储版本文件;服务器通知软件分发客户端有新的版本,软件分发客户端从服务器下载版本链信息,已有版本区块校验,未下载版本区块则下载;对更新版本的校验,校验失败则文件重新下载,直到下载完全成功,完成对更新版本的校验后,将区块文件更新到软件运行目录中。通过上述方式,本发明能够完成对终端版本的分发验证,利用区块链数据结构存储版本信息,不易篡改,保证终端软件的升级的完整准确;利用版本文件哈希值易于验证软件分发结果。

Description

一种基于区块链数据结构的终端软件分发验证方法
技术领域
本发明涉及终端软件分发验证领域,特别是涉及一种基于区块链数据结构的终端软件分发验证方法。
背景技术
终端设备上软件的部署和维护工作量大,时间长,成本高。而远程软件分发也面临着分发文件内容错误或软件更新时出错的问题。
发明内容
本发明主要解决的技术问题是提供一种基于区块链数据结构的终端软件分发验证方法,能够完成对终端版本的分发验证,利用区块链数据结构存储版本信息,不易篡改,保证终端软件的升级的完整准确;利用版本文件哈希值易于验证软件分发结果。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于区块链数据结构的终端软件分发验证方法,包括:终端设备上设置软件分发客户端,服务器上设置软件版本数据库,版本文件存储库;版本链条上每个版本构成区块链的一个区块,区块中存在区块头和区块文件,其中区块头中包含了前一区块的区块头哈希值和本区块区块文件的完整哈希树,即本区块的区块文件需计算生成默克尔树;终端设备和服务器上均存储完整的软件版本链条;
版本分发步骤如下;
第一步,版本文件压缩成zip包,上传到服务器,设置版本号;服务器解zip包,将版本文件存储在版本文件存储库中,并生成版本文件的完整默克尔树路径,并放入软件版本数据库,与当前版本号对应;另外,软件版本数据库中还需计算前一版本的区块头哈希值并存储;
第二步,服务器通知软件分发客户端有新的版本;软件分发客户端连接软件版本数据库获取新版本的区块头数据,并获得前一版本的头哈希值,与当前版本链条中对比,如果当前版本链条中已存在此哈希值,则仅需下载此新版本即可,否则继续向前追溯,直到找到已存在的版本为止;
第三步,得到新版本的默克尔树,根据默克尔树中文件哈希值从版本文件存储库获取文件并校验,如果校验失败则文件重新下载,直到下载完全成功,更新本地版本链条,并根据文件路径进行文件更新,文件更新完成也需校验文件哈希值,校验失败则需重新进行更新操作;重复此步骤,直到已得到最新版本并更新完成。
进一步,第一步中上传的版本包文件打包时要按照实际更新的目录结构打包、上传;上传后的文件由服务器生成版本数据,并存储版本文件。
进一步,第二步中软件分发客户端从服务器下载版本链信息,已有版本区块校验,未下载版本区块则下载。
进一步,第三步中完成对更新版本的校验后,将区块文件更新到软件运行目录中。
本发明的有益效果是:本发明利用区块链构建版本链条,并利用区块链实现对软件分发结果的检查,本发明能准确的进行软件分发,避免软件分发中出现错误引起终端软件出现错误。
具体实施方式
下面对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
本发明实施例包括:
一种基于区块链数据结构的终端软件分发验证方法,包括:终端设备上设置软件分发客户端,服务器上设置软件版本数据库,版本文件存储库;版本链条上每个版本构成区块链的一个区块,区块中存在区块头和区块文件,其中区块头中包含了前一区块的区块头哈希值和本区块区块文件的完整哈希树,即本区块的区块文件需计算生成默克尔树;终端设备和服务器上均存储完整的软件版本链条;
版本分发步骤如下;
第一步,版本文件压缩成zip包,上传到服务器,设置版本号,上传的版本包文件打包时要按照实际更新的目录结构打包、上传;上传后的文件由服务器生成版本数据,并存储版本文件;服务器解zip包,将版本文件存储在版本文件存储库中,并生成版本文件的完整默克尔树路径,并放入软件版本数据库,与当前版本号对应;另外,软件版本数据库中还需计算前一版本的区块头哈希值并存储;
第二步,服务器通知软件分发客户端有新的版本;软件分发客户端连接软件版本数据库获取新版本的区块头数据,并获得前一版本的头哈希值,与当前版本链条中对比,如果当前版本链条中已存在此哈希值,则仅需下载此新版本即可,否则继续向前追溯,直到找到已存在的版本为止;
第三步,得到新版本的默克尔树,根据默克尔树中文件哈希值从版本文件存储库获取文件并校验,如果校验失败则文件重新下载,直到下载完全成功,更新本地版本链条,并根据文件路径进行文件更新,文件更新完成也需校验文件哈希值,校验失败则需重新进行更新操作;重复此步骤,直到已得到最新版本并更新完成。例如设备本机版本链条存储目录D:\atm\version_chain,其中根据区块头哈希值创建目录,目录中分别存储区块头数据和区块文件,区块文件需按照更新时的目录结构存储;完成对更新版本的校验后,将区块文件更新到软件运行目录中。
本发明利用区块链构建版本链条,并利用区块链实现对软件分发结果的检查,本发明能准确的进行软件分发,避免软件分发中出现错误引起终端软件出现错误。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (4)

1.一种基于区块链数据结构的终端软件分发验证方法,其特征在于,包括:终端设备上设置软件分发客户端,服务器上设置软件版本数据库,版本文件存储库;版本链条上每个版本构成区块链的一个区块,区块中存在区块头和区块文件,其中区块头中包含了前一区块的区块头哈希值和本区块区块文件的完整哈希树,即本区块的区块文件需计算生成默克尔树;终端设备和服务器上均存储完整的软件版本链条;
版本分发步骤如下;
第一步,版本文件压缩成zip包,上传到服务器,设置版本号;服务器解zip包,将版本文件存储在版本文件存储库中,并生成版本文件的完整默克尔树路径,并放入软件版本数据库,与当前版本号对应;另外,软件版本数据库中还需计算前一版本的区块头哈希值并存储;
第二步,服务器通知软件分发客户端有新的版本;软件分发客户端连接软件版本数据库获取新版本的区块头数据,并获得前一版本的头哈希值,与当前版本链条中对比,如果当前版本链条中已存在此哈希值,则仅需下载此新版本即可,否则继续向前追溯,直到找到已存在的版本为止;
第三步,得到新版本的默克尔树,根据默克尔树中文件哈希值从版本文件存储库获取文件并校验,如果校验失败则文件重新下载,直到下载完全成功,更新本地版本链条,并根据文件路径进行文件更新,文件更新完成也需校验文件哈希值,校验失败则需重新进行更新操作;重复此步骤,直到已得到最新版本并更新完成。
2.根据权利要求1所述的一种基于区块链数据结构的终端软件分发验证方法,其特征在于:第一步中上传的版本包文件打包时要按照实际更新的目录结构打包、上传;上传后的文件由服务器生成版本数据,并存储版本文件。
3.根据权利要求1所述的一种基于区块链数据结构的终端软件分发验证方法,其特征在于:第二步中软件分发客户端从服务器下载版本链信息,已有版本区块校验,未下载版本区块则下载。
4.根据权利要求1所述的一种基于区块链数据结构的终端软件分发验证方法,其特征在于:第三步中完成对更新版本的校验后,将区块文件更新到软件运行目录中。
CN201810984245.0A 2018-08-28 2018-08-28 一种基于区块链数据结构的终端软件分发验证方法 Active CN109375944B (zh)

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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 中国银行股份有限公司 开源软件的发布方法、装置、计算机设备及可读存储介质
CN111541788B (zh) 2020-07-08 2020-10-16 支付宝(杭州)信息技术有限公司 区块链一体机的哈希更新方法及装置
CN111541553B (zh) 2020-07-08 2021-08-24 支付宝(杭州)信息技术有限公司 区块链一体机的可信启动方法及装置
CN112947967B (zh) * 2021-03-08 2023-09-26 中国联合网络通信集团有限公司 软件更新方法、区块链应用商店及软件上传终端

Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 一种终端设备远程软件版本分发方法及系统
CN107239288B (zh) 一种移动终端的版本升级方法及装置
CN104699511B (zh) 插件升级方法及装置
CN106575227B (zh) 自动软件更新框架
CN110851135A (zh) 应用程序自动构建上传方法、装置及计算机设备、存储介质
CN104866307B (zh) 一种应用程序的修复方法和装置
CN106302753A (zh) 客户端程序增量更新的方法及系统
CN104363264A (zh) 移动终端软件的多渠道sdk接入系统及方法
CN110337036B (zh) 机顶盒的升级方法、装置及存储介质
CN113114749B (zh) 一种哈希链构建及文件数据同步方法、装置及系统
CN109426521A (zh) 一种无线终端版本升级系统及方法
CN104133699B (zh) 设备系统软件升级方法与系统
WO2016145897A1 (zh) 一种更新数据包的制作方法及装置
CN103218244B (zh) 通信设备的软件更新升级方法
CN109002312A (zh) 软件升级方法、装置及升级服务器和设备
CN105867988A (zh) 一种基于Hook技术的Android App热更新的方法及系统
WO2019243201A1 (en) Hierarchical distributed ledger
CN104932887A (zh) 一种平台系统的插件管理方法和平台系统
CN108334771B (zh) 一种增量升级包生成、增量更新方法及装置
CN110308923A (zh) 一种ota升级的测试方法及其系统
CN114564227A (zh) 应用程序更新方法、装置、电子设备和存储介质
CN109726104B (zh) 移动终端的测试包生成方法、测试终端及存储介质
CN112667272A (zh) 电表升级方法、系统、智能电表及存储介质
CN110692078B (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