PBFT -Golang实现详解
首相需要知道,PBFT算法的实现并不是听起来那么简单,我们通常听的这个算法的实现的的最为主要的,只是这种算法中的一个协议-----一致性协议。
另外还有检查点协议和视图更换协议。有兴趣的可以找材料看看。也可以留言。
1. 局限性
但是正如前面提到的那样,大多数的人更加在乎的也是论文中主要讲述的大多是第一个阶段也就是第一个协议:一致性协议。这也不怪,毕竟,这是大家普遍认为重要的点。但是相反,如果加以改进的将是其他的两个阶段。
2. 关于整个背景知识就不多说,自己找,我们进入正题
2.1 如何通过Golang语言实现这样一个PBFT?
一致性协议:
还是熟悉的配方,还是熟悉的味道。
同样,强调,这个文章不适合新手,毕竟涉及到golang的相关语法。当然你有,就忽略。
1. 为什么选择golang实现
- 第一个人爱好,喜欢这门语言,比较熟
- 第二,真的好用,毕竟可以实现协程。
- 第三,当然考虑到实现这个程序,一方面需要client,一方面需要node,所协程之间互相发送消息,更加合理。
- net/http比较好用,可以代替P2P协议。
2.实现的程序图
代码实现与分析(稍等…整理中)
在众多的代码中,我认为能够较为好的实现的代码是这位老哥写的:
https://github.com/corgi-kx/blockchain_consensus_algorithm/tree/master/pbft
其中对于数据的请求以及客户端的请求处理操作,还是很好的。本文主要基于此代码基础上进行解读,如何感兴趣,可以直接,看这位大哥的源码,很精彩。