评论看完后,说说的感受和理解,望指点
Topic source你的理解是对的,比特币的区块链设计就类似git,人手一份全账本,只是用p2p全网同步,而git通常搞个中心化服务来同步
svn像银行,完整账本只有银行有,作为终端节点可以向银行查询账本,但如果某一天银行没了,整个完整账本就没了
分布式的核心设计是同步,而不是主从
软件架构,核心思想其实是非常简单的
嗯嗯,也看了老师写的 “区块链教程”, 也很牛的。我之前看过一本叫《图说区块链》的书,虽然有图,但第一次接触还是很懵,可能跟思维方式有关系,只看图没代码总感觉的迷迷糊糊。这次结合一丢丢代码重新看,对区块链有了更清晰的认识,。感谢大佬。
我有个问题,既然员工A的电脑保存了所有版本的历史信息,为什么做了修改还需要提交,员工B里面不应该自动更新了吗?如果A做了修改后,还没传给B,A的电脑就坏了(而不是服务器),那不还是失去了这些更改信息吗?回滚不也是只能靠做梦吗?有什么区别呢?
“集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。”
“你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。”
----这个不是也需要联网吗?而且如果有多人N协作时,一份修改我得发送给N-1个人,这不是更耗时吗?
所以需要github等中间商作异步转发,中间商就是中间件,没有github这个异步中间件就得依次转发给N-1个同事,有中间件就不一样了。
另外中间件不等于集中化,因为GitHub实际上只是进行版本的通知,每个同事都有完成的版本库,而不是集中式的中央仓库才有完整的版本库。
- 1
自由之路Pogue
看完文章,刚开始看评论的时候,感觉:“一个一个问题的问题真好,我也有这样的疑问”,各位网友的回答也都很清楚,直到我看到 -廖雪峰- 老师的评论
才感觉真正明白(当然我也不太清楚我是不是真的明白)
我的理解是:Git 其实就是每个人电脑上都装一个svn服务器,你写了代码提交到自己电脑服务器上就是Commit;但是如果你想多人协作,就要把你的改动发送到你**每一个同事 **的svn服务器上就是push;
关于有人有疑问说
接着按照上面的理解,假如你还有10个同事,你每一次更改都要提交10次,其他同事有更改也要分别向我们提交,是不是觉得好烦,所以我们说干脆找一台固定电脑(服务器)用来统一规定把修改推给这台电脑,这样只需要提交1次就行了,其他人去这台机器上同步就好了。
发现没有,Git的中央服务器可以没有,我们只是为了方便才这么做的。
此时,如果这个中央服务器坏了,你只需要重新弄个电脑,把自己电脑上的同步一份过去,大家约定好都提交到这个新电脑上就行了。【所有的版本和历史都在,因为大家电脑上都是一样的】
而集中式的SVN就不同了,你从中央服务器上下载好完整的代码,正常工作(写代码)是可以,但是如果断网了,你就无法回滚版本;这时你可能谁说,先不提交,等联网了我再提交。
不好意思,这次断网是因为服务器报废了,是蒸发的那种,硬盘灰飞烟灭了。等你再次连上网的时候,就是你永远丢失了历史版本的时候,想回滚就只能靠做梦了。
~~~~~~~我的理解大概是这样的,不知道对不对~~~~~