首页>参考读物>计算机科学与技术>综合

区块链应用开发实战
作者 : [美]袁钧涛(Michael Juntao Yuan) 著
译者 : 石涛声 曹洪伟 译
丛书名 : 区块链技术丛书
出版日期 : 2020-08-11
ISBN : 978-7-111-66288-4
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 274
开本 : 16
原书名 : Building Blockchain Apps
原出版社: Pearson Education Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

区块链正在进入一个爆炸式发展的时期,真实应用在多个行业并获得了强劲的动力,加密货币也在整个金融领域获得了更多的认可。对于技术人员来说,无论是技术研究还是商业探索,区块链都是最有吸引力的方向之一。基于当今最先进和最健壮的区块链编程模型和架构模型,本书为构建区块链应用提供了实用指南。

图书特色

本书由区块链大咖亲笔撰写,从简单介绍区块链的基本概念入手,
通过大量实例帮助开发者构建出自己的区块链网络

上架指导

云计算

封底文字

“……袁博士对智能合约生态系统工具的关注是富有洞察力、博学和及时的。在本书中,他将快速引领读者走上以太坊开发之路。……DLT领域中的工具和虚拟机正在迅速发展,本书为专业开发者提供了全面指南。HODL和BUIDL:未来是光明的。”
——Marc Fleury 博士
Two Prime创始人,JBoss创始人和前CEO,Red Hat前高级副总裁

“这样一本书,就是要让区块链应用开发从高不可攀走向大众化。全书从简单介绍区块链入手,直接进入应用实践,然后再逐步推进,让用户由浅入深,掌握区块链应用的各种概念、开发环境、语言、可利用的代码库以及区块链应用应该注意的方方面面。”
——李昕
IPFS原力区CTO

当前,区块链正在进入爆发式增长期,已经真实地应用于多个行业并获得了发展的动力,加密货币也在整个金融领域获得了更多的认可。对于技术人员来说,无论是想进行技术研究还是想进行商业探索,区块链都是非常有吸引力的方向。本书为构建先进的、健壮的区块链编程模型与架构提供了实用指南。
以太坊是目前非常活跃的区块链生态系统。本书以袁博士的开创性经验为基础,覆盖了广泛的区块链应用开发范例。书中不仅包括区块链和智能合约技术等基础内容的简明介绍,还包括如何在兼容以太坊的智能合约平台上进行应用开发等实战内容。

译者序

