比特币源码研读之感悟
第一次真正开始关注比特币和区块链是从学习笑来老师得到专栏开始的,但在百度搜索一番后并没有发现真正有效的内容,甚至连如何购买比特币都没查到。后来在一块听听中听了老猫的分享后才知道了云币网,才学会了如何购买比特币。在云币网购买了比特币后,我发现还有其他资产可以购买,最吸引我的要数sc了,因为那会它只有5厘左右的价格,于是一开始每次我买比特币多了的零钱就都买了sc,想着反正零钱放着也是放着,一旦这币的价格涨上去了不是很爽吗?后来证明我的想法是对的,可惜现在已经没有这好事了。
2017年元旦节的时候,我在笑来老师的知笔墨中找到了《精通比特币》这本书,因为作者在序言中讲到
这本书的前面两章适合想了解比特币的人,后面的内容适合研发人员这两种我都符合啊,这句话直接勾起了我要把这本书看懂的欲望!于是花了一天的时间把前三章看完了,还算能看明白,到了第四章的密钥部分就开始有点迷糊了,有点看不下去了,第一次的阅读只能以失败告终。但我并没有放弃,而是继续寻找学习区块链的机会,后来加入了区块链研习社,开始跟着社长学习区块链知识,对区块链的知识开始有了系统性的理解。想起自己还有精通比特币没看完,而且这是一本经典之作,于是我又重新开始利用碎片时间系统化的把《精通比特币》第一版从头到尾完整地看了一遍,这一遍过后不能说是完全理解了比特币的技术实现,但对其层次架构有了清晰的认识。
社长知道我在读这本书,也知道我一直在做C/C++的开发,于是找到我,让我开一个比特币的源码研读班,带领研习社的技术人员一起研读源码,把研习社的技术力量孵化出来。我们在6月底发布了第一期源码研读班的招募令,当时以为感兴趣的人不会很多,谁知当时报名人数达到了40多,考虑到是第一期,为了保证研读效果,我们当时选了有一定编程经验的10人研读团队。在大家分好研读模块后,我们就开始分头行动了。其实一开始大家都不知道如何入手,包括我自己也是。因为比特币源码内涵丰富,错综复杂。第一周把我之前的源码编译文章发了出来,也算是给自己一个简单交代,带大家往前迈出了第一步。但第二周得真开写了,作为源码研读班班长,我有责任率先写出来,于是我开始直接找到负责的挖矿模块读起来,有时在车上我也会拿出手机来看看源码,但发现效果一般,因为:
【比特币源码研读之感悟】1.手机屏幕太小,每次只能看到一小部分代码,查找相关变量也不方便;想到程序的执行是有顺序的,我为何不从程序启动处开始研读呢?这样沿着一条主线去研读的话,肯定能读好,而且也有连续性。找到就做,我找到启动函数:main函数,开始大致看了下它的运行流程,发现我的策略是对的,这套流程走下来,基本每个模块都能涉及到,而且有上下文关系,对源码的研读很有帮助,于是我的第一篇源码研读文章在第二周顺利发表了!记得当时发出来后,得到很多人的赞赏与认同,给了我很大的鼓励,让我更有信心读下去。
2.没有前面代码的基础,直接读挖矿部分不是很理解。
因为有了研读方法和写作套路,然后就停不下来了,坚持写了下来,到2017年1月31日已经写了20篇研读记录,办了三期源码研读班,研读记录达100多篇,阅读量也在与日俱增。
记得在第二期的源码研读群中我与大家分享过源码研读的愿景,就是我们要像阿甘环美跑一样,一开始是一个人在跑,随着他的坚持,越来越多的人加入进来,影响力也随之增加。其实我们的研读班也是一样的,随着时间的推移,加入的人在不断增加,研读记录也在不断增加,我们文章的阅读人数也在不断增加,说明我们做的是一件有意义的事,而且我相信随着时间的推移,随着区块链的推进,我们的研读班将更有先发优势,因为区块链最终是需要落地的,落地靠的不就是技术人才吗?所以,我会一如既往地带领大家继续开展我们的源码研读活动,开展更多区块链项目的技术研究活动,让正在从事区块链的,和将要从事区块链研究的技术人才都能快速成长,发挥价值!
本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击【区块链研习社】专栏:http://www.jianshu.com/c/b17f09dc2831
文章图片
比特币课程
文章图片
推荐阅读
- Android事件传递源码分析
- Quartz|Quartz 源码解析(四) —— QuartzScheduler和Listener事件监听
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- ffmpeg源码分析01(结构体)
- Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!
- Vue源码分析—响应式原理(二)
- 华雨欢(传统投资市场回暖,币市暴涨暴跌后回归震荡)
- SwiftUI|SwiftUI iOS 瀑布流组件之仿CollectionView不规则图文混合(教程含源码)
- java|java b2b2c shop 多用户商城系统源码- config 修改配置
- Spring源码解析_属性赋值