一种基于区块链的版本控制方法及系统与流程

文档序号:16811083发布日期:2019-02-10 13:39阅读:1214来源:国知局
一种基于区块链的版本控制方法及系统与流程

本发明涉及计算机软件信息技术领域,尤其涉及一种基于区块链的版本控制方法及系统。



背景技术:

互联网技术的快速发展,也带动了部分学科的快速发展,如信息安全和密码学。现有的问题在于现行的系统都有集中式版本库或服务器,而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了,所有保存的资料都会被破坏。另外代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。



技术实现要素:

本发明的目的就在于为了解决上述问题而提供一种基于区块链的版本控制方法及系统,本发明通过以下技术方案来实现上述目的:

一种基于区块链的版本控制方法,包括以下步骤:

第一步、新版本广播到全网的节点,每个客户端节点会收到有新版本消息;

第二步、每个区块链版本控制系统独立客户端将新版本收集到的节点的内存,并组装成区块;

第三步、每个区块链版本控制系统独立客户端都尝试在自己的区块中找到一个具有足够难度的工作量证明;

第四步、区块链版本控制系统独立客户端解出一个工作量证明,把有效的区块链数据向全网广播,并获得token奖励;

第五步、当且仅当包含在该区块中的交易都是有效的,并验证其完成的工作量,证明其他节点才认同该区块的有效性,即产生了一个新的版本节点确认;

第六步、其他区块链版本控制系统独立客户端表示接受该区块,并在该区块的末尾制造新的情况,以延长整个区块的链条。

一种基于区块链的版本控制系统,所述系统包括协议层、扩展层和应用层;其中:

所述协议层包括存储层和网络层,所述存储层包括区块以及由所述区块组成的区块链数据库,所述网络层包括多个节点,其通过挖矿、投票等共识算法保障节点安全,并通过节点网络维护存储层更新;

所述扩展层内置智能合约和多种侧链应用,用于文档、图片、电子书、视频等用户数据文件存储或分享;

所述应用层包括检入检出控制模块、分支和合并模块、历史记录模块;其中:所述检入检出控制模块中的检入就是把软件配置项从用户的工作环境存入到软件配置库的过程,检出就是把软件配置项从软件配置库中取出的过程,检入是检出的逆过程;所述分支和合并模块用于生成新的版本,其中分支是指版本以一个已有的特定版本为起点,但是独立发展的版本序列,版本合并有两种途径,一是将版本a的内容附加到版本b中;另一种是合并版本a和版本b的内容,形成新的版本c;所述历史记录模块用于对软件配置项进行审核,审核内容包括版本号、版本修改时间、版本修改者、版本修改描述等最基本的内容。

本发明不仅适用于代码版本控制,也适用于文档版本控制,流媒体版本控制,视频版本控制等配置管理的核心功能,以代码版本控制为最有代表性。

进一步的,所述历史记录模块审核内容还还辅助性内容,辅助性内容包括版本的文件大小和读写属性。

本发明的有益效果在于:

本发明的一种基于区块链的版本控制系统及认证方法,其不仅适用于代码版本控制,也适用于文档版本控制,流媒体版本控制,视频版本控制等配置管理的核心功能。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明区块链版本控制系统的详细工作原理示意图;

图2为本发明区块链版本控制体系系统构架图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

如图1所示,一种基于区块链的版本控制方法,包括以下步骤:

第一步、新版本广播到全网的节点,每个客户端节点会收到有新版本消息;

第二步、每个区块链版本控制系统独立客户端将新版本收集到的节点的内存,并组装成区块;

第三步、每个区块链版本控制系统独立客户端都尝试在自己的区块中找到一个具有足够难度的工作量证明;

第四步、区块链版本控制系统独立客户端解出一个工作量证明,把有效的区块链数据向全网广播,并获得token奖励;

第五步、当且仅当包含在该区块中的交易都是有效的,并验证其完成的工作量,证明其他节点才认同该区块的有效性,即产生了一个新的版本节点确认;

第六步、其他区块链版本控制系统独立客户端表示接受该区块,并在该区块的末尾制造新的情况,以延长整个区块的链条。

一种基于区块链的版本控制系统,其特征在于:所述系统包括协议层、扩展层和应用层;其中:

所述协议层包括存储层和网络层,所述存储层包括区块以及由所述区块组成的区块链数据库,所述网络层包括多个节点,其通过挖矿、投票等共识算法保障节点安全,并通过节点网络维护存储层更新;

所述扩展层内置智能合约和多种侧链应用,用于文档、图片、电子书、视频等用户数据文件存储或分享;

所述应用层包括检入检出控制模块、分支和合并模块、历史记录模块;其中:所述检入检出控制模块中的检入就是把软件配置项从用户的工作环境存入到软件配置库的过程,检出就是把软件配置项从软件配置库中取出的过程,检入是检出的逆过程;所述分支和合并模块用于生成新的版本,其中分支是指版本以一个已有的特定版本为起点,但是独立发展的版本序列,版本合并有两种途径,一是将版本a的内容附加到版本b中;另一种是合并版本a和版本b的内容,形成新的版本c;所述历史记录模块用于对软件配置项进行审核,审核内容包括版本号、版本修改时间、版本修改者、版本修改描述等最基本的内容。

进一步的,所述历史记录模块审核内容还还辅助性内容,辅助性内容包括版本的文件大小和读写属性。

检入检出控制是指软件开发人员对源文件的修改不能在软件配置管理库中进行,对源文件的修改依赖于基本的文件系统并在各自的工作空间下进行。为了方便软件开发,需要不同的软件开发人员组织各自的工作空间。一般说来,不同的工作空间由不同的目录表示,而对工作空间的访问,由文件系统提供的文件访问权限加以控制。

访问控制需要管理各个人员存取或修改一个特定软件配置对象的权限。开发人员能够从库中取出对应项目的配置项进行修改,并检入到软件配置库中,对版本进行“升级”;配置管理人员可以确定多余配置项并删除。

同步控制的实质是版本的检入检出控制。检入就是把软件配置项从用户的工作环境存入到软件配置库的过程,检出就是把软件配置项从软件配置库中取出的过程。检人是检出的逆过程。同步控制可用来确保由不同的人并发执行的修改不会产生混乱。

分支和合并是指版本分支(以一个已有分支的特定版本为起点,但是独立发展的版本序列)的人工方法就是从主版本——称为主干上拷贝一份,并做上标记。在实行了版本控制后,版本的分支也是一份拷贝,这时的拷贝过程和标记动作由版本控制系统完成。版本合并(来自不同分支的两个版本合并为其中一个分支的新版本)有两种途径,一是将版本a的内容附加到版本b中;另一种是合并版本a和版本b的内容,形成新的版本c。

历史记录是指版本的历史记录有助于对软件配置项进行审核,有助于追踪问题的来源。历史记录包括版本号、版本修改时间、版本修改者、版本修改描述等最基本的内容,还可以有其他一些辅助性内容,比如版本的文件大小和读写属性。

本发明不仅适用于代码版本控制,也适用于文档版本控制,流媒体版本控制,视频版本控制等配置管理的核心功能,以代码版本控制为最有代表性。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1