从 Git 到区块链

汇新云】为大家定期更新文章,【汇新云】IT人的产业链平台



GitHub 网站在程序员心目中的地位不言而喻,这个基于 Git 的托管网站可以说是开源的风向标。 我们 GitHub 中的 Git repo 中还可以找到 2005 年 4 月 8 日 Linus Torvalds 提交的 第一版 代码。

正是 GitHub 网站在全球的成功运营,加密数字货币开源项目才会以爆发性的增长。这个世界上最顶尖的程序员都在为这些开源项目提交 PR,这种社区式连接的力量,是无法衡量的。我们可以在 GitHub 上看到 BitcoinEthereumEOS 等项目的最新更新状态,每天都有无数的程序员为这些项目添砖加瓦。加密数字货币的共识,很大一部分来自 GitHub 社区。

题图来自: © EarlGrey / Migrate to Qcloud Git Server / codingpy.com

那 Git 究竟是什么呢?简单讲就是一个 分布式版本控制软件。如果用三句话阐述什么是 Git 运行原理,那就是:[1]

生成修改过的文件

生成当前目录 tree 文件,关联当前状态文件

生成 commit 文件,关联到当前目录 tree 文件,并记下父 commit

我们来试着理解这句话。当我们在 GitHub 创建一个新项目再 git clone 到本地(当然也可以本地 git init 初始化项目),把本地的代码放到这个目录,然后我们要怎么样提交到 GitHub 呢?我们在配置相应的 SSH 公钥之后,会执行如下的几个步骤来提交到 GitHub:

git add -A .

git commit -m “[Blockchain] …”

git push origin master

简单讲就是,先本地提交,累积几次后再一次 push 到 remote。本次提交会关联到上一次提交,这跟区块链的 chain 是不是有些类似?比如本次提交的标志为 ab88b43,上一次提交的标志为 297f29a,那么本次提交的信息里就会有 parent commit 297f29a。这种类似链条的记录,是不是变得可追溯了啊?版本控制最重要的是什么,就是可追溯,如果某次错误提交,还可以回腿到历史版本。同样,可追溯也是区块链的重要特性。

再者,区块链的特性是分布式的,而 Git 天然就是分布式的,不过 Git 是依赖文件系统。GitHub 助力全球化协作,并且代码或者文档一旦提交到 GitHub,这个操作将是无法撤销的。GitHub 本身会将其网站上的 repo 利用分布式存储做好容灾;如果某程序员 clone 该 repo,只要它不删除,将会永久存储在自身的电脑,除非自身电脑文件系统崩溃;如果某程序员 fork 该 repo,只要它的账户不被删除,这个 repo 将永久保留在它的账户之下;另外,某个 repo fork、clone 次数越多,被摧毁的概率也就越低;再者,某个 repo 即使最近一次操作清空了所有的代码,还可以通过 git log 恢复。这样一分析,科学上网的 GitHub repo 将是 野火烧不尽,春风吹又生

大部分业内大咖的文章都存放在 GitHub,读者会被删吗?最近一天世界的一篇关于微信的文章很有趣,不妨 看看

另外,区块链的另一个特性是不可篡改,也就是只能 INSERT。Git 呢?GitHub 托管的 repo 里的内容本身是可以修改的,然而这个 commit 历史却是无法修改的。每一次 commit 都有唯一标志,本次 commit 会有 parent commit 的信息。Git 产生的 log 也可以通区块链数据库进行类比。

也就是说,Git 是简化的 blockchain,用 Git 来理解区块链,这个事情是不是特别有趣?

参考

[1] douban.com (2013-07-18). 三句话的 git internal. Retrieved from https://www.douban.com/note/289253352.


好区块链,拥抱新未来:

区块链产品经理(点击入驻),和圈内人士混个脸熟

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值