树哥,如何才能更好地学习区块链?
一个朋友提出这个问题。这个问题,也是频率最高的一个问题。
我回答:最好学习区块链的方式就是读它的代码!
这个问题往往会让我的这些朋友诧异,读代码的这个事情不是由程序员干的事情吗?普通人会读代码干什么呢?
每当这个时候,我就会再次问他们,你觉得了解一头牛的组成的方法有哪些?
“这个很简单啊,可以观察到,就是牛头、牛角、牛身体、牛腿和牛尾组成的啊。”
这个就是问题的关键了,“观察到” 是我们学习了解一个事物最广泛使用的方法,可是只是观察能不能看清问题的真相呢?
其实有还有一种非常重要的方法叫:
庖丁解牛!
当拥有一把锋利的刀,并用它把整个牛都一块一块的分解,就可以看到牛的内脏、牛的肌肉、牛的骨骼、牛的筋肉。是不是会对牛有了更加深刻的理解?
如果说,我们可以通过观察可以看到牛的外观、牛的习性,那么我就可以通过“庖丁解牛”的方式了解牛的内部,牛的一些外观和习性的根源。只有这样我们才能更加了解这头牛。
一般来讲,朋友们都会赞同我的这个观点。
我会告诉他们,读代码就是一个锋利无比的刀,区块链无非就是计算机的程序,可以用这把锋利的刀来顺利的了解区块链的底层,知其然知其所以然。
当然,其实不止区块链,几乎所有的计算机程序都可以通过这个方法来了解其底层架构。
不过可能有些人说,我们可以直接通过查找一些资料来获得信息,而未必一定通过代码来获得。这一点也对也不对。
因为现在有很多纷繁复杂的资料,有些描述也未必正确,这个时候会读懂代码就会验证很多以前不确定的知识点。
例如,几乎所有稍微了解一点比特币的人都知道:
- 比特币的出块时间是10分钟。
- 比特币的出块奖励是四年减半。
- 比特币是2周调整一次难度。
但是,比特币的出块时间真的一直是10分钟吗?
事实上,出块十分钟只是目标值,可能是5分钟,还有可能是2个小时或更长的时间;这一切都会取决于计算出随机数字的时间,只有这样,少量的恶意节点出的块时间才会长,而更多算力的正常节点出块速度会快很多,“最长链的原则”才会起作用,才能真正保障最大算力的正常节点的区块链永远是最长的一个链条。
比特币的出块奖励是四年减半的由来。
大家总说,比特币出块奖励四年减半。这4年减半是怎么来的?只要读一下程序就会知道,在程序中规定了产生21万个区块就会奖励减半,因为10分钟一个区块,1天就是144个区块,21万个区块就是1458天,约等于4年的时间。真正的时间是需要看时间的出块状况才能知道。
2周调整难度的由来。
这个原因其实和上一个原因类似,比特币的程序中规定每个2016个区块进行一次难度调整,2016个区块除以144区块每天,等于14天。这就是比特币网络每2周调整一次区块的由来。
或许你会说,我不懂代码,又怎么能读懂代码呢?
我相信你一定会听过一句话:“读书百遍,其意自现!”
读程序和读书是一样,多读几遍,多读一下各种的代码,意思就会慢慢了然。
毕竟,
我们只需要大致了解功能模块,不需要每条代码都读懂!
甚至,如果读程序读得多了,可能也会熟读唐诗三百首、不会作诗也会吟
,我们也能利用人家的程序模板,进行抄抄改改了,这也是一个挺快乐的事情。
网友评论