比特币源码学习

区块链源码学习笔记1 - 前期知识库准备

2018-01-08  本文已影响1132人  臻甄

学历区块链整整一年还没有看过比特币源码,我也是很惭愧,刚开始学的时候网上资源还很少,现在再搜索发现各种资料和学习视频已经琳琅满目。搜索过程中发现一位良心作者写了一系列超详细的学习源码的教程。决定跟着这位大神细细探索比特币源码中的奥妙,所以写下这几篇学习笔记,基本参考下面这位博主的教程。不同的是,很多实验我可能都是在Mac OS上做的测试。

地址:比特币源码解析教程,传送门

学习笔记步骤

1. Boost库

1.1 Boost 安装 in Mac

1.2 Boost中与比特币源码相关的库

1.2.1 Signals2

// example1-signals2.cpp
#include <iostream>
#include "boost/signals2.hpp"
using namespace std;

void slot1(){
  cout << "solt1 call" << endl;
}

void slot2(){
  cout << "solt2 call" << endl;
}

int main(){
  boost::signals2::signal<void()> sig;  // 定义信号
  sig.connect(&slot1);  // 信号关联插槽,按顺序关联也会按顺序执行
  sig.connect(&slot2);
  sig();  // 出发信号
  return 0;
}

/*
Mac下安装完boost后,执行代码 g++ example1-signals2.cpp
编译后执行 ./a.out
打印结果
slot1 call
slot2 call
*/

1.2.2 Bind

cout << boost::bind(f, x, y)() << endl; //等价于 cout << f(x, y) << endl;
cout << boost::bind(f, _1, _2, _3)(x, y, z) << endl;  //等价于  cout << f(x, y, z) << endl;
cout << boost::bind(f, y, _3, _2)(x, y, z) << endl;  //等价于  cout << f(y, z, y) << endl;

1.2.3 Thread

1.2.4 Chrono

// durations 表示一段时间间隔
typedef boost::chrono::hours hours;
typedef boost::chrono::minutes minutes;
typedef boost::chrono::seconds seconds;
typedef boost::chrono::milliseconds milliseconds;
typedef boost::chrono::microseconds microseconds;
typedef boost::chrono::nanoseconds nanoseconds;

// clock 表示当前时间,是在不断的变化
typedef boost::chrono::system_clock system_clock;
typedef boost::chrono::steady_clock steady_clock;
typedef boost::chrono::high_resolution_clock high_resolution_clock;

// time point 表示某一个具体的时间点
typedef system_clock::time_point sys_tp;

1.2.5 Test

BOOST_AUTO_TEST_SUITE(BOOST_TEST_MODULE)

1.2.6 Program_options

1.3 OpenSSL

1.4 libevent

1.5 Qt

以上就是Bitcoin源码阅读前需要了解的技术基础,不需要深究,知道怎么用,有什么样的表现形式即可,后面阅读源码的时候可以返回来,知道再哪里查看。

上一篇下一篇

猜你喜欢

热点阅读