WO2020073543A1 - 一种基于区块链的软件版本数据管理系统及建立方法 - Google Patents

一种基于区块链的软件版本数据管理系统及建立方法 Download PDF

Info

Publication number
WO2020073543A1
WO2020073543A1 PCT/CN2019/070004 CN2019070004W WO2020073543A1 WO 2020073543 A1 WO2020073543 A1 WO 2020073543A1 CN 2019070004 W CN2019070004 W CN 2019070004W WO 2020073543 A1 WO2020073543 A1 WO 2020073543A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
software
node
software version
blockchain
Prior art date
Application number
PCT/CN2019/070004
Other languages
English (en)
French (fr)
Inventor
王劲松
赵泽宁
张洪玮
林胜
Original Assignee
天津理工大学
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 天津理工大学 filed Critical 天津理工大学
Priority to US16/641,254 priority Critical patent/US11443042B2/en
Publication of WO2020073543A1 publication Critical patent/WO2020073543A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Definitions

  • the invention belongs to the technical field of software management, and in particular relates to a software version data management system and establishment method based on a blockchain.
  • the current version management methods include the following:
  • Centralized software version management scheme In the centralized software version management scheme, each software company publishes its own software data on the official platform maintained by itself. Inter-company software compatibility issues are not considered.
  • the software data released by the existing centralized software version management scheme is only up to the system hardware version at the time of software release. There is no effective test for the system or hardware released after the software, and the existing software version management scheme cannot Collaborative software development according to company needs.
  • the information of the blockchain cannot be tampered with, and a decentralized software version data management system based on the blockchain is designed and established Methods, through the use of blockchain and P2P to solve the copyright problem of software, to ensure that the software obtained by the user is genuine software released by the manufacturer, and to achieve common maintenance and management of software versions and collaborative development of software.
  • the purpose of the present invention is to overcome the shortcomings of the prior art, provide a software version data based on blockchain that can ensure that the software obtained by the user is genuine software released by the manufacturer, and solve the problem of incompatibility of multi-version software systems Management system and establishment method.
  • a blockchain-based software version data management system includes a data acquisition module, a data transmission module, and a data consensus module.
  • the data acquisition module is used to acquire data information and structure it to prepare for data broadcasting.
  • the data transmission module is used for the transmission and verification of the software version data in the blockchain;
  • the data consensus module is that all parties of the software version management unify the software version through a consensus mechanism, and provide users with the relevant software by providing a software address interface;
  • the data acquisition module includes data generation, data splicing, and data encapsulation.
  • Data generation is collected by the parties involved in software version management of the data of their own software, and the manufacturer forms standard data;
  • data splicing, data encapsulation collects the collected data Screening integration and labeling, eliminating duplicate data and data that does not meet the needs, and giving unified storage standards for synthetic data, and splicing, storing, and packaging the filtered data to form structured data;
  • the data transmission module includes data communication, data parsing, and data forwarding.
  • Data communication and data forwarding solves the general participation of all parties involved in software version management, negotiates and signs alliance treaties through parties, and is based on a blockchain-based communication protocol , Provide decentralized P2P network communication for all parties involved in software version management.
  • Data analysis analyzes the transmitted data according to the rules. Unparsed data will be discarded or retransmitted;
  • the data consensus module includes block synchronization, data verification, and consensus mechanism.
  • Block synchronization receives and synchronizes block data by setting sockets.
  • Data verification ensures the reliability of software sources and software data in synchronized blocks.
  • the consensus mechanism is the consensus mechanism of the blockchain, for the content protection of the software download record, release and trace of the download record and topological storage.
  • the method of establishing a software version data management system based on blockchain includes the following steps:
  • the state parameters include The number of nodes, the status of each node, and the structured processing to generate new storage data, as the genesis block and broadcast to the entire network, each node of the entire network stores the genesis block data, and adopts a blockchain-based communication protocol ;
  • the nodes on the chain publish the software version information generated in step (1). Other nodes receive the information via broadcast, and use digital signature technology to determine the identity of the broadcast information node and the authenticity of the data.
  • the version information is checked for integrity. If the verification is successful, the software data is uploaded to the chain; if the node is a non-chain member, each node in the blockchain network reaches a consensus through a consensus mechanism. If more than half of the nodes in the alliance are obtained With permission, you can verify that the information passes, and add the node information to the genesis block, and check the integrity of the software version information. If the verification is successful, the software information is uploaded to the chain; if you have not obtained more than half of the nodes in the alliance If permission or information verification fails, then the information should be rejected.
  • step (2) when a new node applies for joining the network, it must be broadcasted throughout the network and negotiated and agreed by all members in the chain. After the determination, the initial information parameters of the node are generated into new data. Save in the genesis block.
  • the content of the communication protocol during the configuration of the communication protocol in step (2) is as follows: the user broadcasts the software information to the entire network, and other users of the system store and forward the information after receiving the broadcast information; all secondary nodes in the system Elect the master node to generate a new block and broadcast it; each secondary node in the system verifies the validity of the broadcast block; if the verification is passed, the node's own blockchain is updated, if the verification fails, it is re-selected The master node generates blocks.
  • step (3) The verification process is: the alliance node receives the broadcasted software version information, requests the software according to the address, and judges the authenticity of the software verification. If the software verification passes, the software version information is generated and broadcast to the entire network; when the user downloads When the software is complete, you need to calculate the verification code of the downloaded software, and compare the calculated verification code with the verification code stored in the blockchain. If the verification is passed, a new software address will be generated.
  • the node with the right to pack the block verifies the new address, if the address is valid, it is placed in the block, so that other software acquirers can get the software from there; if the verification fails, Then the software manufacturer is notified to re-clean and package the software version information.
  • member nodes share data with each other, so that the data is true and reliable, and effectively solves the problem of widespread spread of junk software and pirated software;
  • the decentralized strategy of the blockchain of the present invention can reduce the maintenance cost of the platform and the management difficulty of a single software enterprise
  • the distributed architecture of the block of the present invention ensures that the system will not be paralyzed by a single point of failure, effectively avoiding the impact of DDOS attacks on the system;
  • FIG. 1 is a schematic structural diagram of a blockchain-based software version data management system according to an embodiment of the present invention
  • FIG. 2 is a flowchart of data processing during the establishment of a software version data management system based on a blockchain provided by an embodiment of the present invention
  • FIG. 3 is a flow chart of data communication during the establishment of a software version data management system based on a blockchain provided by an embodiment of the present invention
  • FIG. 4 is a flow chart of the content of a communication protocol during the establishment of a software version data management system based on a blockchain provided by an embodiment of the present invention
  • FIG. 5 is a flowchart of data consensus during the establishment of a software version data management system based on a blockchain provided by an embodiment of the present invention
  • FIG. 6 is a flowchart of software address consensus in the process of establishing a blockchain-based software version data management system provided by an embodiment of the present invention
  • FIG. 1 is a schematic structural diagram of a blockchain-based software version data management system provided by an embodiment of the present invention
  • FIG. 2 is a data processing flowchart during a process of establishing a blockchain-based software version data management system provided by an embodiment of the present invention
  • Figure 3 is a flow chart of data communication during the establishment of a blockchain-based software version data management system provided by an embodiment of the present invention
  • Figure 4 is a process of establishing a blockchain-based software version data management system provided by an embodiment of the present invention
  • FIG. 5 is a flow chart of data consensus during the establishment of a blockchain-based software version data management system provided by an embodiment of the present invention
  • FIG. 1 is a schematic structural diagram of a blockchain-based software version data management system provided by an embodiment of the present invention
  • FIG. 2 is a data processing flowchart during a process of establishing a blockchain-based software version data management system provided by an embodiment of the present invention
  • Figure 3 is a
  • a software version data management system based on blockchain provided in this embodiment includes a data acquisition module, a data transmission module and A data consensus module, the data acquisition module is used to acquire and structure data to prepare for data broadcasting, The data transmission module is used for the transmission and verification of software version management data in the blockchain; the data consensus module is that all parties to the software version management unify the software version data through a consensus mechanism.
  • the data acquisition module includes data generation, data splicing, and data encapsulation.
  • Data generation is collected by the parties involved in software version management of the data of their own software, and the manufacturer forms standard data;
  • data splicing, data encapsulation collects the collected data Screening integration and labeling, eliminating duplicate data and data that does not meet the needs, and giving unified storage standards for synthetic data, and splicing, storing, and packaging the filtered data to form structured data;
  • the data transmission module includes data communication, data parsing, and data forwarding.
  • Data communication and data forwarding solves the general participation of all parties involved in software version management, negotiates and signs alliance treaties through parties, and is based on a blockchain-based communication protocol , Provide decentralized P2P network communication for all parties involved in software version management.
  • Data analysis analyzes the transmitted data according to the rules. Unparsed data will be discarded or retransmitted;
  • the data consensus module includes block synchronization, data verification, and a consensus mechanism.
  • Block synchronization receives and synchronizes block data by setting a socket.
  • Data verification ensures the reliability of software sources and software information in synchronized blocks, and handles tampered software.
  • the consensus mechanism is the consensus mechanism of the blockchain, which protects, publishes, and traces the download content of software download records. And topological storage.
  • a method for establishing a software version data management system based on blockchain includes the following steps:
  • the parties involved in version management collect the data they own, clean the data, remove duplicate and useless data, and perform data inspection on the processed data.
  • the data inspection here uses The data verification method in the prior art is used to verify whether the data information has errors and other errors to ensure the accuracy of the data.
  • the software is used to generate a string representing the software and its address, the software address of the block, and the MD5 verification of the software Code and SHA1 check code, structure and package the software information and software address to generate software version information;
  • the nodes involved in the software version management are initialized and configured.
  • the parties sign an alliance treaty to organize the nodes into a regional autonomous alliance.
  • Each alliance node is uniquely identified, and the initial network is added after the stored identification.
  • Status parameters including the number of nodes and the status of each node, and structured processing to generate new storage data, as a genesis block and broadcast to the entire network using a blockchain-based communication protocol, each node of the entire network stores World block data; when a new node applies to join the network, it must send a message broadcast requesting block data to the entire network, and after all members in the chain negotiate the correctness of the node parameters in the broadcast request, after the agreement is passed
  • the initial information parameters of the node generate new information, save it in the genesis block, and transfer the blockchain data to the node, and configure the communication protocol of the blockchain on the node; the node has successfully completed its own system
  • the initial configuration starts to accept broadcast information and process the broadcast request of the blockchain together with other nodes.
  • the specific content of the communication protocol in the communication protocol configuration process in the step (2) is shown in FIG. 4: the user of the software version data management system based on the blockchain broadcasts the software data to the entire network, Other users of the system store and forward the information after receiving the broadcast information; all secondary nodes in the system elect the master node to generate new blocks and broadcast; each secondary node in the system performs the validity of the broadcast block Verification; if the verification is passed, the node's own blockchain is updated, and if the verification fails, the master node is re-selected for block generation.
  • the nodes on the chain release the software version information generated in step (1), and other nodes receive the information via broadcast, and use digital signature technology to determine the identity of the broadcast information node and the authenticity of the information.
  • the broadcast information node is an alliance Member nodes, check the integrity of the software version data, if the verification is successful, the software data is chained; if the node is a non-chain member, each node in the blockchain network reaches a consensus through a consensus mechanism, if obtained With the permission of more than half of the nodes in the alliance, you can verify that the data passes, and add the node information to the genesis block, and check the integrity of the software version data. If the verification is successful, the software information is uploaded to the chain; if it is not obtained If the permission or information verification fails for more than half of the nodes in the alliance, the information should be rejected.
  • the integrity verification process of the software version data in the step (3) is as shown in FIG. 6: the software manufacturer uses the software to generate a character string representing the software and its address, the package software address, and the software ’s MD5 check code and SHA1 check code, structure and package software information and software address, generate software version information, and broadcast the software version information to the entire network; the alliance node receives the broadcasted software version information, and requests the software according to the address To judge the authenticity of the software verification, if the software verification is passed, the software version data generation block will be broadcast to the entire network; when the user downloads the complete software, the verification code of the downloaded software needs to be calculated and calculated The post-check code is compared with the check code stored in the blockchain.
  • the present invention can provide a software version data management system based on blockchain and the establishment of a software that can ensure that the software obtained by the user is genuine software released by the manufacturer and solves the problem of incompatibility of multi-version software systems. method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于区块链的软件版本数据管理系统及建立方法,所述软件版本数据管理系统包括数据获取、数据传输和数据共识模块;数据获取模块包括数据产生、数据拼接、数据封装,提供了软件版本数据的获取及结构化处理等功能;数据传输模块包括数据通信、数据解析及数据转发,提供了软件版本数据的传输功能;数据共识模块包括区块同步、数据验证、共识机制,提供了软件版本数据的可靠性检验、系统新区块产生及节点数据同步;该系统通过区块链去中心化的特性避免了由中心化系统单点故障带来的系统瘫痪问题,解决多版本软件系统兼容性不统一的问题,降低软件版本数据维护的成本。

