程序入口
比特币源码是用C++写的,构建系统用的CMake,在CMakeLists.txt中可以找到add_executable命令,含义是最终构建的二进制产物,此命令的参数中会指定源文件。
重要设计
主流程
- 创建全局上下文
- 连接服务端信号处理函数
- 解析命令行参数
- 启动程序
数据结构
疑问
- noui_connect貌似是注册UI事件的,但是名字又叫noui
欠缺的知识
- C++命名空间的规则
- 实际的大型项目中常用的idiom,即编程惯用法
参考资料
- 比特币node启动的命令行参数
比特币源码是用C++写的,构建系统用的CMake,在CMakeLists.txt中可以找到add_executable命令,含义是最终构建的二进制产物,此命令的参数中会指定源文件。
进入加密货币行业4个月了,懵懵懂懂做了一些公司业务的需求,学了一些加密货币行业的皮毛知识,每天挂在嘴边的尽是些上链、签名、EVM、手续费等似是而非的名词。另一方面,Web3给我的体感是还在不断涌现新的项目,每次点开项目官网都有一种眩晕感,一开始还觉得这个项目又引领了一个创新,解决了Web3的重大难题,但是慢慢地,新鲜感一过,感受到的只有麻木,而且那么多币经我的手上链,感觉自己的提升并没有多少,只是对公司内部的技术栈以及工作流程更熟悉了而已。
静下心来想了一段时间,加密货币毕竟在国内游走在灰色地带,生态没有起来,中文社区的技术沉淀不够,对于新人入门很不友好。英文资料浩如烟海,虽然英语阅读对于我来说不是不可逾越的门槛,但是却也实打实地影响我的学习效率,一开始也想沉下心来慢慢学,但是时间被业务裹挟,始终没有开始做。终于,这段时间感觉学有余力了,狠狠心踏上BTC源码的学习之路。
直接说答案吧,值得!从大的方面讲,有以下两点:
一次做到完美不可能,粗略想了一下,分以下几步走: