试撸比特币源码(一)

作者: CPC说 | 来源:发表于2017-10-29 00:57 被阅读91次

试着撸一下比特币源码,不知道能不能看完,希望不要TJ。不撸代码好多年,尤其是C++。

工具呢:撸码神器Sublime

代码:当前版本比特币

网上搜了下貌似入口是bitcoin.cpp

打开void SetupEnvironment()

函数首先通过sizeof(void*) == 4来判断当前系统是否是32位,如果是64位的话那么sizeof(void*)值就为8。mallopt函数是用来控制malloc内存分配时的行为的(具体请参考http://man7.org/linux/man-pages/man3/mallopt.3.html),而M_ARENA_MAX参数是值最多能创建的arena数,一个arena是指malloc在分内内存时的一个内存池,而这个arena是线程安全的,也就是说多线程访问时是互斥访问的,既然是互斥访问的,那么很明显,当arena数量越多时,线程的竞争就越小,但是需要的内存也就越多(因为arena就相当于一次性申请大量内存,然后在malloc时慢慢分配出去)。通过代码中的注释,我们发现glibc库会为每个核创建2个arena,而这会对32为系统造成虚拟地址空间不足的问题,所以这里设为1.

下面是locale()是设置系统区域,这将决定程序所使用的当前语言编码、日期格式、数字格式及其它与区域有关的设置。最后两行是文件路径的本地化设置,主要设计宽字符(Wide char)和多字节(Multi bytes)之间的转换问题。

没啥难度。

我们继续

noui_connect


都在这一个文件里面定义。

看了看发现没懂。果断谷歌,发现是一个boost的库。果然几年不搞c++发现这玩意缺失很多。还好有谷歌http://www.boost.org/doc/libs/1_65_0/

研究了应该是个信息机制,姑且先放这里,以后看到需要研究了再研究。感觉连接bitcoind客户端的信号处理程序。大概这个信号处理程序就是侦听程序的各种消息包括异常消息,也可能是硬件的异常消息或程序的普通信号消息。

这个代码大概解决就是检测运行环境,设置运行环境参数,同时连接消息机制。

相关文章

  • 试撸比特币源码(一)

    试着撸一下比特币源码,不知道能不能看完,希望不要TJ。不撸代码好多年,尤其是C++。 工具呢:撸码神器Sublim...

  • 试撸比特币源码(二)Boost

    上一节直接撸,发现好几年不玩C++有点力不从心。干脆先搜搜比特币代码结构。 搜了下代码分以下部分 bench_bi...

  • 比特币源码研读

    forest21000版 比特币源码研读之一比特币源码研读之二比特币源码研读之三比特币源码研读之四比特币源码研读之...

  • 开始研读比特币1

    1,进入比特币源码目录,先读读编译doc/build-unix.md,查看比特币源码如何编译,了解比特币的依赖库,...

  • 比特币源码研读之一

    作者:区块链研习比特币源码研读班 菜菜子 一、源码下载 本文比特币源码下载地址为:https://github.c...

  • 比特币引领市场行情 谁来读懂区块链3.0 币撸币

    比特币引领市场行情 谁来读懂区块链3.0 币撸币 都撸了的小伙伴请忽略,一个钱包只能撸一次哦。你没撸,可以看看撸哦...

  • 大佬忙着 币撸币 3万好礼送不停!

    比特币引领市场行情 谁来读懂区块链3.0 币撸币 都撸了的小伙伴请忽略,一个钱包只能撸一次哦。你没撸,可以看看撸哦...

  • 最新羊毛,大佬忙着 币撸币 3万好礼送不停!

    比特币引领市场行情 谁来读懂区块链3.0 币撸币 都撸了的小伙伴请忽略,一个钱包只能撸一次哦。你没撸,可以看看撸哦...

  • 大佬忙着 币撸币 3万好礼送不停!

    比特币引领市场行情 谁来读懂区块链3.0 币撸币 都撸了的小伙伴请忽略,一个钱包只能撸一次哦。你没撸,可以看看撸哦...

  • 比特币源码研读之十一

    比特币源码研读系列已经发表了十篇了,通过这十篇源码研读系列让我对比特币源码及比特币运行原理有了进一步的理解,也让我...

网友评论

本文标题:试撸比特币源码(一)

本文链接:https://www.haomeiwen.com/subject/ibyepxtx.html