Web3,区块链后花园的姹紫嫣红
在Web之前,是互联网。
互联网发明于20世纪70年代,正值美苏冷战的高峰期。
当时,美国有一台中央计算机控制着其核武器。美国政府担心,一次攻击就可能使该计算机系统瘫痪,使得自己无法进行反击。因此,美国政府建立了一个去中心化的系统,让许多计算机分布在全国各地。即使发生了攻击,防御系统仍能够继续运行。这对互联网来说是一段黑暗历史,但这也是去中心化思想的由来。
之后,在1990年,蒂姆·伯纳斯-李(Tim Berners-Lee)创建了Web(万维网),这是互联网上最早的应用之一,使得人们能够轻松地浏览网上内容。然而,它是一个高度专业化的工具,主要用于研究人员和高校学生。五年后,像Mosaic和Microsoft Internet Explorer这样的新浏览器把Web 1.0带给了普通大众。此时的网页设计很糟糕,我们通过拨号(PPP)连接互联网,下载一张照片或一个视频将花费很长时间。这就是Web 1.0,也是我们在网上冲浪的美好时光。
Web 1.0具有三大特征:去中心化、开源和只读。Web 1.0是由普通电脑用户驱动的。蒂姆·伯纳斯-李的电脑上贴着照片,它上面有一张贴纸,纸上写着不要关机,因为这台电脑正在为互联网提供动力。开源使得像谷歌和亚马逊这样的新企业成为可能。Web 1.0是只读的。只读是指每千名浏览Web的用户中,只有少数人具备发布内容的技能。
这一切在2005年前后发生了改变,YouTube、Facebook和Twitter等新网站带来了Web 2.0。任何人都可以在网上发布内容,无论技术水平如何,这是第一次实现。Facebook、YouTube和Twitter都是人们创建自己Web的简单方式。它们导致了今天Web的大规模普及。
但在那时,人们已经开始看到这些新Web背后的问题。虽然它们使我们的网上生活更方便,但它们慢慢地在开放的Web上建立“围墙花园”。此外,以前为Web提供动力的计算机逐渐演变成为这些平台提供动力的大型中心化数据中心。我们开始偏离Web的最初愿景。
智能手机的发明加速了这一现象。今天,我们拥有许多令人难以置信的设备,让我们可以做很多意想不到的事情。是的,智能手机可以让我们通过Safari、Firefox和Chrome等应用浏览网页,通过微信链接朋友,通过抖音等观看世界。但不幸的是,这些应用淹没在其他众多封闭、私有、不透明的应用之中。
互联网已经30岁了,但这不是我们想要的网络。互联网的发明者蒂姆·伯纳斯-李利用互联网30岁生日这个机会,表达了他对互联网近年来发展方向的不满。
随着Web 2.0思想的广泛传播,一个不可避免的问题出现了:Web 3.0将会是什么样子?
Web 3.0,简称Web3,将带来三大变化:
货币将成为互联网的固有特征。
去中心化应用(Dapp)为用户提供新的功能。
用户将对他们的数字身份和数据拥有更多的控制权。
Web 2.0之所以被人们所诟病,在于广告成为Web的默认商业模式,其根本原因是Web上没有传递价值的可信方式。值得庆幸的是,最近有一项发明解决了这个问题。这项发明就是比特币,它将在未来几十年对我们的社会产生重大影响。
比特币带来了两大创新:
它允许数字稀缺。历史上第一次,我们可以创造既数字化又独特的物品。
它允许我们在网上消费而不需要任何中介。
这两项创新为人们带来了价值互联网。
要了解价值互联网有多大,请考虑Web1和Web2如何彻底改变了信息的自由流动。科技改变了每一种媒体:报纸、电话、电视、书籍、广播、摄影、百科全书等。很多没有改变的东西都与价值有关。
正如Web1和Web2带来了信息流的爆炸,Web3也将带来价值流的爆炸。
就像信息一样,在未来的几十年里,价值的转移将是全球性的、即时的、自由的,每个人都可以获得的。虽然比特币可能会颠覆现金或黄金(取决于你问的是谁),但价值革命远远不止于此。想想社会的每个组成部分都需要稀缺性—股票、债券、身份、不动产等。所有这些都可以通过Web3进行转换。这将是巨大的机会。
比特币允许我们在没有任何中介的情况下进行交易。为什么我们不能用同样的想法来构建其他的应用呢?将比特币的创新(区块链、密码学、对等网络和共识算法)添加到Web应用中,这就诞生了去中心化应用。
现在我们可以把日常使用的每一个应用都放在Web上。例如,Airbnb、Twitter、Facebook、YouTube都有去中心化的版本,没有中央权威机构或超级权力。这掀起了去中心化应用的一场运动,在所有领域(无论是货币、银行、支付、广告、供应链),人们都在构建我们今天使用的应用的去中心化版本。
Web基础设施本身的改变是催生去中心化应用的重要因素。Web基础设施将有自己的原生支付层,其中包含像比特币这样的项目(当然,比特币不是唯一的项目,还有许多其他竞争性的加密货币),然后是像以太坊这样的虚拟机。这些平台可以运行去中心化应用的代码。
在此基础上,还需要一个去中心化的存储层,用来存储去中心化应用所需的源文件,如图像、视频、文本等。在这方面,值得关注IPFS和Filecoin项目。IPFS(星际文件系统)是由协议实验室和Juan Benet共同开发的一个项目,它的目标是成为HTTP的替代协议。Filecoin是基于区块链构建的可验证存储市场,是IPFS之上的激励层。
而就在今年,Filecoin作为Web3的基础设施,即将迎来主网上线,Web3的黎明和曙光初步显现。基于IPFS的内容寻址存储服务和基于Filecoin的可验证存储将为Web3提供存储层的技术堆栈。相信未来随着可验证计算等更多基础构件的成熟,区块链的后花园必将姹紫嫣红。
本书的翻译源自几个不同有趣灵魂和人生轨迹的碰撞。关敏老师是机械工业出版社华章分社的策划编辑,是她从始至终的关怀、支持和信任,才让这本书花开中国。冯秀泳老师是机械工业出版社华章分社的责任编辑,是他出色的文笔、专业的知识和严谨的态度让本书精彩盛放。曹洪伟是一个70后老程序员,在IT领域有超过20年的沉淀,期望以码农的工匠精神倾注在区块链技术上。石涛声是一个区块链工程师,在分布式系统领域有超过10年的积累,期望以学者严谨的精神让更多的读者从本书受益。本书的翻译更是得到IPFS原力区CTO李昕先生的关怀和指导,他亲自为本书撰写了推荐序。李昕先生对区块链、分布式存储、IPFS&Filecoin、Web3等相关技术领域和产业方向都有深刻的理解,并躬身入局推动相关产业的发展。借此序言,向袁博士、关老师、冯老师、李昕先生致以最衷心的谢意!同时衷心感谢译者家人在翻译全程中的理解与支持。
无论如何,翻译都是一项特殊的创作过程,在一次次的字斟句酌中,在一次次的推敲打磨中,包含了译者的理解和选择。尽管小心谨慎,孜孜矻矻,如履薄冰,终因译者水平有限,本书翻译错漏之处在所难免,望诸位读者海涵并指正。任何疏忽纰漏之处,都是译者的问题,与作者和编辑无关。
总体来说,每一次技术变革都需要最初的一批技术极客、开发者、信仰者、布道者和爱好者来拓荒。技术社区也需要更多区块链技术书籍来提供深入浅出的讲解和系统性的开发指导,而袁博士的这本书正好兼具这两个特性。

