购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

为什么要写这本书

随着区块链技术近两年迅速“走红”,身边越来越多的朋友想了解区块链技术及其应用场景。2017年一整年,笔者也在各种峰会上做过很多次区块链的演讲,约80%会议的听众是入门级别的,每次演讲完,都会有听众询问如何快速学习区块链技术。每当有新的学生加入我们的实习生团队时,他们也会问笔者如何快速入门。通常笔者会回答他们“从以太坊白皮书、黄皮书看起”。但是,真正能帮助他们厘清这个技术的背景、原理、关键知识点和实战要领的资料尚未系统化。为此,笔者也写过一些讲义以帮助大家理解,但是仍难以做到全面和系统。从那时起笔者就萌生了编写一本系统深入的区块链书籍的想法。但是由于工作繁忙,一直没有付诸行动。

随着区块链的升温,想了解该技术的朋友持续增多。每天笔者的微信、信箱都会有来自同事、朋友的信息,他们都在咨询如何学习区块链。于是,笔者觉得是时候写一本探索技术、指导开发的书了。

为什么选择以太坊呢?首先,它是区块链2.0的代表。其实“区块链”这个词脱离比特币(区块链1.0)而单独被各行业重视与以太坊的产生分不开。以太坊是第一个通用的区块链平台,换句话说,用户可以定义在区块链上运行什么和记录什么。以太坊的公有链已经运行两年多,整个社区不断修补出现的问题,积极寻求优化的途径。尽管它不是完美的,但它是目前经得起时间和应用验证的最稳定的系统。其他很多区块链项目都或多或少受到以太坊的启发。因此,系统学习以太坊可认为学习其他系统打下非常好的基础。其次,以太坊社区的建设比较完善和活跃,各个版本的代码质量较高,开发工具相对完善,应用也有一定规模,这使得大家易于上手学习。再次,笔者团队的工作也是以以太坊为主。比如笔者团队在开发微软的Coco区块链平台时,就以集成和优化以太坊为coco第一版本的目标。通过项目开发,笔者更加熟悉以太坊源码,这样也自然使得本书更加具体化。笔者曾在2017年翻译了《区块链项目开发指南》 一书,该书介绍了以太坊开发相关知识,特点是覆盖面比较广,而本书会在深度上下工夫。因此,读者可以“搭配”着学习。

本书将展现给读者一个系统、全面的以太坊知识体系,以通俗易懂的语言结合直观的图示介绍每一个原理和工作流程,相信读者通过本书的学习可轻松快速地入门以太坊开发。

本书特色

首先,为了增强知识结构的凝聚性,本书没有泛泛而谈整个区块链,而是更加专注于以太坊公有链本身的技术。通过阅读本书,读者可以全面、深入地了解以太坊的顶层设计、实现原理、重要模块的技术细节,以及智能合约的编写与部署等重要概念和技术。这是本书与目前介绍区块链相关技术的书籍最大的不同。

其次,从技术深度上讲,本书所涉及的内容具有很好的层次性,既涵盖初学者所需的基本概念,也包括以太坊DApp开发工程师感兴趣的编程指南和代码解析,此外对以太坊在性能和安全性方面所尝试的改进技术进行了前瞻性介绍,以供资深工程师和研究人员参考、探讨。

再次,本书不仅介绍以太坊本身技术细节,还加入笔者在开发中的经验和技巧。比如在部署以太坊的时候可以手工操作,也可以用脚本在“云”上操作,其中脚本也分享给大家借鉴。

最后,本书的文字力求简洁、朴实且准确,可读性较强。

读者对象

·区块链开发初学者

·区块链应用架构师

·开发应用架构师

·区块链产品经理

·其他对区块链技术感兴趣的人员

如何阅读本书

本书分为10章,下图比较清晰地展示了各章的主题。

第1章从区块链背景知识讲起,包括区块链基本原理及应用,使得初学者和开发者都能对区块链有整体性了解。然后引出为什么需要以太坊以及以太坊的基本知识,这为后面章节的阅读提供整体形象的铺垫。

第2章介绍以太坊的组成、关键概念和技术。本章比较重要,其后介绍的内容都将以本章的概念为基础。因此,必须仔细阅读。

第3章介绍不同区块链网络类型,以及如何部署不同类型的区块链。建议读者在阅读本章时也能同时跟着书中介绍的部署步骤进行操作,以更好地理解以太坊网络。根据实际经验,本章将介绍一些部署的窍门及脚本样例,相信一定能为大家的学习提供帮助。

第4章介绍智能合约和以太坊虚拟机的原理。了解该原理,可为接下来第5章学习开发智能合约打好基础。

第5章和第6章详细地介绍具体编写智能合约的方法以及案例详解。建议读者在阅读这两章时能同步操作,一起编写、编译、部署合约,达到最佳的学习效率和理解深度。

第7章介绍以太坊上数字资产定义的原理和方法,其中包括近期火爆的CryptoKitties(养猫游戏)的ERC 721代币合约标准的介绍。到这里为止,读者可以开始编写自己的以太坊应用了。

第8章将进一步对查看、分析以太坊公有链数据的工具和方法进行介绍。

第9章和第10章探讨区块链和以太坊的前沿技术。这两章会对以太坊在性能优化和隐私保护方面的技术进行介绍和讨论。这些技术尚处于比较初级的阶段,读者可以一边阅读一边思考,并提出自己的想法和建议。

勘误和支持

由于笔者的水平和时间有限,加之以太坊技术更新迭代快,书中难免存在一些不准确的叙述,恳请读者批评指正。如果读者朋友有更多的宝贵意见,欢迎通过邮箱EthereumDetail@hotmail.com联系笔者,期待读者朋友的真挚反馈,以在技术之路上互勉共进。

本书的其他贡献者

感谢我们团队李洋、张师铨、张宪、候冠豪、杨文彦、夏劲夫、周豪对本书内容的贡献!

致谢

笔者要特别感谢微软亚洲研究院的周礼栋和洪小文院长对笔者团队区块链项目的指导和支持。感谢陈洋博士过去一年多在区块链方面的共同探讨。感谢杨懋、伍鸣、熊一远、黎强、周沛源、Thomas Moscibroda、张益肇、殷秋丰、田江森、程骉、黎江、梁戈碧、宋青见、桂柯里、石朝阳、张蓉等同事、领导和朋友的支持与鼓励。感谢导师周傲英教授和周晓方教授指引方向。感谢同行的共同努力,感谢家人的支持!还要感谢V神Vitalik的支持与肯定。

最后还要感谢机械工业出版社华章公司的高婧雅编辑对本书的全程支持和指导。她在本书的内容组织和阅读体验方面给我们提出十分宝贵的意见和设计方案,正是她的兢兢业业、一丝不苟的负责态度,保证了本书内容的质量和可读性。

闫莺 m6tSm9VQcaWalcjxLjr68J9yCZ4/lr3fuvVpXHH8q1NoF9n+7bS8CciHVZx9dYyi

点击中间区域
呼出菜单
上一章
目录
下一章
×