1.前言
最近在研究共识算法,对于hotstuff算法比较感兴趣,但是太复杂了源码,用的还是我没怎么接触的C++语言写的,想着在这里记录一下,如果有错误的地方,也希望有大佬帮忙纠正。应该会分为很多部分来记录。源码获取:GitHub - hot-stuff/libhotstuff: A general-purpose BFT state machine replication library with modularity and simplicity, suitable for building hybrid consensus cryptocurrencies.
2.框架
整个文件夹长这样,从上往下看一些比较重要的代码。首先是examples,这里是模拟代码demo测试的文件。然后是include,这个比较重要,里面是源代码的头文件。salticidae与secp256k1是比较重要的库,saltcidae是提供分布式处理等工具的库,secp256k1是椭圆曲线加密的一些工具。接着就是scripts,这里面是一些多机部署的代码(之前的examples中只是在单个机子上去演示,这里则需要进一步的多机部署测试)。然后是src,这里面是一些cpp文件,是头文件中函数的实现。最后是test文件,应该是一些辅助测试的文件。
笔者将着重记录hotstuff底层源码的分析以及相关的实验,如有错误的地方请大佬纠正。