石涛声 曹洪伟

推荐序

Foreword 1 推荐序一
最近,当我与袁钧涛博士重新取得联系时,他刚刚成功地完成了区块链项目CyberMiles(CMT)的融资工作,该项目后来孵化了一家名为Second State的科技公司。袁博士一直站在区块链技术和融资的前沿。我回想起了他最初在一份出色的技术白皮书中描述CMT区块链核心技术基础的方式,以及这些方式如何与当时我自己的中间件体系结构经验和理解产生了共鸣。他用我听得懂的语言阐述一切。值得注意的是,他最初提出的愿景正在Second State得以实现,并应用于企业级区块链市场。
在21世纪初,袁博士是开源运动的热心支持者,这也是我们第一次见面的原因。开源软件在1999年后期从一个“毒瘤”变成了互联网的基石。到2008年,比特币的半匿名作者首次提出“开源货币”的概念并公之于众。比特币的非凡之处在于没有人“拥有它”,包括任何国家或公司。它作为一个开源软件存在于互联网上。作为以互联网为中心的数字价值存储手段,加密货币是开源分布式账本的第一个杀手级应用。值得重申的是,比特币之所以如此特殊,是因为它不是由一个实体拥有或运营,而是在某种意义上属于互联网的去中心化财产。它是一个开源软件。该软件的实现是在MIT许可证(开源许可证)下进行的,它邀请了一切有足够能力的人加入、讨论并保护网络。因此,比特币的运营者往往会聚集在世界各地的廉价能源周围,因为确保网络安全需要特殊的数学计算(比特币的精微玄妙之处)。事实上,比特币已经超越了价值存储手段,无中生有地创造了开源加密账本—该技术的第一个杀手级应用。
以太坊的引入和智能合约的概念彻底改变了加密金融领域。在ERC20领域出现了引人注目的资本筹集动力,这又是一种无中生有。ICO现象背后的一个疑问是,加密资产的资本市场是否有能力彻底改革融资的方式。这标志着一代人的转变。加密货币的金融应用尚处于起步阶段。这些应用只有十岁,对于互联网货币的限制,更多的是心理上的,而不是技术上的。
然而,也许更具哲学性的DLT(Decentralized Ledger Technology,去中心化账本技术)的应用对未来展示了更多的希望。例如,(主权)身份和附加到该身份的医疗数据的概念。今天,我们可以设想一个以互联网为中心(即去中心化)的ID存储库,存储适当保护的私有生物特征数据。不要忘记,DLT是以互联网为中心的分布式安全数据库。我们都知道,存储数据的DLT存在于普通手机中,而且代价很小。例如,不必依靠政府来发布和验证身份,现在在技术层面上已经有“互联网身份”的概念,可以应用到许多新的应用中,与受信任方进行视频会议就足以建立高度信任的身份。许多初创公司建议提供这种身份的实现。这种身份可以附加到医疗数据中。同样在哲学上,这些医疗数据最终属于个人。从技术上讲,分布式账本技术允许这种情况存在,并且作为一个社会,可以实现“全球范围的以互联网为中心的”数据结构。开源的未来是光明的。
从历史上看,社会的进步通常伴随着账本技术的进步,甚至是由账本技术的进步所推动的。尽管会计职业“声名狼藉”,但它似乎对人类的进步至关重要。例如,法国大革命之后,拿破仑为了建立一支军队,使用了由民族国家统一管理的中央账簿。IBM—美国的标志性公司,诞生于19世纪晚期的全美人口普查工作。当时用穿孔卡片来记录在这片广袤大陆上的人民,人口普查工作引发了一项工程壮举和蓝色巨人的诞生。未来的几代人将以我们今天无法预见的方式使用DLT。
但是回到现在,袁博士对智能合约生态系统工具的关注是富有洞察力、博学和及时的。在本书中,他将快速引领读者走上以太坊开发之路。全书使用Dapp作为具体的例子。在这个快速发展的生态系统中,开发者可以快速地提高编程效率是非常重要的。另外,本书是技术性的,涵盖了许多高层次的方面,包括通证经济学(tokenomics)。本书针对的是专业人员,包括安装开发环境和开始构建Dapp的所有步骤。本书还将超越DLT的金融应用,研究为下一代杀手级应用提供了巨大潜力的智能合约。DLT领域中的工具和虚拟机正在迅速发展,本书为专业开发者提供了全面指南。HODL和
BUIDL:未来是光明的。

