周末刚好查资料找到了区块链的一些资料,也算和题主说的Go语言相关,就来写一写。
我们都知道go语言是2009年刚刚被发发布的一门新语言。我看了其他的答案,大家也都说出了go语言本身的机制方面的优势和特点,比如说:天生支持并发。而且采用协程来实现高并发,效果还很好。另外一点就是Go适合做分布式系统开发。
我这里就给大家补充一个新的证据,或者说案例,是我周末查资料刚刚了解到的。
了解区块链的人,大概都知道市值占比第二的是以太坊,目前来看仍然是公链里面受关注最多的,市场影响力也远超其他公链。这是目前的情况,我们再去了解下以太坊的历史。
2013年,V神提出了以太坊的白皮书。在发布白皮书不久之后,就开始有专门的全职开发者进行开发了。
2014年的4月,发布了以太坊技术黄皮书,这是具体阐述以太坊内部技术细节的圣经。在黄皮书中,就说明了这样一件事,以太坊客户端支持7中编程语言,包括:C++、Go、Python、Java、JavaScript、Haskell、Rust等。我们可以看到,Go语言版本排在第二位。
随后在2014年发起了众筹,成功募集超过1800万美金。此时团队正在开发测试版本,并不断的发布测试版本在社区里面进行测试。
后续的The DAO事件,以太坊受攻击等事件我们就省略不说了。
回到现在,搭建过以太坊环境的技术开发者都知道以太坊的官方程序是geth,这个名字其实就是go-ethereum的缩写,也正是前面提到的go语言版本的以太坊客户端。
这足以说明,go语言或者go版本开发团队的出色表现,赢得了该有的认可。而区块链系统本身就是分布式系统,这似乎是我们前面结论的一个佐证吧。
另外,题主问为什么现在很多区块链用go,其实还有一个原因。和以太坊也有关。
那就是,因为17年的爱惜欧模式让以太坊彻底火了,然后就出来了各种公链方案和公链团队。在进行技术选型和实现过程中,很多团队都是以以太坊为原型,提出方案进行修改。这个时候,就要在以太坊代码的基础上进行修改了,也就是go-etherum版本的代码。那使用go语言的区块链项目或者团队多了也就自然可以理解了嘛。
其实,我们可以看到fabric也有各种语言的sdk,包括java,node,python,go等。其中,我们也看到了go语言。
总之,我们可以发现,区块链项目中使用go语言确实是不争的事实。这其中的原因既有go语言本身的特点和特性,又有现实的的因素。