[发明专利]一种基于区块链的项目代码版本控制方法及系统有效
申请号: | 202110870705.9 | 申请日: | 2021-07-30 |
公开(公告)号: | CN113608777B | 公开(公告)日: | 2023-09-29 |
发明(设计)人: | 文均宇 | 申请(专利权)人: | 广东全塑智联科技有限公司;广东全塑链科技有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F21/60;G06F21/64 |
代理公司: | 广州专理知识产权代理事务所(普通合伙) 44493 | 代理人: | 邓易偲 |
地址: | 528000 广东省佛山市顺*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 项目 代码 版本 控制 方法 系统 | ||
1.一种基于区块链的项目代码版本控制方法,其特征在于,所述方法包括以下步骤:
S100,当区块链网络中各个节点发生编辑本地代码的操作时节点实时的生成哈希值形式的工作量证明;
S200,以节点对本地代码的每次修改作为一次区块链网络的修改交易,当存在发生修改交易的节点时,该节点将修改交易在整个区块链网络中进行广播;
S300,区块链网络中各个节点通过共识算法对修改交易达成共识之后确认修改交易是否有效;
S400,将有效的修改交易的节点中修改后的本地代码的文件同步到区块链网络的各个节点;
其中,在S200中,发生修改交易的节点对修改后的本地代码的文件进行哈希码计算,所述哈希码计算的方法包括以下步骤:
S201,初始化一颗默克尔树T;
S202,以修改后的本地代码的文件作为当前源代码文件,将当前源代码文件F按行进行遍历;计算每一行源代码Li的哈希值Hi;Li表示前源代码文件F中第i行源代码;
S203,将当前代码行的哈希值Hi添加到默克尔树T的尾部作为T的叶子节点;
S204,当遍历结束后,计算默克尔树T的哈希值Hash(T)作为前源代码文件F的哈希值Hf=Hash(T),在各个节点中每个源代码文件对应有一个默克尔树T。
2.根据权利要求1所述的一种基于区块链的项目代码版本控制方法,其特征在于,在S100中,所述区块链网络包括至少一个节点,所述节点包括开发者编辑本地代码所使用的台式电脑、笔记本电脑的本地设备,每个节点都有唯一的节点ID编号,其中存储有本地代码、编辑本地代码的次数,各节点通过有线网络、无线网络任意一种互相连接并进行通信。
3.根据权利要求1所述的一种基于区块链的项目代码版本控制方法,其特征在于,在S100中,所述哈希值形式的工作量证明为各个节点编辑本地代码中的代码编辑次数与代码编辑时长,工作量证明为[代码编辑次数,代码编辑时长]的二元组形式的哈希值。
4.根据权利要求1所述的一种基于区块链的项目代码版本控制方法,其特征在于,在S300中,区块链网络中各个节点通过共识算法对修改交易达成共识之后确认修改交易是否有效的方法包括以下步骤:
S301,各个节点根据工作量证明数据获取开发者在各个节点中代码编辑次数与代码编辑时长;
S302,记发生修改交易的节点为节点K,节点K的代码编辑次数为MK,以代码编辑次数大于或等于MK的节点为有效投票节点;
S303,以节点K的代码编辑时长为TK,将代码编辑时长低于或者等于TK的节点设置为锁定状态,将代码编辑时长大于或等于TK的节点设置为非锁定状态;
S304,以非锁定状态的有效投票节点中所对应的修改交易的对应的源代码文件的默克尔树的树高为H1,节点K所对应的修改交易的源代码文件的默克尔树的树高为H2,统计H1小于或等于H2的所有非锁定状态的有效投票节点的数量Count;
S305,当Count大于有效投票节点总数的一半时,则修改交易达成共识,确认修改交易有效。
5.根据权利要求4所述的一种基于区块链的项目代码版本控制方法,其特征在于,在S400中,将有效的修改交易的节点中修改后的本地代码的文件同步到区块链网络的各个节点的方法为:
如果锁定状态的节点为有效投票节点时,将该节点中所对应的修改交易的对应的源代码文件的默克尔树的树高H3依次与各个非锁定状态的有效投票节点中所对应的修改交易的对应的源代码文件的默克尔树的树高H1逐个对比,当发现H3大于任意一个非锁定状态的H1时,将该节点解锁为非锁定状态;
将有效的修改交易的节点中修改后的本地代码的文件同步到非锁定状态的节点中。
6.一种基于区块链的项目代码版本控制系统,其特征在于,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
工作量证明生成单元,用于在当区块链网络中各个节点发生编辑本地代码的操作时节点实时的生成哈希值形式的工作量证明;
修改交易广播单元,用于以节点对本地代码的每次修改作为一次区块链网络的修改交易,当存在发生修改交易的节点时,该节点将修改交易在整个区块链网络中进行广播;
修改交易有效判断单元,用于区块链网络中各个节点通过共识算法对修改交易达成共识之后确认修改交易是否有效;
本地代码文件同步单元,用于将有效的修改交易的节点中修改后的本地代码的文件同步到各个节点;
其中,在修改交易广播单元中,发生修改交易的节点对修改后的本地代码的文件进行哈希码计算,所述哈希码计算的方法包括以下步骤:
S201,初始化一颗默克尔树T;
S202,以修改后的本地代码的文件作为当前源代码文件,将当前源代码文件F按行进行遍历;计算每一行源代码Li的哈希值Hi;Li表示前源代码文件F中第i行源代码;
S203,将当前代码行的哈希值Hi添加到默克尔树T的尾部作为T的叶子节点;
S204,当遍历结束后,计算默克尔树T的哈希值Hash(T)作为前源代码文件F的哈希值Hf=Hash(T),在各个节点中每个源代码文件对应有一个默克尔树T。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东全塑智联科技有限公司;广东全塑链科技有限公司,未经广东全塑智联科技有限公司;广东全塑链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110870705.9/1.html,转载请声明来源钻瓜专利网。