Description

一种基于区块链的软件版本数据管理系统及建立方法 技术领域
本发明属于软件管理技术领域,尤其涉及一种基于区块链的软件版本数据管理系统及建立方法。
背景技术
随着软件技术的发展,软件数量逐年增长,软件在兼容新系统的同时,也会选择性摒弃旧系统,这造成了系统可用软件版本的不明确。现存的软件平台很多,但是各个平台软件版本不统一,并且很多软件平台的软件包含了大量的垃圾信息,造成了软件侵权。如何确保软件系统兼容性信息,使得用户可以根据自身硬件信息进行软件版本选取,如何保证软件版权不被侵犯,是在软件版本管理中的两个最重要的问题。
目前的版本管理方法,包括以下几种:
传统软件版本管理方案:目前大多数软件平台采用的方法是软件平台根据软件公司发布的数据进行软件数据展示。
中心化软件版本管理方案:在中心化软件版本管理方案中,各个软件公司在自己维护的官方平台中发布自己软件的数据。公司间软件兼容性问题不被考虑。
但是,现有的中心化软件版本管理方案发布的软件数据只截止到软件发布时的系统硬件版本,对于在软件后发布的系统或硬件没有进行有效的 测试,并且现有的软件版本管理方案不能根据公司需求进行协作软件开发。
此外,现有的传统软件版本管理方案对于数据的可信性大多数没有进行验证,并且对于软件的来源以及是否包含垃圾信息或恶意内容没有进行有效的检测,导致大量不可用软件充斥着整个软件平台。
因此,针对软件运行环境不明确,解决多版本软件系统兼容性不统一的问题,利用区块链的信息不可篡改性,设计一种基于区块链的去中心化的软件版本数据管理系统及建立方法,通过采用区块链及P2P的方式解决软件的版权问题,以保证用户得到的软件是厂商发布的正版软件,并且实现软件版本的共同维护和管理以及软件的协作开发。
发明内容
本发明的目的在于克服现有技术的不足,提供一种能保证用户得到的软件是厂商发布的正版软件,解决多版本软件系统兼容性不统一的问题的一种基于区块链的软件版本数据管理系统及建立方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于区块链的软件版本数据管理系统,包括数据获取模块、数据传输模块和数据共识模块,所述数据获取模块用于获取数据信息并将其结构化后为数据广播做准备,所述数据传输模块用于区块链中软件版本数据的传递及验证;所述数据共识模块是软件版本管理各方通过共识机制对软件版本达成统一,并通过提供软件地址接口使用户获得相关软件;
所述数据获取模块包括数据产生、数据拼接、数据封装,数据产生是由参与软件版本管理的各方对自己软件的数据自行采集,由厂商形成标准数据;数据拼接、数据封装对采集到的数据进行筛选整合和标记,剔除重 复的数据和不满足需求的数据,并给出合成数据的统一存储标准,并将筛选后的数据进行拼接、存储以及封装,最终形成结构化数据;
所述数据传输模块包括数据通信、数据解析及数据转发,数据通信和数据转发解决参与软件版本管理的各方的普遍参与性,通过各方商议并签署联盟条约,并基于区块链的通信协议,为参与软件版本管理的各方提供去中心化的P2P网络通信,数据解析对传输的数据按照规则进行解析,无法解析的数据将会舍弃或者重传;
所述数据共识模块包括区块同步、数据验证、共识机制,区块同步通过设置套接字对区块数据进行接收和同步,数据验证确保同步的区块中软件来源及软件数据的可靠性,并处理被篡改的软件,所述共识机制为区块链的共识机制,对软件下载记录作记录内容保护、发布及下载记录溯源以及拓扑式存储。
基于区块链的软件版本数据管理系统建立方法,包括如下步骤:
(1)数据产生及处理
参与版本管理的各方对自己拥有的数据进行采集,并对数据进行清洗,对重复和无用数据进行去除,对处理后的数据做数据检验,确保数据的正确性,使用软件生成代表软件及其地址的字符串,包块软件地址,软件的MD5校验码和SHA1校验码,将软件数据和软件地址进行结构化及封装,生成软件版本信息;
(2)数据通信
对参与软件版本管理的各方进行节点初始化配置,通过各方签署联盟条约将节点组织成一个区域自治联盟,对各联盟节点作唯一标识,存储的标识后加上网络初始状态参数,状态参数包括节点数、各节点状态,并对其结构化处理生成新的存储数据,作为创世区块并广播至全网,全网络各节点存储创世区块数据,并采用基于区块链的通信协议;
(3)数据共识
链上节点发布步骤(1)中生成的软件版本信息,其他节点经广播接收信息,通过数字签名技术判断广播信息的节点身份及数据的真实性,若广播信息节点是联盟成员节点,则对软件版本信息进行完整性校验,若校验成功,则将软件数据上链;若节点是非链内成员,则区块链网络中各节点通过共识机制达成许可共识,若获得联盟中一半以上节点的许可,即可验证信息通过,并将节点信息加入创世区块,并对软件版本信息进行完整性校验,若校验成功,则将软件信息上链;若未获得联盟中一半以上节点的许可或者信息校验失败或者,则该拒绝该信息。
需要说明的是,所述步骤(2)中,当新的节点申请加入网络时,须全网广播并经过链中所有成员的协商议定,确定后将该节点的初始信息参数生成新的数据,保存在创世区块中。
此外,所述步骤(2)中通信协议配置过程中的通信协议内容为:用户将软件信息广播至全网,系统其它用户在收到广播信息后对信息进行存储和转发;系统内所有副节点选举出主节点用于生成新的区块并进行广播;系统内各个副节点对广播的区块的有效性进行验证;若验证通过则更新节点自身的区块链,若验证不通过则重新选取主节点进行区块生成。
并且,除了软件共享带来的空间占用问题,软件的完整性校验也是软件共享中的主要问题之一,为了有效确保软件的完整性,所述步骤(3)中的软件版本数据的完整性校验过程为:联盟节点收到广播的软件版本信息,根据地址请求软件,判断软件校验的真实性,若软件校验通过,则将软件版本信息生成区块广播至全网;当用户下载完整的软件时,需对下载的软件进行校验码计算,并将计算后的校验码与区块链中存储的校验码做比对,若校验通过,则生成新的软件地址,并将其广播至全网,具有打包 区块权利的节点验证新的地址,若该地址有效则将其放入区块中,方便其他软件获取者从该处取得软件;若校验未通过,则通知软件厂商重新对软件版本信息进行数据清洗及封装。
本发明的优点和积极效果是:
1、本发明以区块链全网共享记录的形式,成员节点相互之间在共享的同时,做到数据真实可靠,有效解决了垃圾软件和盗版软件广泛传播的问题;
2、本发明区块链的去中心化的策略可以减少平台的维护成本,降低单一软件企业的管理难度;
3、本发明区块的分布式的架构确保系统不会由于单点故障而瘫痪,有效避免了DDOS攻击对系统的影响;
4、本发明只有获得授权的节点方可发布数据,数据经过处理后放置在区块链上,有效保证了信息的可靠性和真实性;通过数字签名机制,既可以保证数据的真实性又可以保证数据的安全。
附图说明
以下将结合附图和实施例来对本发明的技术方案作进一步的详细描述,但是应当知道,这些附图仅是为解释目的而设计的,因此不作为本发明范围的限定。此外,除非特别指出,这些附图仅意在概念性地说明此处描述的结构构造,而不必要依比例进行绘制。
图1为本发明实施例提供的基于区块链的软件版本数据管理系统的结构示意图;
图2为本发明实施例提供的基于区块链的软件版本数据管理系统建立 过程中的数据处理流程图;
图3为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的数据通信流程图;
图4为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的通信协议内容流程图;
图5为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的数据共识流程图;
图6为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的软件地址共识流程图;
具体实施方式
首先,需要说明的是,以下将以示例方式来具体说明本发明的具体结构、特点和优点等,然而所有的描述仅是用来进行说明的,而不应将其理解为对本发明形成任何限制。此外,在本文所提及各实施例中予以描述或隐含的任意单个技术特征,仍然可在这些技术特征(或其等同物)之间继续进行任意组合或删减,从而获得可能未在本文中直接提及的本发明的更多其他实施例。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地 列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面就结合图1至图6来具体说明本发明。
实施例1
图1为本发明实施例提供的基于区块链的软件版本数据管理系统的结构示意图;图2为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的数据处理流程图;图3为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的数据通信流程图;图4为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的通信协议内容流程图;图5为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的数据共识流程图;图6为本发明实施例提供的基于区块链的软件版本数据管理系统建立过程中的软件地址共识流程图;如图1~6所示,本实施例提供的一种基于区块链的软件版本数据管理系统,包括数据获取模块、数据传输模块和数据共识模块,所述数据获取模块用于获取数据信息并将其结构化后为数据广播做准备,所述数据传输模块用于区块链中软件版本管理数据的传递及验证;所述数据共识模块是软件版本管理各方通过共识机制对软件版本数据达成统一,通过提供软件地址接口可以使用户获得相关软件;
所述数据获取模块包括数据产生、数据拼接、数据封装,数据产生是由参与软件版本管理的各方对自己软件的数据自行采集,由厂商形成标准数据;数据拼接、数据封装对采集到的数据进行筛选整合和标记,剔除重 复的数据和不满足需求的数据,并给出合成数据的统一存储标准,并将筛选后的数据进行拼接、存储以及封装,最终形成结构化数据;
所述数据传输模块包括数据通信、数据解析及数据转发,数据通信和数据转发解决参与软件版本管理的各方的普遍参与性,通过各方商议并签署联盟条约,并基于区块链的通信协议,为参与软件版本管理的各方提供去中心化的P2P网络通信,数据解析对传输的数据按照规则进行解析,无法解析的数据将会舍弃或者重传;
所述数据共识模块包括区块同步、数据验证、共识机制,区块同步通过设置套接字对区块数据进行接收和同步。数据验证确保同步的区块中软件来源及软件信息的可靠性,并处理被篡改的软件,所述共识机制为区块链的共识机制,对软件下载记录作记录内容保护、发布及下载记录溯源以及拓扑式存储。
一种基于区块链的软件版本数据管理系统建立方法,包括如下步骤:
(1)数据产生及处理
如图2所示,参与版本管理的各方对自己拥有的数据进行采集,并对数据进行清洗,对重复和无用数据进行去除,对处理后的数据做数据检验,此处的数据检验即采用现有技术中的数据校验方法,以校验数据信息是否存在误差及其他错误,确保数据的正确性,使用软件生成代表软件及其地址的字符串,包块软件地址,软件的MD5校验码和SHA1校验码,将软件信息和软件地址进行结构化及封装,生成软件版本信息;
(2)数据通信
根据图3所示,对参与软件版本管理的各方进行节点初始化配置,通过各方签署联盟条约将节点组织成一个区域自治联盟,对各联盟节点作唯一标识,存储的标识后加上网络初始状态参数,状态参数包括节点数、各节点状态,并对其结构化处理生成新的存储数据,作为创世区块并采用基 于区块链的通信协议广播至全网,全网络各节点存储创世区块数据;当新的节点申请加入网络时,须向全网发送请求区块数据的消息广播,并经过链中所有成员协商议定广播请求中的节点参数的正确性,议定通过后将该节点的初始信息参数生成新的信息,保存在创世区块中,并将区块链数据传输给该节点,将区块链的通信协议配置在该节点上;节点至此成功完成了自身的系统初始配置,开始接受广播信息并与其它节点共同处理区块链的广播请求。
其中,需要说明的是,所述步骤(2)中通信协议配置过程中的通信协议具体内容如图4所述:该基于区块链的软件版本数据管理系统用户将软件数据广播至全网,系统其它用户在收到广播信息后对信息进行存储和转发;系统内所有副节点选举出主节点用于生成新的区块并进行广播;系统内各个副节点对广播的区块的有效性进行验证;若验证通过则更新节点自身的区块链,若验证不通过则重新选取主节点进行区块生成。
(3)数据共识
根据图5所示,链上节点发布步骤(1)中生成的软件版本信息,其他节点经广播接收信息,通过数字签名技术判断广播信息的节点身份及信息的真实性,若广播信息节点是联盟成员节点,则对软件版本数据进行完整性校验,若校验成功,则将软件数据上链;若节点是非链内成员,则区块链网络中各节点通过共识机制达成许可共识,若获得联盟中一半以上节点的许可,即可验证数据通过,并将节点信息加入创世区块,并对软件版本数据进行完整性校验,若校验成功,则将软件信息上链;若未获得联盟中一半以上节点的许可或者信息校验失败或者,则该拒绝该信息。
需要说明的是,所述步骤(3)中的软件版本数据的完整性校验过程为如图6所示:软件厂商使用软件生成代表软件及其地址的字符串,包块软件地址,软件的MD5校验码和SHA1校验码,将软件信息和软件地址进 行结构化及封装,生成软件版本信息,将软件版本信息广播至全网;联盟节点收到广播的软件版本信息,根据地址请求软件,判断软件校验的真实性,若软件校验通过,则将软件版本数据生成区块广播至全网;当用户下载完整的软件时,需对下载的软件进行校验码计算,并将计算后的校验码与区块链中存储的校验码做比对,若校验通过,则生成新的软件地址,并将其广播至全网,具有打包区块权利的节点验证新的地址,若该地址有效则将其放入区块中,方便其他软件获取者从该处取得软件;若校验未通过,则通知软件厂商重新对软件版本数据进行数据清洗及封装。
综上所述,本发明可提供一种能保证用户得到的软件是厂商发布的正版软件,解决多版本软件系统兼容性不统一的问题的一种基于区块链的软件版本数据管理系统及建立方法。
以上实施例对本发明进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

