CN110046496B - 一种软件开发方法、系统及区块链节点设备和存储介质 - Google Patents
一种软件开发方法、系统及区块链节点设备和存储介质 Download PDFInfo
- Publication number
- CN110046496B CN110046496B CN201910339847.5A CN201910339847A CN110046496B CN 110046496 B CN110046496 B CN 110046496B CN 201910339847 A CN201910339847 A CN 201910339847A CN 110046496 B CN110046496 B CN 110046496B
- Authority
- CN
- China
- Prior art keywords
- software development
- development kit
- unique
- client
- identification information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种软件开发方法、系统及区块链节点设备和存储介质,该方法应用于区块链节点设备,包括:接收到客户端发送的用于下载软件开发工具包的下载指令后,确定预存软件开发工具包,触发第一智能合约;利用第一智能合约为预存软件开发工具包确定唯一标识,生成唯一软件开发工具包;将唯一软件开发工具包下发至客户端,使客户端基于唯一软件开发工具包进行软件开发。本申请在客户端下载软件开发工具包时,确定唯一的标识,生成唯一软件开发工具包,并基于唯一软件开发工具包进行软件开发,也即,本申请将软件开发工具包与客户端开发的软件进行绑定,若对软件开发工具包进行替换,软件不能继续运行,保证了软件的安全性,保护了开发商的利益。
Description
技术领域
本申请涉及区块链技术领域,更具体地说,涉及一种软件开发方法、系统及一种区块链节点设备和一种计算机可读存储介质。
背景技术
SDK(Software Development Kit,软件开发工具包),指为特定的软件或平台提供的开发工具的集合。当需要开发对应的软件时,总是需要先到官网下载对应的SDK,搭建开发环境,然后才能进行软件的开发。目前各个网站提供的SDK都是统一的,也就是说每个开发者下载到的SDK都一样,拷贝一份也是可以用的,例如,若一个团队开发了一款软件,而该软件用到了某开源公司提供的SDK包,在软件打包的时候该SDK包会一同打包到可执行文件里,此时若有人将可执行文件中的SDK包进行替换,由于SDK包是统一的,该软件还可以继续运行,因此可能会导致软件的安全问题,且损害开发商的利益。
发明内容
本申请的目的在于提供一种软件开发方法、系统及一种区块链节点设备和一种计算机可读存储介质,保证了软件的安全性,进而保护了开发商的利益。
为实现上述目的,本申请提供了一种软件开发方法,应用于区块链节点设备,包括:
当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;
将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
可选的,还包括:
获取并保存提供者上传的所述预存软件开发工具包。
可选的,所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包,包括:
确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;
利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包。
可选的,所述确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息,包括:
确定所述预存软件开发工具包的下载次数以及所述客户端的第二标识信息。
可选的,所述生成带有所述唯一标识的唯一软件开发工具包之后,还包括:
利用所述哈希值生成数字签名;
相应的,所述将所述唯一软件开发工具包下发至所述客户端,包括:
将所述唯一软件开发工具包以及所述数字签名下发至所述客户端,以使所述客户端利用所述数字签名验证所述唯一软件开发工具包是否被篡改。
可选的,所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识之前,还包括:
对所述预存软件开发工具包进行加密。
可选的,所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包之后,还包括:
触发第二智能合约,利用所述第二智能合约将所述预存软件开发工具包的第一标识信息和所述唯一标识记录至区块中,以便根据所述第一标识信息查询所述预存软件开发工具包的下载记录。
为实现上述目的,本申请提供了一种软件开发系统,应用于区块链节点设备,包括:
合约触发模块,用于当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
标识添加模块,用于利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;
软件开发模块,用于将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
可选的,还包括:
记录模块,用于在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包之后,触发第二智能合约,利用所述第二智能合约将所述预存软件开发工具包的第一标识信息和所述唯一标识记录至区块中,以便根据所述第一标识信息查询所述预存软件开发工具包的下载记录。
可选的,所述标识添加模块,包括:
标识确定子模块,用于确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;
哈希生成子模块,用于利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包。
可选的,所述标识确定子模块,包括:
信息确定单元,用于确定所述预存软件开发工具包的下载次数以及所述客户端的第二标识信息。
可选的,还包括:
签名生成模块,用于在所述生成带有所述唯一标识的唯一软件开发工具包之后,利用所述哈希值生成数字签名;
相应的,所述软件开发模块,包括:
签名验证单元,用于将所述唯一软件开发工具包以及所述数字签名下发至所述客户端,以使所述客户端利用所述数字签名验证所述唯一软件开发工具包是否被篡改。
可选的,还包括:
工具包加密模块,用于在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识之前,对所述预存软件开发工具包进行加密。
为实现上述目的,本申请提供了一种区块链节点设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种所述软件开发方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种所述软件开发方法的步骤。
通过以上方案可知,本申请提供的一种软件开发方法,应用于区块链节点设备,包括:当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。由上可知,本申请在客户端下载软件开发工具包时,将为其确定唯一的标识,从而生成唯一软件开发工具包,并基于唯一软件开发工具包进行软件开发,也即,本申请将软件开发工具包与客户端开发的软件进行绑定,若后续对软件中的软件开发工具包进行替换,软件将不能继续运行,保证了软件的安全性,进而保护了开发商的利益。
本申请还公开了一种软件开发系统及一种区块链节点设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种软件开发方法的流程图;
图2为本申请实施例公开的另一种软件开发方法的流程图;
图3为本申请实施例公开的又一种软件开发方法的流程图;
图4为本申请实施例公开的又一种软件开发方法的流程图;
图5为本申请实施例公开的再一种软件开发方法的流程图;
图6为本申请实施例公开的一种软件开发系统的结构图;
图7为本申请实施例公开的一种区块链节点设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,各个网站提供的SDK都是统一的,也就是说每个开发者下载到的SDK都一样,若有人将可执行文件中的SDK包进行替换,由于SDK包是统一的,该应用还可以继续运行,因此可能会导致应用的安全问题,且损害开发商的利益。
因此,本申请实施例公开了一种软件开发方法,应用于区块链节点设备,保证了软件的安全性,进而保护了开发商的利益。
参见图1,本申请实施例公开的一种软件开发方法的流程图,如图1所示,包括:
S101:当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
本实施例中,在客户端进行软件开发前,向区块链发送下载开发工具包的下载指令,区块链节点设备对下载指令进行解析,确定对应的预存软件开发工具包,并触发第一智能合约。可以理解的是,软件开发工具包的提供商预先将各自的预存软件开发工具包上传至区块链节点设备进行保存,在获取到下载指令后,需要从所有预存软件开发工具包中确定出当前客户端所要下载的软件开发工具包。
S102:利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;
可以理解的是,本实施例预先编写并部署了用于生成标识的第一智能合约,在第一智能合约触发后,利用第一智能合约确定预存软件开发工具包对应的唯一标识,从而生成携带唯一标识的唯一软件开发工具包。
S103:将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
进一步地,将当前客户端所对应的唯一软件开发工具包下发至客户端,以便客户端在接收到唯一软件开发工具包后基于该软件开发工具包进行软件开发。
通过以上方案可知,本申请提供的一种软件开发方法,应用于区块链节点设备,包括:当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。由上可知,本申请在客户端下载软件开发工具包时,将为其确定唯一的标识,从而生成唯一软件开发工具包,并基于唯一软件开发工具包进行软件开发,也即,本申请将软件开发工具包与客户端开发的软件进行绑定,若后续对软件中的软件开发工具包进行替换,软件将不能继续运行,保证了软件的安全性,进而保护了开发商的利益。
本申请实施例公开了一种软件开发方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图2,本申请实施例提供的另一种软件开发方法的流程图,如图2所示,包括:
S201:当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
S202:确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;
S203:利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包;
本实施例中,利用所述第一智能合约生成预存软件开发工具包的唯一标识,可以基于当前客户端的标识信息以及预存软件开发工具包的标识信息的结合体,确定一个唯一的哈希值。其中,客户端的标识信息可以为预先确定的唯一ID号或唯一名称,预存软件开发工具包的标识信息可以为预先编写的工具包的唯一ID号、唯一名称或实时获取的预存软件开发工具包的下载次数。
S204:将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
本申请实施例公开了一种软件开发方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图3、图4,本申请实施例提供的又一种软件开发方法的流程图,如图3、图4所示,包括:
S301:当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
S302:对所述预存软件开发工具包进行加密,并确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;
S303:利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包;
S304:利用所述哈希值生成数字签名;
S305:将所述唯一软件开发工具包以及所述数字签名下发至所述客户端,以使所述客户端利用所述数字签名验证所述唯一软件开发工具包是否被篡改,并在解密后基于所述唯一软件开发工具包进行软件开发。
本实施例中,在确定当前下载指令对应的预存软件开发工具包之后,对预存软件开发工具包进行加密,以保证预存软件开发工具包的安全性。进一步地,在为预存软件开发工具包生成哈希值之后,还根据哈希值生成数字签名,从而在开发者通过客户端接收到唯一软件开发工具包之后,根据数字签名验证唯一软件开发工具包是否发生了篡改,保证了唯一软件开发工具包的完整性和准确性,在确认未发生篡改之后,对该唯一软件开发工具包进行解密,进而进行软件开发。
本申请实施例公开了一种软件开发方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图5,本申请实施例提供的再一种软件开发方法的流程图,如图5所示,包括:
S401:当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
S402:利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;
S403:触发第二智能合约,利用所述第二智能合约将所述预存软件开发工具包的第一标识信息和所述唯一标识记录至区块中,以便根据所述第一标识信息查询所述预存软件开发工具包的下载记录;
可以理解的是,在客户端下载所需的软件开发工具包之后,将预存软件开发工具包的第一标识信息和唯一标识进行记录,从而后续SDK提供商可以基于预存软件开发工具包的第一标识信息查找对应的唯一标识,以获取下载记录,实现了软件开发工具包的可追溯性,为开发人员追踪问题、统计数据等提供了便利。
S404:将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
下面对本申请实施例提供的一种软件开发系统进行介绍,下文描述的一种软件开发系统与上文描述的一种软件开发方法可以相互参照。
参见图6,本申请实施例提供的一种软件开发系统的结构图,如图6所示,包括:
合约触发模块100,用于当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
标识添加模块200,用于利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;
软件开发模块300,用于将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
在上述实施例的基础上,作为一种优选实施方式,本申请实施例提供的软件开发系统还可以进一步包括:
记录模块,用于在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包之后,触发第二智能合约,利用所述第二智能合约将所述预存软件开发工具包的第一标识信息和所述唯一标识记录至区块中,以便根据所述第一标识信息查询所述预存软件开发工具包的下载记录。
在上述实施例的基础上,作为一种优选实施方式,在本申请实施例提供的软件开发系统中,所述标识添加模块,包括:
标识确定子模块,用于确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;
哈希生成子模块,用于利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包。
在上述实施例的基础上,作为一种优选实施方式,在本申请实施例提供的软件开发系统中,所述标识确定子模块,包括:
信息确定单元,用于确定所述预存软件开发工具包的下载次数以及所述客户端的第二标识信息。
在上述实施例的基础上,作为一种优选实施方式,本申请实施例提供的软件开发系统还可以进一步包括:
签名生成模块,用于在所述生成带有所述唯一标识的唯一软件开发工具包之后,利用所述哈希值生成数字签名;
相应的,所述软件开发模块,包括:
签名验证单元,用于将所述唯一软件开发工具包以及所述数字签名下发至所述客户端,以使所述客户端利用所述数字签名验证所述唯一软件开发工具包是否被篡改。
在上述实施例的基础上,作为一种优选实施方式,本申请实施例提供的软件开发系统还可以进一步包括:
工具包加密模块,用于在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识之前,对所述预存软件开发工具包进行加密。
本申请还提供了一种区块链节点设备,参见图7,本申请实施例提供的一种区块链节点设备的结构图,如图7所示,包括:
存储器11,用于存储计算机程序;
处理器12,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器11包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器12在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为区块链节点设备提供计算和控制能力,执行所述存储器11中保存的计算机程序时,可以实现以下步骤:
当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
优选的,所述处理器12执行所述存储器11中保存的计算机子程序时,可以实现以下步骤:获取并保存提供者上传的所述预存软件开发工具包。
优选的,所述处理器12执行所述存储器11中保存的计算机子程序时,可以实现以下步骤:确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包。
优选的,所述处理器12执行所述存储器11中保存的计算机子程序时,可以实现以下步骤:确定所述预存软件开发工具包的下载次数以及所述客户端的第二标识信息。
优选的,所述处理器12执行所述存储器11中保存的计算机子程序时,可以实现以下步骤:在所述生成带有所述唯一标识的唯一软件开发工具包之后,利用所述哈希值生成数字签名;相应的,所述将所述唯一软件开发工具包下发至所述客户端,包括:将所述唯一软件开发工具包以及所述数字签名下发至所述客户端,以使所述客户端利用所述数字签名验证所述唯一软件开发工具包是否被篡改。
优选的,所述处理器12执行所述存储器11中保存的计算机子程序时,可以实现以下步骤:在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识之前,对所述预存软件开发工具包进行加密。
优选的,所述处理器12执行所述存储器11中保存的计算机子程序时,可以实现以下步骤:在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包之后,触发第二智能合约,利用所述第二智能合约将所述预存软件开发工具包的第一标识信息和所述唯一标识记录至区块中,以便根据所述第一标识信息查询所述预存软件开发工具包的下载记录。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:获取并保存提供者上传的所述预存软件开发工具包。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:确定所述预存软件开发工具包的下载次数以及所述客户端的第二标识信息。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:在所述生成带有所述唯一标识的唯一软件开发工具包之后,利用所述哈希值生成数字签名;相应的,所述将所述唯一软件开发工具包下发至所述客户端,包括:将所述唯一软件开发工具包以及所述数字签名下发至所述客户端,以使所述客户端利用所述数字签名验证所述唯一软件开发工具包是否被篡改。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识之前,对所述预存软件开发工具包进行加密。
优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:在所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包之后,触发第二智能合约,利用所述第二智能合约将所述预存软件开发工具包的第一标识信息和所述唯一标识记录至区块中,以便根据所述第一标识信息查询所述预存软件开发工具包的下载记录。
本申请在客户端下载软件开发工具包时,将为其确定唯一的标识,从而生成唯一软件开发工具包,并基于唯一软件开发工具包进行软件开发,也即,本申请将软件开发工具包与客户端开发的软件进行绑定,若后续对软件中的软件开发工具包进行替换,软件将不能继续运行,保证了软件的安全性,进而保护了开发商的利益。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (8)
1.一种软件开发方法,其特征在于,应用于区块链节点设备,包括:
当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;
将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发;
其中,所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包,包括:
确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包;
所述确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息,包括:
确定所述预存软件开发工具包的下载次数以及所述客户端的第二标识信息。
2.根据权利要求1所述的软件开发方法,其特征在于,还包括:
获取并保存提供者上传的所述预存软件开发工具包。
3.根据权利要求1所述的软件开发方法,其特征在于,所述生成带有所述唯一标识的唯一软件开发工具包之后,还包括:
利用所述哈希值生成数字签名;
相应的,所述将所述唯一软件开发工具包下发至所述客户端,包括:
将所述唯一软件开发工具包以及所述数字签名下发至所述客户端,以使所述客户端利用所述数字签名验证所述唯一软件开发工具包是否被篡改。
4.根据权利要求1所述的软件开发方法,其特征在于,所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识之前,还包括:
对所述预存软件开发工具包进行加密。
5.根据权利要求1至4任一项所述的软件开发方法,其特征在于,所述利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包之后,还包括:
触发第二智能合约,利用所述第二智能合约将所述预存软件开发工具包的第一标识信息和所述唯一标识记录至区块中,以便根据所述第一标识信息查询所述预存软件开发工具包的下载记录。
6.一种软件开发系统,其特征在于,应用于区块链节点设备,包括:
合约触发模块,用于当接收到客户端发送的用于下载软件开发工具包的下载指令后,确定所述下载指令对应的预存软件开发工具包,并触发第一智能合约;
标识添加模块,用于利用所述第一智能合约为所述预存软件开发工具包确定唯一标识,生成带有所述唯一标识的唯一软件开发工具包;
软件开发模块,用于将所述唯一软件开发工具包下发至所述客户端,以使所述客户端基于所述唯一软件开发工具包进行软件开发;
其中,所述标识添加模块,包括:
标识确定子模块,用于确定所述预存软件开发工具包的第一标识信息以及所述客户端的第二标识信息;
哈希生成子模块,用于利用所述第一智能合约对所述第一标识信息和所述第二标识信息进行哈希运算,生成带有哈希值的所述唯一软件开发工具包;
所述标识确定子模块,包括:
信息确定单元,用于确定所述预存软件开发工具包的下载次数以及所述客户端的第二标识信息。
7.一种区块链节点设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述软件开发方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述软件开发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910339847.5A CN110046496B (zh) | 2019-04-25 | 2019-04-25 | 一种软件开发方法、系统及区块链节点设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910339847.5A CN110046496B (zh) | 2019-04-25 | 2019-04-25 | 一种软件开发方法、系统及区块链节点设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046496A CN110046496A (zh) | 2019-07-23 |
CN110046496B true CN110046496B (zh) | 2023-05-30 |
Family
ID=67279404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910339847.5A Active CN110046496B (zh) | 2019-04-25 | 2019-04-25 | 一种软件开发方法、系统及区块链节点设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046496B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855750B (zh) * | 2019-10-21 | 2023-02-28 | 深圳市元征科技股份有限公司 | 一种软件开发工具包的下载方法及相关设备 |
CN112199676B (zh) * | 2020-11-03 | 2024-08-30 | 中国南方电网有限责任公司 | 变电站运维检修系统、方法、装置和计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709280A (zh) * | 2016-12-08 | 2017-05-24 | 北京旷视科技有限公司 | 信息处理方法和用于信息处理的客户端、服务器端 |
CN107770115A (zh) * | 2016-08-15 | 2018-03-06 | 华为技术有限公司 | 在对等网络中分发数字内容的方法和系统 |
CN108304696A (zh) * | 2018-03-12 | 2018-07-20 | 黄君 | 基于区块链的软件保护方法及软件保护系统 |
CN108804879A (zh) * | 2017-05-03 | 2018-11-13 | 思科技术公司 | 用于内容和服务共享的方法和系统 |
CN108833081A (zh) * | 2018-06-22 | 2018-11-16 | 中国人民解放军国防科技大学 | 一种基于区块链的设备组网认证方法 |
CN109640135A (zh) * | 2018-12-07 | 2019-04-16 | 深圳市云歌人工智能技术有限公司 | 发布视频以及获取视频的方法、装置以及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572688B2 (en) * | 2017-04-07 | 2020-02-25 | Cisco Technology, Inc. | Blockchain based software licensing enforcement |
US11449887B2 (en) * | 2017-10-09 | 2022-09-20 | American Express Travel Related Services Company, Inc. | Systems and methods for loyalty point distribution |
-
2019
- 2019-04-25 CN CN201910339847.5A patent/CN110046496B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770115A (zh) * | 2016-08-15 | 2018-03-06 | 华为技术有限公司 | 在对等网络中分发数字内容的方法和系统 |
CN106709280A (zh) * | 2016-12-08 | 2017-05-24 | 北京旷视科技有限公司 | 信息处理方法和用于信息处理的客户端、服务器端 |
CN108804879A (zh) * | 2017-05-03 | 2018-11-13 | 思科技术公司 | 用于内容和服务共享的方法和系统 |
CN108304696A (zh) * | 2018-03-12 | 2018-07-20 | 黄君 | 基于区块链的软件保护方法及软件保护系统 |
CN108833081A (zh) * | 2018-06-22 | 2018-11-16 | 中国人民解放军国防科技大学 | 一种基于区块链的设备组网认证方法 |
CN109640135A (zh) * | 2018-12-07 | 2019-04-16 | 深圳市云歌人工智能技术有限公司 | 发布视频以及获取视频的方法、装置以及存储介质 |
Non-Patent Citations (3)
Title |
---|
Blockchain-Oriented Software Engineering: Challenges and New Directions;Simone Porru etc.;《2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C)》;20170703;第169-171页 * |
基于区块链智能合约的物联网数据资产化方法;盛念祖 等;《浙江大学学报(工学版)》;20181130;第2150-2158页 * |
基于区块链生态系统的充电桩共享经济模式;齐林海 等;《电力建设》;20170930;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110046496A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108985081B (zh) | 一种水印加密方法、装置、介质和电子设备 | |
CN109284586B (zh) | 一种软件授权许可实现方法和装置 | |
CN108683502B (zh) | 一种数字签名验证方法、介质及设备 | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
CN108363580A (zh) | 应用程序安装方法、装置、计算机设备和存储介质 | |
US20120272052A1 (en) | Method for generating a cryptographic key for a protected digital data object on the basis of current components of a computer | |
US20150095653A1 (en) | Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package | |
US20160162686A1 (en) | Method for verifying integrity of dynamic code using hash background of the invention | |
CN109086578A (zh) | 一种软件授权使用的方法、设备及存储介质 | |
CN108880820B (zh) | 代码管理方法和装置 | |
CN110046496B (zh) | 一种软件开发方法、系统及区块链节点设备和存储介质 | |
CN106326691B (zh) | 加解密功能的实现方法、装置及服务器 | |
CN110830257A (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN111709047B (zh) | 信息管理系统及其方法 | |
US8745375B2 (en) | Handling of the usage of software in a disconnected computing environment | |
CN112966229A (zh) | 安全运行sdk的方法及装置 | |
KR101863325B1 (ko) | 역공학 방지 방법 및 장치 | |
CN111079155A (zh) | 数据处理方法、装置、电子设备和计算机存储介质 | |
CN113761483B (zh) | 一种基于软加密应用程序的软件产品保护方法及设备、介质 | |
US20190042709A1 (en) | Technique for Enabling Nominal Flow of an Executable File | |
CN112732676B (zh) | 基于区块链的数据迁移方法、装置、设备及存储介质 | |
CN115795438A (zh) | 应用程序授权的方法、系统及可读存储介质 | |
KR20170050648A (ko) | 이트레이닝 콘텐츠 사용을 위한 암호화된 패키지 생성 및 전송 시스템 | |
CN114124922B (zh) | 一种基于区块链的应用分发方法 | |
CN111786938B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |