为何写作这本书
身边的很多朋友听说笔者了解区块链,便向笔者咨询数字货币(如比特币)是否值得购买或投资。于是笔者做了一个简单的测试,并尝试和有过交流的人发起一些关于区块链的讨论。从这些讨论中得出了两个结论:
90%以上的人从不同渠道听说过区块链。
80%以上的人将区块链等同于比特币。
这让笔者感到非常惊讶。区块链在社会群体中迅速传播,但是传播者和接收者却对其最基本的概念都没有弄明白,而将其等同于数字货币。这可能会让一些不法之徒有机可乘。由于笔者关注的侧重点主要是区块链的底层技术,并没有意识到原来区块链在社会生活中都已经如此火爆,看到很多人对区块链有严重的认识误区,所以萌生了写一本区块链技术图书的念头。
……
笔者是区块链的推崇者,被区块链完美的构思所深深折服,因此有意为区块链的发展添砖加瓦。笔者想先解决区块链学习资料匮乏的问题,写作一本通俗易懂的区块链读物。这本书既能让大多数人看懂区块链的基本原理,也能引领技术人员在较短的时间内比较轻松地掌握区块链开发的相关技术,从而跨入区块链开发的大门。希望有更多的读者能够加入区块链的学习、研究和开发实践中来,通过大家的努力来构建成熟的区块链理论体系和标准。
本书有何特色
本书通过通俗易懂且饶有趣味的数字货币发行故事,向读者剖析了区块链的基本原理,并穿插介绍了区块链的相关概念和术语,这大大降低了理解区块链的门槛,使得大多数人都可以理解区块链的基本原理。
区块链的构思是精妙的,但其较为复杂和抽象,要想透彻理解并不容易。为了让读者更好地理解它,笔者耗费大量时间绘制了近90幅与区块链相关的原理图,这必将对读者透彻地理解区块链有很大的帮助。
本书围绕笔者开发的区块链模拟器展开讲解,将区块链中的加密、创建交易、创建区块、区块的链接、去中心化等核心环节通过实际代码实现,让读者能够从整体上理解区块链开发的思路,并亲自动手实践区块链开发的重要环节。
本书中的区块链模拟器虽然只是一个初级产品,但麻雀虽小,五脏俱全,读者完全可以通过该模拟器的动态展示,直观地体验发币、挖矿、交易等数字货币发行的重要环节,从而更好地理解区块链。
笔者用Python语言实现了区块链模拟器的开发,这大大降低了区块链开发的学习门槛。如果你具备Python编程基础,那么可以很顺利地实现书中的案例;如果你没有Python基础,但有其他编程语言基础,那么通过阅读本书第2章的Python入门知识,也可以比较顺利地实现书中的案例。
笔者在讲解过程中对区块链开发的各个关键技术进行了算法归纳和程序实现,便于开发人员更加深入地理解区块链的底层技术。
笔者请人为本书绘制了9幅漫画插图,穿插于各章。这些漫画插图生动而形象地展示了书中的数字货币发行故事,让抽象、复杂的区块链变得形象、直观,大大提升了读者的阅读体验。
本书提供了QQ交流群以方便读者进行区块链技术的学习与讨论。读者不但可以在群里相互交流和学习,而且还可以提出自己阅读本书时的疑问,或者其他意见和建议,笔者都会尽力解决。
为何做区块链模拟器
目前,区块链技术最成功的应用场景是发行数字货币,所以本书以数字货币为主题展开讲解(更准确地说是以比特币为蓝本)。比特币用户在比特币网络中创建交易、广播交易、验证交易、挖区块、将区块链接到区块链中,这一系列活动确保比特币系统的正常运行。遵照区块链技术的原理,笔者搭建了一个虚拟场景来模拟上述真实活动,这就是区块链模拟器。区块链模拟器使用者可以人为地设计任意环节,包括创建专属对等网络、添加任意数量节点、创建交易、广播交易、指定挖矿节点、修改共识机制、发动攻击等。通过这些环节,使用者可以以“上帝视角”了解区块链的工作原理,观察数据在网络中的传播,学习区块链如何抵御攻击。目前该模拟器就像一个数字货币发行机。
……
为何用Python做区块链模拟器
首先,笔者希望没有编程基础的读者也能轻松地学习和使用区块链模拟器。笔者认为Python是一门优雅、明确和简单的编程语言。Python作为一门解释型语言,在教学上的先天优势是其他编译型语言无法比拟的。它入门简单,代码可读性强,非常容易掌握。这些都为初学者学习区块链技术降低了门槛。比如之前提到,模拟器实现单次区块链的共识只需要3行Python代码。
……
本书包含哪些主要内容
第1章结合区块链故事介绍了区块链的基本原理和相关术语。
第2章介绍了区块链模拟器的设计和使用,以及Python编程入门知识。
第3章介绍了区块链中的加密技术,包括哈希算法、椭圆曲线加密和格密码等。
第4章介绍了区块链中的交易,包括一般交易形式的数据结构及创建、广播和验证的相关知识,以及如何自定义交易形式。
第5章介绍了区块和区块链,包括区块的数据结构、区块头的组成和意义、梅克尔树的作用和实现、创世区块所包含的内容、区块如何链接成区块链及区块链的分类等。
第6章介绍了区块链的去中心化共识,包括工作量证明(POW)共识算法的原理和程序实现,以及Raft协议的原理。
第7章探讨了区块链技术的相关话题,以及笔者对区块链未来发展的展望。
本书读者对象及阅读建议
……
本书配套资源获取方式
……
勘误与售后支持
……
致谢
……