Skip to content

maodoutech/my-bitcoin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bitcoin源码解析

架构

architecture

目标

目标设定是看完bitcoin的代码,需要掌握哪些内容。前期这部分内容可能会随着代码的深入发生变动。 从空工程,一步一步移植bitcoin代码过来,保证每个版本都可运行,直到最终一致。这样可以保证对代码运行了解透特。不浮在表面。 主要包括:

  1. P2P通信(分布式)。
  2. POW共识机制(去信任)。
  3. 加密算法应用
  4. 交易
  5. 挖矿
  6. 区块、区块链
  7. 存储
  8. UTXO模型
  9. 脚本

希望最终能达成的效果是,对bitcoin代码了如指掌,熟悉其设计理念,构建自己的区块链知识体系。如果自己实现公链,有所启发。 阅读代码之前,如果对区块链不是很熟悉,建议先阅读这些资料,对后面的学习有比较好的帮助。

编译

Mac下编译

环境准备 brew install boost

复制源代码 git clone https://github.com/maodoutech/my-bitcoin.git cd my-bitcoin

编译 cmake . make

输出见bin目录

Ubuntu下编译

// todo

说明

  1. 为了简化,不支持windows
  2. 每个版本在doc下都有一个简要说明
  3. 每个版本基本都是一天左右的工作量,与上版本的diff可以参考doc的说明
  4. 每个版本都会打一个tag与doc下的文档对应

区块链技术并不是一项新技术,而是通过分布式存储、密码学、共识机制、P2P的集成创新,因此在代码阅读的过程中其实很多是在看它的 设计理念。我在阅读代码过程中主要是参考精通比特币WIKI

文档

理论

  1. 代码结构
  2. 交易
  3. 一致性

版本

  1. 环境搭建
  2. AppInit
  3. 日志模块和琐
  4. 任务池
  5. AppInit2前三步
  6. 加密算法
  7. RPC
  8. P2P framework

About

bitcoin source code migration

Resources

Stars

Watchers

Forks

Packages

No packages published