—Marc Fleury博士,Two Prime创始人,JBoss创始人和前CEO,
Red Hat前高级副总裁




推荐序二 Foreword 2
网络先行,应用为王
12年前,区块链技术随着比特币的诞生而为人所知。这是一项突破性的技术,在区块链系统之上增加激励机制,可以实现去中心化的网络,从而自动建立信任、去中介化。它带来的是生产关系的变革,实现了代码即法律的高效信任逻辑。区块链自诞生之日起,便引发了无数人的好奇心,他们躬身入局,成为区块链的开发者和推动者。
以太坊(Ethereum)的创始人Vitalik Buterin便是其中一位突出代表。以太坊在比特币诞生6年后走上历史舞台。以太坊的愿景是“世界计算机”,即在一个去中心化的世界里提供可验证的计算服务。自此,智能合约正式有了现实的意义。
区块链作为一个公共系统、全球性网络平台,其发展必然有一个渐进的过程。区块链的发展模式,可以用我曾经写过的一篇文章的标题来概括,那就是“网络先行,应用为王”。所有网络都有一个共同特点,在系统发展的初期,投入最大、利润最高的是基础平台的建设。20世纪初,证券市场最热门的股票是铁路系统,当铁路系统基本建成时,可以承载各种实体服务(应用),工业取得极大发展。之后20年,最热门的是通信(依旧是平台和网络建设),当通信基本建设就位时,互联网兴起(注意,互联网公司所做的实际就是在通信网络之上的应用)。当今,热门的云计算仍然属于基础设施范畴。
一个时代的崛起,首先是平台和网络建设的投入,而后是应用层出不穷。可以参考这些网络:铁路系统,高速公路,航空系统,互联网络,无线网络(2G/3G/4G/5G)。当网络初具规模时,迎来的将是应用的爆发。交通系统、通信网络服务不再拥有超额利润,而利用这些网络的应用层出不穷。当然,应用又会反过来促进网络的发展,形成螺旋式增长模式。
区块链作为一个更加全球化的系统,一个初级的网络已经建成,现在正是第一轮应用爆发的时机。但是,作为一个新的系统,开发所基于的各种基础设施还不完备,或者不为人所知。Michael Juntao Yuan数年来一直致力于区块链的应用开发,他是CyberMiles的联合创始人,Second State公司的CEO。而这两个公司都是为去中心化开发应用而生的,关注的是如何让开发更简单、更安全、更高效。
这样一本书,就是要让区块链应用开发从高不可攀走向大众化。全书从简单介绍区块链入手,直接进入应用实践,然后再逐步推进,让用户由浅入深,掌握区块链应用的各种概念、开发环境、语言、可利用的代码库以及熟悉区块链应用应该注意的方方面面。通过对本书的全面学习,读者甚至可以自己构建一个区块链网络。
全书24章,看起来比较多,但组织有序,开发者可以将其用作教程。区块链爱好者也可以通过它系统地了解区块链相关的知识。本书也是一本很好的普及读物。
区块链发展到了第12个年头,第二个六年即将结束。第一个六年诞生了以太坊,这是一次革命,开启了网络建设的大幕。第二个六年,我们会迎来更多的改变,包括跨链、侧链技术的突破,去中心化存储Filecoin的上线,DAO(去中心化自治组织)从理论走向实践。在这个时机,我们还应该看到第一波应用的爆发,看到一些中心化应用向去中心化网络迁移,也会看到一些新兴应用的诞生。在这个时候,我十分乐见这样一本书的出版。因为本书中文版的出版,我也乐见中国的区块链开发者队伍因此书的带动而壮大。

