最近区块链又火了,这对于我们做技术的是好事情,我看拉勾上区块链的工程师开到了40K+。

区块链的概念来自于比特币bitcoin,但是比特币不是区块链,比特币是区块链技术的一个产物。相对来说,比特币的区块链技术属于区块链1.0时代,也是比较简单的,如果我们学习研究,那么区块链1.0(比特币)也更容易理解。

区块链本质上是存储+网络,存储就是基于块的链表存储,也是后向性链表,网络就是P2P网络,分布式,没有中心服务器,这些个特性就意味着区块链很难被篡改。

对于存储+网络,golang具备天然的优势,而且区块链2.0的以太坊,区块链3.0的超级账本都是使用go语言实现的,所以圈里golang的朋友,可以高兴一下了。不过是学习区块链,还是从事这门行业,会golang的都具备天然的优势。

为了便于学习Golang区块链,从零入门,我分享几个Go语言实现的区块链项目,可以参考学习,理解区块、区块链、POW、钱包、交易、记账等这些术语。

naivechain

https://github.com/kofj/naivechain

比较简单的,建议先看这个,提供了区块、区块链,P2P节点链接,模拟挖矿等能力,300行代码,很容易看。

gochain

https://github.com/crisadamo/gochain

稍微复杂一些的,基本的概念实现都有,多了POW(工作量证明),交易添加等。

blockchain

https://github.com/izqui/blockchain

防的比较全的,连编码都是base58的,还实现了hash tree,也就是 MerkelRoot 。

blockchain_go

https://github.com/Jeiwan/blockchain_go

研究性质的简单实现,主要基于作者的几篇研究文章:

  1. Basic Prototype
  2. Proof-of-Work
  3. Persistence and CLI
  4. Transactions 1
  5. Addresses
  6. Transactions 2
  7. Network

以上都是英文的,不过有人翻译,可以参考这个链接查看,这是一步步很不错的入门学习项目了。

  1. https://ethfans.org/posts/building-blockchain-in-go-part-1
  2. https://ethfans.org/posts/building-blockchain-in-go-part-2
  3. https://ethfans.org/posts/building-blockchain-in-go-part-3
  4. https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-4
  5. https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-5
  6. https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-6
  7. https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-7

gocoin

https://github.com/piotrnar/gocoin

看这个项目的介绍:

Full bitcoin solution written in Go (golang)

比特币的都有了,钱包,交易,客户端,可以部署运行。

区块链技术肯定是个好技术,而且我们又具备Golang的优势,所以可以好好的看下,了解下。

本文为原创文章,转载注明出处,欢迎扫码关注公众号flysnow_org或者网站asf http://www.flysnow.org/ ,第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。

扫码关注