
技术摘要:
本说明书实施例涉及一种基于区块链的分布式版本控制方法及系统。基于区块链和去中心化分布式文件系统,实现了去中心化的Git协议。通过将对象数据的具体内容保存在去中心化数据库中,最大程度的减少了链上保存的数据量,降低了链上数据存储的成本。使用智能合约来保存Gi 全部
背景技术:
Git是一款免费开源的分布式版本控制系统,用于敏捷高效地处理软件产品研发 过程中的代码版本控制。Git较其他版本控制系统有几大优势:效率更高、消耗资源小、分布 式、更灵活的分支等。使用Git的方式是用户在自己的服务器上搭建服务,当前主要的方式 是中心化的服务提供方去代替企业和个人去管理,比如github等。但现有的GitHub平台以 及其他类似的代码托管平台,存在了单点故障的风险以及被中心化服务提供方审查的风 险。
技术实现要素:
本说明书实施例提供一种基于区块链的分布式版本控制方法及系统,用以解决现 有技术的单点故障的问题以及被中心化服务提供方审查的风险。 为了解决上述技术问题,本说明书实施例采用下述技术方案: 第一方面,提供了一种基于区块链的分布式版本控制方法,应用于Git版本控制系 统,所述方法包括: 通过部署智能合约创建Git远程仓库,所述智能合约中包含第一K-V键值对和第二 K-V键值对;其中所述第一K-V键值对的key为对象数据的哈希值,value为所述对象数据的 内容存储在去中心化数据库的地址;所述第二K-V键值对的key为提交对象的别名,value为 提交对象的哈希值;其中,所述提交对象的哈希值为所述对象数据的哈希值的子集; 将更新的对象数据的内容保存在去中心化数据库中; 通过向所述智能合约发送交易更新所述第一K-V键值对和第二K-V键值对; 本地仓库根据所述智能合约的地址及所述第一K-V键值对、第二K-V键值对,从所 述去中心化数据库中获得更新的数据对象的内容进行本地存储。 第二方面,提供了一种基于区块链的分布式版本控制系统,应用于Git版本控制系 统,所述系统包括: 合约部署单元:通过部署智能合约创建Git远程仓库,所述智能合约中包含第一K- V键值对和第二K-V键值对;其中所述第一K-V键值对的key为对象数据的哈希值,value为所 述对象数据的内容存储在去中心化数据库的地址;所述第二K-V键值对的key为提交对象的 别名,value为提交对象的哈希值;其中,所述提交对象的哈希值为所述对象数据的哈希值 的子集; 存储单元:将更新的对象数据的内容保存在去中心化数据库中; 交易发送单元:通过向所述智能合约发送交易更新所述第一K-V键值对和第二K-V 键值对; 4 CN 111596954 A 说 明 书 2/5 页 更新单元:用于本地仓库根据所述智能合约的地址及所述第一K-V键值对、第二K- V键值对,从所述去中心化数据库中获得更新的数据对象的内容进行本地存储。 本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:基于区块 链和去中心化分布式文件系统,实现了去中心化的Git协议。通过将对象数据的具体内容保 存在去中心化数据库中,最大程度的减少了链上保存的数据量,降低了链上数据存储的成 本。使用智能合约来保存Git引用及权限管理,保证了智能合约中同样不会存储大量数据。 同时,去中心化存储的技术特性避免了中心化服务的单点故障的风险以及服务方审查的风 险。 附图说明 为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或 现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是 本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳 动性的前提下,还可以根据这些附图获得其他的附图。 图1为本说明书实施例提供的基于区块链的分布式版本控制方法的步骤示意图; 图2为本说明书实施例提供的区块链的分布式版本控制系统的结构示意图。