Claims (5)

  1. 一种基于区块链的软件版本数据管理系统,其特征在于:包括数据获取模块、数据传输模块和数据共识模块,所述数据获取模块用于获取数据信息并将其结构化后为数据广播做准备,所述数据传输模块用于区块链中软件版本数据的传递及验证;所述数据共识模块是软件版本管理各方通过共识机制对软件版本达成统一,并通过提供软件地址接口使用户获得相关软件;
    所述数据获取模块包括数据产生、数据拼接、数据封装,数据产生是由参与软件版本管理的各方对自己软件的数据自行采集,由厂商形成标准数据;数据拼接、数据封装对采集到的数据进行筛选整合和标记,剔除重复的数据和不满足需求的数据,并给出合成数据的统一存储标准,并将筛选后的数据进行拼接、存储以及封装,最终形成结构化数据;
    所述数据传输模块包括数据通信、数据解析及数据转发,数据通信和数据转发解决参与软件版本管理的各方的普遍参与性,通过各方商议并签署联盟条约,并基于区块链的通信协议,为参与软件版本管理的各方提供去中心化的P2P网络通信,数据解析对传输的数据按照规则进行解析,无法解析的数据将会舍弃或者重传;
    所述数据共识模块包括区块同步、数据验证、共识机制,区块同步通过设置套接字对区块数据进行接收和同步,数据验证确保同步的区块中软件来源及软件数据的可靠性,并处理被篡改的软件,所述共识机制为区块链的共识机制,对软件下载记录作记录内容保护、发布及下载记录溯源以及拓扑式存储。
  2. 一种基于区块链的软件版本数据管理系统建立方法,其特征在于:包括如下步骤:
    (1)数据产生及处理
    参与版本管理的各方对自己拥有的数据进行采集,并对数据进行清洗,对重复和无用数据进行去除,对处理后的数据做数据检验,确保数据的正确性,使用软件生成代表软件及其地址的字符串,包块软件地址,软件的MD5校验码和SHA1校验码,将软件数据和软件地址进行结构化及封装,生成软件版本信息;
    (2)数据通信
    对参与软件版本管理的各方进行节点初始化配置,通过各方签署联盟条约将节点组织成一个区域自治联盟,对各联盟节点作唯一标识,存储的标识后加上网络初始状态参数,状态参数包括节点数、各节点状态,并对其结构化处理生成新的存储数据,作为创世区块并广播至全网,全网络各节点存储创世区块数据,并采用基于区块链的通信协议;
    (3)数据共识
    链上节点发布步骤(1)中生成的软件版本信息,其他节点经广播接收信息,通过数字签名技术判断广播信息的节点身份及数据的真实性,若广播信息节点是联盟成员节点,则对软件版本信息进行完整性校验,若校验成功,则将软件数据上链;若节点是非链内成员,则区块链网络中各节点通过共识机制达成许可共识,若获得联盟中一半以上节点的许可,即可验证信息通过,并将节点信息加入创世区块,并对软件版本信息进行完整性校验,若校验成功,则将软件信息上链;若未获得联盟中一半以上节点的许可或者信息校验失败或者,则该拒绝该信息。
  3. 根据权利要求2所述的基于区块链的软件版本数据管理系统建立方法,其特征在于:所述步骤(2)中,当新的节点申请加入网络时,须 全网广播并经过链中所有成员的协商议定,确定后将该节点的初始信息参数生成新的数据,保存在创世区块中。
  4. 根据权利要求2所述的基于区块链的软件版本数据管理系统建立方法,其特征在于:所述步骤(2)中通信协议配置过程中的通信协议内容为:用户将软件信息广播至全网,系统其它用户在收到广播信息后对信息进行存储和转发;系统内所有副节点选举出主节点用于生成新的区块并进行广播;系统内各个副节点对广播的区块的有效性进行验证;若验证通过则更新节点自身的区块链,若验证不通过则重新选取主节点进行区块生成。
  5. 根据权利要求2所述的基于区块链的软件版本数据管理系统建立方法,其特征在于:所述步骤(3)中的软件版本数据的完整性校验过程为:联盟节点收到广播的软件版本信息,根据地址请求软件,判断软件校验的真实性,若软件校验通过,则将软件版本信息生成区块广播至全网;当用户下载完整的软件时,需对下载的软件进行校验码计算,并将计算后的校验码与区块链中存储的校验码做比对,若校验通过,则生成新的软件地址,并将其广播至全网,具有打包区块权利的节点验证新的地址,若该地址有效则将其放入区块中,方便其他软件获取者从该处取得软件;若校验未通过,则通知软件厂商重新对软件版本信息进行数据清洗及封装。
