-
模块图、类图、时序图。
-
整体模块图:有助于从整体上把我比特币的特性。
- GO语言的模块图
-
入口函数优先了解
image -
了解一些基础类,如:基础类型定义,数据流处理,HASH处理,BigNum类等等。
-
可以参考的书《比特币开发者指南》
-
尽量选择google+英文资料进行学习。随着版本的迭代,很多jsonrpc也是有变化的,最典型的是getwork命令在0.12版本消失了,变成了三个更具体的命令比如getnetworkinfo等。所以在测试或者搜索资料时,需要注意不要全信,尽量自己动手测试,因为这些文档很可能都过时了,尤其是好些中文资料,抄来抄去居多。
-
另外0.12版本把挖矿相关的代码削弱了,所以如果不配合如cpuminer或者bfgminer,很可能几个小时你也挖不到块。
写这个文章的时候参考:【只聊技术】如何阅读“三巨人”的源码(1)-比特币
当前状态:
- 拥有JAVA编程基础
- CXX编程基础基本为零
- 比特币基本原理了解:已阅读《比特币白皮书》、《精通比特币》
- 目前对比特币源码知之甚少
所以:
-
代码阅读起来非常困难。很难找到北。因为CXX的编码方式和JAVA还是有很大的不同。
-
代码在configure和make过程中就出现不少问题。
-
需要同步学习CXX的相关知识。可以同步参考CXX的学习写文章。
网友评论