🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## :-: 元宇宙是世界的未来 本序列文章将记录一个区块链的开发过程,我们将开发一个完整版本的区块链,软件开发语言是Go语言。 首先声明我的三个观点,两个与共识算法有关: 1、公链才是真正的区块链,未来的世界属于公链; 2、采用PoW共识算法,虽然效率不是那么高,但我认为,区块链的世界一定是“慢世界”,只有“慢”,才有幸福,才有真的创新,而有创新的人生才是幸福的,也才有意义。试问,匆匆忙忙的人生有什么意义? 在开发过程中,我们将对区块链涉及到的技术细节一一进行探讨,也是属于从零开始的探究性的理解和学习。 >本书源码参考了github上多个开源的源码,为遵循开源协议,本项目将一直开源。参考项目一一列举如下(清单将不断更新): 1、[https://github.com/Jeiwan/blockchain\_go](https://github.com/Jeiwan/blockchain_go),修正了里面的不少bug(无力吐槽。。。有些是逻辑错误,有些纯属功能缺陷,有些是注释错误(注释错误很可怕),可能作者也是参考了其他源码编写的,而且可能并没有吃透所参考的源码。我也对该项目提交了部分修订)。 BTW,参考的源码还是整体上比较优雅,不少值得学习的地方,说是the best practice也不为过,另外,配套的技术讲解文章尤其见功力,对区块链技术阐述简明扼要,而且技术阐述与代码相互印证,文字表达能力一流,可见作者对区块链的理解之深。 2、[https://github.com/btcsuite/btcd](https://github.com/btcsuite/btcd),这是基于Go语言实现的一个完整的bitcoin。这是一个活跃的区块链开源项目,贡献者达127人(截止到2020年10月20日),遵循的版权协议是[copyfree](http://copyfree.org/):这是其介绍:btcd is an alternative full node bitcoin implementation written in Go (golang).This project is currently under active development and is in a Beta state. It is extremely stable and has been in production use since October 2013。 3、[https://github.com/stretchr/testify](https://github.com/stretchr/testify),这是一个开源的Go单元测试包。 4、[https://github.com/ethereum/go-ethereum/](https://github.com/ethereum/go-ethereum/),这是以太坊官方主要应用Go语言开发的以太坊,项目相当活跃,贡献者高达547人,最新的release版本是1.9.23(截止到2020年10月21日)。 5、[https://github.com/pengzhaocheng16/simple_bitcoin_go](https://github.com/pengzhaocheng16/simple_bitcoin_go),作者在fork了上面第一个开源项目blockchain_go后,在参考以太坊的实现的基础上,完善了blockchain_go的功能,主要是P2P功能。* 6、[https://github.com/libp2p/go-libp2p](https://github.com/libp2p/go-libp2p)。p2p是非常复杂的,我们将基于libp2p模块来开发区块链所需的p2p功能。 >此外,开发过程中还参考了bilibili上北大肖臻教授的公开课课程:《区块链技术与应用》。肖老师在视频课程上,以比特币区块链为例,对区块链相关技术有较为详尽的讲述,更多告诉我们“为什么”的问题,讲述深入浅出,可谓释疑解惑之好课程。肖老师确是区块链技术上受人尊敬的布道者,由衷钦佩之。 千里之行,始于足下,大厦的地基建设最费周章,今天的慢,是为了以后的快。这个区块链项目,也是后面将要开发的“全球供需匹配区块链”的一个基石。在这之后,我将另外新起一本书,也以序列文章出现,配套开发的代码完成。 全球供需匹配区块链的顶层设计历经近3年断断续续编写和修订,已经初具雏形,目前还在继续广泛阅读各种经济、技术、哲学相关书籍,我也将在本项目结束后,做一个定稿,并公布出来,这之后,我将首先基于全球供需匹配区块链的设计需要,以智能合约实现为目的,对项目的脚本语言进行扩展。所有的设计,都将落实到代码上。 我将确保放到github中的源代码都是有非常完备详尽的注释(尽量注释到每一行),甚至涉及到Go语言的知识点也会解释清楚,确保每一位阅读者以及自己以后随时翻看起来,都能一目了然。 ***如果有blockchainer有兴趣,可以和我联系,一起加入并从头打造一个区块链(qq:785909868)。区块链综合了过往的不少技术,其中主要是密码学相关技术、P2P网络、虚拟机技术。全新开发一个区块链,并不是一件工作量浩大到让人却步的工程,它涉及到的技术有限、代码量也有限,而且Go提供了不少可靠的包使用(如libp2p等)。Go语言作为全新的语言,作为下一代的并发编程的C,吸取了包括动态语言在内的很多特性,严谨不失灵活,文法优雅,而且“代码是什么,执行就是什么”。一句话:你值得加入和拥有。*** ## :-: 能力有限,潜能无限;专注于兴趣,追求无止境。