PCT/CN2019/070004 2018-10-12 2019-01-01 一种基于区块链的软件版本数据管理系统及建立方法 WO2020073543A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/641,254 US11443042B2 (en) 2018-10-12 2019-01-01 Blockchain-based software version data management system and establishing method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811188132.6 2018-10-12
CN201811188132.6A CN109408108A (zh) 2018-10-12 2018-10-12 一种基于区块链的软件版本数据管理系统及建立方法

Publications (1)

Publication Number Publication Date
WO2020073543A1 true WO2020073543A1 (zh) 2020-04-16

Family

ID=65467792

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/070004 WO2020073543A1 (zh) 2018-10-12 2019-01-01 一种基于区块链的软件版本数据管理系统及建立方法

Country Status (3)

Country Link
US (1) US11443042B2 (zh)
CN (1) CN109408108A (zh)
WO (1) WO2020073543A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112381403A (zh) * 2020-11-14 2021-02-19 西安热工研究院有限公司 一种基于区块链的网络安全绩效考核数据处理方法
CN112380576A (zh) * 2020-11-17 2021-02-19 朱捷 一种基于位置的区块链数据传输和存储方法及系统
CN112929402A (zh) * 2020-05-06 2021-06-08 云南电网有限责任公司信息中心 一种实现可信数据存证的移动自组网装置
CN113141271A (zh) * 2021-04-20 2021-07-20 国网上海市电力公司 一种基于联盟链的变电站设备配置文件版本管理方法
CN114338699A (zh) * 2021-11-18 2022-04-12 山大地纬软件股份有限公司 一种基于动态策略的区块链通信方法及系统

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112492006B (zh) * 2018-10-31 2023-12-05 创新先进技术有限公司 一种基于区块链的节点管理方法和装置
JP6626228B1 (ja) * 2019-03-19 2019-12-25 株式会社スカイコム 管理サーバ、文書ファイル管理システム、文書ファイル管理方法、および文書ファイル管理プログラム
US11316695B2 (en) * 2019-05-01 2022-04-26 Intuit Inc. System and method for providing and maintaining irrefutable proof of the building, testing, deployment and release of software
CN110572468B (zh) * 2019-09-17 2022-11-04 平安科技(深圳)有限公司 服务器集群文件同步方法及装置、电子设备及存储介质
CN110851146A (zh) * 2019-11-08 2020-02-28 福州汇思博信息技术有限公司 一种基于分布式网络的终端应用发布方法以及系统
CN111552482A (zh) * 2020-04-21 2020-08-18 深圳市塔洛思技术有限公司 一种适用边缘计算的去中心化的服务动态部署方法及装置
CN111679853A (zh) * 2020-06-08 2020-09-18 中国银行股份有限公司 开源软件的发布方法、装置、计算机设备及可读存储介质
CN113872923B (zh) * 2020-06-30 2023-06-06 成都质数斯达克科技有限公司 基于区块链系统的交易方法、更新方法、装置、设备及存储介质
CN112052033A (zh) * 2020-09-02 2020-12-08 江苏省电力试验研究院有限公司 一种基于流程及区块链的配电自动化主站版本管理方法及系统
CN112241518A (zh) * 2020-10-22 2021-01-19 广州市金其利信息科技有限公司 一种基于区块链的软件权限管理方法及系统
CN112269771B (zh) * 2020-11-11 2024-01-02 中山大学 基于区块链的数据共享方法和装置
CN113268711B (zh) * 2021-05-25 2022-03-08 国网山东省电力公司电力科学研究院 基于Git及区块链的变电站继电保护装置软件版本管理方法
CN113312640B (zh) * 2021-05-31 2022-05-24 天津理工大学 一种基于可信计算的软件数据完整性多方共识方法
CN113419769B (zh) * 2021-06-23 2024-02-20 中国信息通信研究院 一种应用软件管理方法及装置
CN113269571B (zh) * 2021-06-25 2024-02-27 中国银行股份有限公司 基于区块链的企业征信信息处理方法及装置
CN113486361B (zh) * 2021-07-27 2024-04-16 中国银行股份有限公司 基于区块链的app管理系统及方法
CN113608777B (zh) * 2021-07-30 2023-09-29 广东全塑智联科技有限公司 一种基于区块链的项目代码版本控制方法及系统
CN113672992B (zh) * 2021-08-16 2024-05-07 成都民航空管科技发展有限公司 全域空管运行多源异构数据安全防护与融合方法及系统
CN115190036B (zh) * 2022-06-02 2024-01-16 国能数智科技开发(北京)有限公司 一种实时数据汇聚的一致性校验方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107135209A (zh) * 2017-04-21 2017-09-05 天津理工大学 一种基于区块链的数据共享方法
US20180068091A1 (en) * 2016-09-06 2018-03-08 Intel Corporation Blockchain-Based Shadow Images to Facilitate Copyright Protection of Digital Content
CN108055138A (zh) * 2018-02-01 2018-05-18 国家计算机网络与信息安全管理中心 基于区块链的应用分发记录方法和系统
CN108628245A (zh) * 2018-06-27 2018-10-09 北京鉴衡认证中心有限公司 一种基于区块链的风力发电机组数据采集系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108269072A (zh) * 2016-12-30 2018-07-10 深圳瀚德创客金融投资有限公司 用于区块链的交易处理方法和网络节点
US10438170B2 (en) * 2017-01-05 2019-10-08 International Business Machines Corporation Blockchain for program code credit and programmer contribution in a collective
US10579368B2 (en) * 2017-03-10 2020-03-03 Salesforce.Com, Inc. Blockchain version control systems
US11237823B2 (en) * 2018-06-18 2022-02-01 Panasonic Intellectual Property Corporation Of America Management method, management apparatus, and program
US20190392118A1 (en) * 2018-06-20 2019-12-26 Adp, Llc Blockchain Version Control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180068091A1 (en) * 2016-09-06 2018-03-08 Intel Corporation Blockchain-Based Shadow Images to Facilitate Copyright Protection of Digital Content
CN107135209A (zh) * 2017-04-21 2017-09-05 天津理工大学 一种基于区块链的数据共享方法
CN108055138A (zh) * 2018-02-01 2018-05-18 国家计算机网络与信息安全管理中心 基于区块链的应用分发记录方法和系统
CN108628245A (zh) * 2018-06-27 2018-10-09 北京鉴衡认证中心有限公司 一种基于区块链的风力发电机组数据采集系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929402A (zh) * 2020-05-06 2021-06-08 云南电网有限责任公司信息中心 一种实现可信数据存证的移动自组网装置
CN112381403A (zh) * 2020-11-14 2021-02-19 西安热工研究院有限公司 一种基于区块链的网络安全绩效考核数据处理方法
CN112380576A (zh) * 2020-11-17 2021-02-19 朱捷 一种基于位置的区块链数据传输和存储方法及系统
CN113141271A (zh) * 2021-04-20 2021-07-20 国网上海市电力公司 一种基于联盟链的变电站设备配置文件版本管理方法
CN113141271B (zh) * 2021-04-20 2022-09-20 国网上海市电力公司 一种基于联盟链的变电站设备配置文件版本管理方法
CN114338699A (zh) * 2021-11-18 2022-04-12 山大地纬软件股份有限公司 一种基于动态策略的区块链通信方法及系统
CN114338699B (zh) * 2021-11-18 2024-01-30 山大地纬软件股份有限公司 一种基于动态策略的区块链通信方法及系统

