Graphene 源码阅读 ~ 基础知识

最近一直在业余时间看 Graphene 的源码, Graphene 是 bitshares 和 steem 的底层技术, 得益于 LMAX 架构和 DPoS 这一高效的共识机制, 使得基于 Graphene 成为目前最稳定和最高效的区块链底层. 接触区块链技术后, 我对区块链的各种共识协议做了很多浅薄的思考, 最后真的觉得 DPoS 共识才是未来的趋势 :P. 看 Graphene 的源码, 一方面是学习一下 LMAX 架构以及 DPoS 共识机制; 另一方面因为以前没做过分布式开发, 也是学习一下分布式程序的运作机制.

Graphene 的源码现在已经并到 bitshares/bitshares-core 维护了, 本来以为自己残存的 C++ 知识应该直接看没问题, 但 clone 下来代码以后发现高估了自己... 不得不又买了本 C++ Primer 补了一下.. 所以这篇文章就总结一下阅读 Graphene 源码时的一些 prerequisites 吧..

  1. typename 的存在理由及用处, http://pages.cs.wisc.edu/~driscoll/typename.html
  2. .template 的用法以及存在的理由, https://stackoverflow.com/questions/610245/where-and-why-do-i-have-to-put-the-template-and-typename-keywords
  3. lambda 表达式
  4. 函数模板 (C++ primer 10.1 ~ 10.4 节)
  5. 继承, 重载, 虚函数/纯虚函数, 友元
  6. 类模板以及类模板的特化
  7. 智能指针 (shared_ptr, unique_ptr)
  8. 多线程编程与异步编程
  9. boost::multi_index 库, rb tree, b/b+ tree
  10. BM 的 fc 库 (FC_REFLECT 宏)
  11. 最基本的 c/c++ 知识

后续计划分 5 篇左右的文章从各个部分剖析一下 Graphene 的源码实现. 希望自己能坚持写完 :D

欢迎感兴趣的朋友一起分享交流~~

H2
H3
H4
3 columns
2 columns
1 column
4 Comments