最近区块链又火了,这对于我们做技术的是好事情,我看拉勾上区块链的工程师开到了40K+。
区块链的概念来自于比特币bitcoin,但是比特币不是区块链,比特币是区块链技术的一个产物。相对来说,比特币的区块链技术属于区块链1.0时代,也是比较简单的,如果我们学习研究,那么区块链1.0(比特币)也更容易理解。
区块链本质上是存储+网络,存储就是基于块的链表存储,也是后向性链表,网络就是P2P网络,分布式,没有中心服务器,这些个特性就意味着区块链很难被篡改。
对于存储+网络,golang具备天然的优势,而且区块链2.0的以太坊,区块链3.0的超级账本都是使用go语言实现的,所以圈里golang的朋友,可以高兴一下了。不过是学习区块链,还是从事这门行业,会golang的都具备天然的优势。
为了便于学习Golang区块链,从零入门,我分享几个Go语言实现的区块链项目,可以参考学习,理解区块、区块链、POW、钱包、交易、记账等这些术语。
naivechain
比较简单的,建议先看这个,提供了区块、区块链,P2P节点链接,模拟挖矿等能力,300行代码,很容易看。
gochain
稍微复杂一些的,基本的概念实现都有,多了POW(工作量证明),交易添加等。
blockchain
防的比较全的,连编码都是base58的,还实现了hash tree,也就是 MerkelRoot 。
blockchain_go
研究性质的简单实现,主要基于作者的几篇研究文章:
以上都是英文的,不过有人翻译,可以参考这个链接查看,这是一步步很不错的入门学习项目了。
gocoin
看这个项目的介绍:
Full bitcoin solution written in Go (golang)
比特币的都有了,钱包,交易,客户端,可以部署运行。
区块链技术肯定是个好技术,而且我们又具备Golang的优势,所以可以好好的看下,了解下,推荐这两本书。
flysnow_org