Also Published As

Publication number Publication date
US11443042B2 (en) 2022-09-13
CN109408108A (zh) 2019-03-01
US20200372158A1 (en) 2020-11-26

Similar Documents

Publication Publication Date Title
WO2020073543A1 (zh) 一种基于区块链的软件版本数据管理系统及建立方法
CN109819443B (zh) 基于区块链的注册认证方法、装置及系统
CN109409122B (zh) 文件存储方法及其电子设备、存储介质
CN109327528B (zh) 一种基于区块链的节点管理方法和装置
US11055419B2 (en) Decentralized data authentication system for creation of integrated lifetime health records
CN108881169B (zh) 基于区块链的时间分发和同步方法及系统、数据处理系统
US10764258B2 (en) Blockchain infrastructure for securing and/or managing electronic artifacts
CN107967416B (zh) 版权维权检测的方法、装置和系统
CN109002732A (zh) 数据存证方法、设备和系统以及数据取证方法
CN109033757B (zh) 一种数据共享方法及系统
CN111934996B (zh) 消息传输方法及装置
WO2020000770A1 (zh) 基于区块链查询质押信息方法、装置及计算机设备
CN113328997B (zh) 联盟链跨链系统及方法
CN105577618A (zh) 认证方法及装置
WO2017071337A1 (zh) 管理数据库表数据的方法、装置及系统
CN106886722A (zh) 大数据信息处理方法及装置
CN105187218B (zh) 一种多核心基础设施的数字化记录签名、验证方法
CN112583858A (zh) 一种基于区块链pbft算法的统一身份鉴权方法
CN102857497B (zh) 基于cdn和p2p的混合型内容网络的用户接入系统及认证方法
CN109960512B (zh) 一种软件部署方法及系统
CN106454767A (zh) 一种业务数据同步方法、装置及系统
WO2023168993A1 (zh) 基于区块链的数据处理方法、装置、设备、介质及产品
CN116186786A (zh) 基于区块链的业务处理方法、装置、电子设备和可读介质
CN115550067A (zh) 基于分布式标识的工业互联网互操作方法、系统及设备
CN116186749A (zh) 基于区块链的业务处理方法、装置、电子设备和可读介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19871433

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19871433

Country of ref document: EP

Kind code of ref document: A1