李 昕
IPFS原力区CTO
2020年6月7日
于上海市漕河泾开发区

图书目录

推荐序一
推荐序二 网络先行,应用为王
译者序 Web3,区块链后花园的姹紫嫣红
致谢
第一部分 区块链入门
第1章 区块链简介 2
1.1 区块链 2
1.2 协作账本 3
1.3 加密数字货币 4
1.4 智能合约 5
1.5 免信任网络 5
1.6 新的协作方式 6
1.7 胖协议 6
1.8 我们相信代码 7
1.9 本章小结 8
第2章 达成共识 9
2.1 什么是区块链共识 9
2.2 PoW 10
2.3 PoS 10
2.4 DPoS 12
2.5 本章小结 12
第3章 第一个区块链应用 13
3.1 智能合约 14
3.2 前端的HTML 17
3.3 JavaScript和web3.js 18
3.4 实战 18
3.5 分享Dapp 19
3.6 本章小结 20
第二部分 走近以太坊
第4章 以太坊入门 22
4.1 BUIDL方式 23
4.2 BUIDL简易开发 25
4.3 本章小结 35
第5章 概念与工具 36
5.1 以太坊钱包和基本概念 36
5.2 Etherscan 38
5.3 TestRPC 39
5.4 通过GETH与以太坊交互 41
5.5 通过Web3与以太坊交互 42
5.6 运行一个以太坊节点 43
5.7 运行一个私有以太坊网络 44
5.8 本章小结 45
第6章 智能合约 46
6.1 重温“Hello,World!” 46
6.2 学习智能合约编程 48
6.3 构建和部署智能合约 50
6.4 调用智能合约函数 55
6.5 一种新语言 59
6.6 更多智能合约语言 61
6.7 本章小结 62
第7章 Dapp 63
7.1 Dapp软件栈 64
7.2 Dapp示例 66
7.3 本章小结 68
第8章 Dapp的替代方案 69
8.1 JavaScript 69
8.2 Python及其他 73
8.3 本章小结 74
第三部分 深入以太坊
第9章 以太坊揭秘 76
9.1 什么是区块链状态 76
9.2 以太坊的状态 78
9.3 前缀树(或树) 80
9.4 以太坊的前缀树结构 83
9.5 分析以太坊数据库 85
9.6 本章小结 88
第10章 区块链数据服务 89
10.1 区块链浏览器 89
10.2 收集数据 93
10.3 查询接口 99
10.4 下一步是什么 103
10.5 本章小结 104
第11章 智能合约搜索引擎 105
11.1 智能合约搜索引擎简介 105
11.2 开始使用智能合约搜索引擎 107
11.3 FairPlay Dapp示例 111
11.4 用例 114
11.5 本章小结 115
第12章 智能合约的安全性和最佳实践 116
12.1 以太坊智能合约的重大非法入侵和漏洞 116
12.2 智能合约安全的最佳实践 123
12.3 本章小结 125
第13章 以太坊的未来 126
13.1 以太坊1.0 127
13.2 超越以太坊1.0 130
13.3 以太坊2.0 133
13.4 以太坊2.0的交付阶段 134
13.5 后以太坊2.0的创新 135
13.6 本章小结 135
第四部分 构建应用协议
第14章 扩展以太坊协议 138
14.1 完全兼容,但更快捷 139
14.2 EVM的智能增强 139
14.3 安全第一 144
14.4 本章小结 144
第15章 扩展以太坊工具 145
15.1 智能合约工具集 146
15.2 Dapp工具集 152
15.3 本章小结 156
第16章 Dapp案例 157
16.1 案例研究1:Valentines 157
16.2 案例研究2:WeBet 161
16.3 本章小结 177
第17章 业务规则与合约 178
17.1 一个示例 179
17.2 规则语言 181
17.3 更多业务示例 185
17.4 本章小结 188
第18章 构建特定于应用的EVM 189
18.1 使用libENI函数 190
18.2 写一个libENI函数 196
18.3 部署libENI函数 198
18.4 本章小结 199
第五部分 构建自己的区块链
第19章 开始使用Tendermint 202
19.1 Tendermint的工作原理 203
19.2 工作流程 203
19.3 搭建Tendermint节点 205
19.4 搭建Tendermint网络 207
19.5 本章小结 208
第20章 业务逻辑 209
20.1 协议 210
20.2 应用示例 212
20.3 Cosmos SDK 222
20.4 本章小结 223
第21章 创建一个区块链客户端 224
21.1 方法概述 225
21.2 应用样例 226
21.3 本章小结 230
第六部分 加密经济学
第22章 通证设计的加密经济学 232
22.1 网络效用通证 232
22.2 应用效用通证 235
22.3 证券通证 235
22.4 通证的估值 236
22.5 高级主题 240
22.6 本章小结 242
第23章 ICO 243
23.1 简短的历史 243
23.2 ICO的效用 244
23.3 ICO与传统股权融资的对比 246
23.4 评估一个ICO项目 248
23.5 ICO的参与风险 249
23.6 本章小结 250
第24章 加密货币交易所 251
24.1 交易所的类型 251
24.2 去中心化交易所 253
24.3 产品和服务 254
24.4 本章小结 255
附录A 开始使用CyberMiles 256

教学资源推荐
作者: (美)Robert Sedgewick 著                    普林斯顿大学
作者: [印] 佩瑟鲁·拉吉(Pethuru Raj) 阿诺帕马·拉曼(Anupama Raman) 德维亚·纳加拉杰(Dhivya Nagaraj) 悉达多·杜格拉拉 (Siddhartha Duggirala) 著
作者: 王立柱 编著
作者: (美)Kevin F. Brennan 著
参考读物推荐