热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

精通以太坊:开发智能合约和去中心化应用

编号:
wx1201873638
销售价:
¥113.52
(市场价: ¥129.00)
赠送积分:
114
数量:
   
商品介绍

以太坊打开了通向去中心化计算的大门,这个平台使你能够运行去中心化的应用程序(DApps)和智能合约,这些应用程序没有中心故障点或控制点,与支付网络集成,并在开放的区块链上运行。通过这本实用指南,Andreas M. Antonopoulos 和 Gavin Wood 向读者提供了在以太坊和其他基于虚拟机的区块链上构建智能合约和 DApps 所需的一切信息。本书既可以作为一本技术参考手册,也可供读者全面地了解以太坊。前两章主要是一个入门级的介绍,适合新手用户,这些章节中的示例可以由具有一定技术技能的读者完成。这两章将使你对以太坊基础知识有一个很好的掌握,并教会你使用以太坊的基本工具。第三章及以后的内容主要面向程序员,包括许多技术主题和编程示例。

喻勇,在技术圈驰骋多年,曾担任过微软技术布道师,VMware Cloud Foundry生态建设负责人,并有幸引领了靠前容器技术的创业浪潮。目前赋闲在家,翻译图书,学习新知。

前言1术语速查11章 什么是以太坊?23以太坊与比特币的比较23区块链的组件24以太坊的诞生25以太坊的四个开发阶段26以太坊:一个通用目的的区块链27以太坊的组件28以太坊和图灵完备29从通用目的的区块链到DApp31互联网的第三次浪潮32以太坊的开发文化32为什么要学习以太坊?33这本书将会教你什么内容?33第2章 以太坊基本概念34以太币的货币单位34选择以太坊钱包35控制和责任36MetaMask入门37世界计算机简介45外部账户和合约账户46一个简单的智能合约:Faucet46编译Faucet合约49在区块链上创建合约50与合约进行交互52总结57第3章 以太坊客户端58以太坊网络58运行以太坊客户端62以太坊区块链数据的首次同步67远程调用以太坊客户端71总结74第4章 以太坊背后的密码学75密钥和地址75公钥密码学和加密货币76私钥78公钥79密码学哈希函数85以太坊地址87总结92第5章 钱包93钱包技术概述93钱包的最佳实践97总结108第6章 交易109交易的结构109交易的随机数110交易的gas115交易的接收方117交易中的以太币和数据117特殊交易:合约创建121数字签名123签名的前缀值(v)和公钥恢复129离线签名130交易的传播131记录在区块链上132多签名交易132总结133第7章 智能合约与Solidity134什么是智能合约?134智能合约的生命周期135以太坊不错编程语言136使用Solidity编写智能合约138以太坊合约的应用程序二进制接口140使用Solidity进行编程142与gas有关的注意事项163总结165第8章 智能合约与Vyper166合约的常见漏洞和Vyper166与Solidity的比较167装饰器171函数和变量顺序172编译173在编译器层面防止溢出错误173读取数据174总结174第9章 智能合约安全175安全最佳实践175安全风险和反模式176重入176算术溢出181意外的以太币185DELEGATECALL189默认的可见性195无序错觉197外部合约引用199短地址/参数攻击204未检查的调用返回值206竞争条件/预先交易208拒绝服务211区块时间戳操纵214小心使用构造函数216未初始化的存储指针217浮点数和精度219Tx.Origin验证222合约程序库223总结2240章 代币225代币有哪些使用方式?225代币和可替代性227对手方风险227代币和内在性227使用代币:工具型代币还是权益型代币?228以太坊的代币230代币标准251代币接口标准的扩展253代币和ICO254总结2541章 预言机255为什么需要预言机?255预言机的应用场景和示例256预言机的设计模式257数据认证259计算性的预言机260去中心化预言机262Solidity中的预言机客户端接口262总结2662章 去中心化应用267什么是DApp?268一个基本的DApp示例:拍卖DApp271拍卖DApp的进一步去中心化276使用Swarm进行数据存储277以太坊名称服务280从普通应用到去中心化应用291总结2923章 以太坊虚拟机293什么是EVM?293图灵完备和gas308gas308总结3114章 共识312基于工作量证明的共识机制313基于权益证明的共识机制313Ethash:以太坊的PoW算法314Casper:以太坊的PoS算法315共识的原则316争议和竞争316总结317附录A 以太坊的分叉历史318附录B 以太坊标准325附录C EVM操作码和对应的gas开销332附录D 开发工具、框架和类库339附录E web3.js教程359

本书由Andreas M. Antonopoulos和Gavin Wood博士合著。一系列幸运的巧合将这两位作者聚集在一起,他们和数百名贡献者并肩写作,以最具开源精神和创造性的方式完成了本书。Gavin一直希望写一本书,对以太坊黄皮书(他关于以太坊协议的技术描述)中的概念进行扩展和延伸,主要目的是向更广泛的读者介绍以太坊,这显然是充满了希腊字母和数学公式的黄皮书所无法完成的。当Gavin与Andreas谈到写这本书的想法时,两人一拍即合,写书的计划按部就班地开始推进。Andreas是以太坊项目的早期参与者,他在这个领域也很有知名度。当时,Andreas刚出版了他的著作《Mastering Bitcoin》译注1,那本书迅速成为比特币和加密货币的权威技术指南。之后,Andreas的读者就开始问他:“你什么时候写《Mastering Ethereum》呢?”Andreas已经在考虑他的下一个项目,并发现以太坊是一个引人注目的技术主题。最终,2016年5月,Gavin和Andreas在同一个城市巧遇。他们聚在一起喝咖啡,谈及这本书的计划。由于Andreas和Gavin都是开源理念的忠实拥护者,他们都希望通过社区协作的方式来完成这本书,并最终在Creative Commons许可下发布。值得庆幸的是,出版商O扲eilly Media非常支持这个想法,本书这个项目正式启动。如何使用本书本书既可以作为一本技术参考手册,也可供读者全面地了解以太坊。前两章主要是入门级的介绍,适合新手阅读,有一定技术能力的读者可以尝试完成其中的示例。这两章将使你对以太坊基础知识有很好的掌握,并教会你使用以太坊的基本工具。第3章及以后的内容主要面向程序员,包括许多技术主题和编程示例。作为以太坊的参考手册和入门级教材,本书不可避免地包含一些重复的内容。例如,在一些章节中我们介绍了gas,主要目的是配合那些章节的内容;类似gas这样重要的内容,会有单独的章节重点介绍。目标读者本书主要面向程序员。如果你可以使用编程语言,本书将教会你运行智能合约的区块链的工作原理、使用方法以及如何使用它们开发智能合约和去中心化应用程序。前几章也适合非开发人员深入了解以太坊。本书使用的术语和约定本书使用以下字体约定:斜体(Italic)表示新的术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant width)用于程序代码,以及用于引用程序元素的段落,例如变量或函数名称、数据库、数据类型、环境变量、语句和关键字等。等宽粗体(Constant width bold)显示应由用户按字面输入的命令或其他文本。等宽斜体(Constant width italic)显示应使用用户提供的值或由上下文确定的值替换的文本。此图标表示提示或建议。此图标表示普通注释。此图标表示警告或注意。示例代码示例代码采用Solidity、Vyper和JavaScript编写,并使用类Unix操作系统的命令行。所有代码都可以在GitHub存储库中找到。请阅读书籍代码,尝试代码示例,或通过GitHub提交更正:https://github.com/ethereumbook/ethereumbook。所有代码片段都可以在大多数操作系统上进行复制,只需安装基本的编译器、解释器和相应语言的库。必要时,我们提供基本安装说明和关于输出的逐步说明。一些代码片段和代码输出已重新格式化,以便进行印刷。在所有情况下,行都用反斜杠(\)字符分隔,然后是换行符。在录入这些代码时,请删除这两个字符并再次连接这些行,你应该看到与示例中显示的结果相同的结果。所有代码片段都尽可能使用实际值和计算,以便读者可以从这些例子开始按顺序尝试,并在你编写的任何代码中获得相同的结果。例如,私钥和相应的公钥以及地址都是真实的。样本交易、合约、区块和区块链引用都已存在于实际的以太坊区块链中,并且是公共区块链的一部分,因此你可以查看它们。示例代码的使用许可这本书是为了帮助你完成工作。通常,如果本书提供了示例代码,你可以在程序和文档中使用它。除非复制了大部分代码,否则无须与我们联系以获得许可。例如,编写使用本书中几个代码块的程序不需要许可。出售或分发O扲eilly书籍中的示例CD-ROM需要获得许可。通过引用本书并引用示例代码来回答问题不需要许可。将本书中的大量示例代码合并到产品文档中需要获得许可。我们不强制要求注明出处,但如果你能这样做,我们将对此表示感谢。注明出处应该包括书名、作者、出版商、ISBN和版权。例如“Mastering Ethereum by Andreas M. Antonopoulos and Dr. Gavin Wood (O'Reilly). Copyright 2019 The Ethereum Book LLC and Gavin Wood, 978-1-491-97194-9”。本书是根据Creative Commons Attribution-Noncommer-No Derivative Works 4.0 International License(CC BY-NC-ND 4.0)提供的。如果你认为自己对代码示例的使用超出了合理使用范围或上述许可范围,请随时通过permissions@oreilly.com与我们联系。对公司和产品的引用所有对公司和产品的引用都是为了教育、演示和参考目的。这并不表示作者对所提及的任何公司或产品进行背书。我们尚未测试本书中显示的任何产品、项目或代码段的操作或安全性。使用它们需要你自担风险!本书中的以太坊地址和交易本书中使用的绝大部分以太坊地址、交易、密钥、QR码和区块链数据都是真实的。这意味着你可以浏览区块链,查看作为示例提供的交易,使用你自己的脚本或程序检索它们,等等。但请注意,在本书中使用过的地址的私钥已被“烧毁”。这意味着如果你向这些地址中的任何一个转账,这笔钱将永远丢失或(更可能)被挪用,因为阅读本书的任何人都可以使用书中出现过的私钥来获取这些地址中的以太币。不要向这本书中的任何地址发送以太币或代币。你的数字资产将被其他知道私钥的读者带走,或永远丢失。O'Reilly SafariSafari(以前称为Safari Books Online)是一个会员制的培训和学习平台,适用于企业、政府、教育工作者和个人。会员可以访问来自250多家出版商的数千本书籍、培训视频、学习路径、互动教程和策划播放列表,其中包括O'Reilly Media、Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley&Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones&Bartlett、Course Technology,等等。欲了解更多信息,请访问http://oreilly.com/safari。如何与我们联系有关本书以及开放版权和翻译的信息,请访问https://ethereumbook.info/。请向出版商提出有关本书的评论和问题:O'Reilly Media,Inc.1005 Gravenstein Highway North Sebastopol,CA 95472800-998-9938(美国或加拿大)707-829-0515(国际或当地)707-829-0104(传真)请将有关本书的评论或技术问题发送至bookquestions@oreilly.com。有关我们的书籍、课程、会议和新闻的更多信息,请访问我们的网站https://www.oreilly.com。在Facebook上找到我们:https://facebook.com/oreilly。在Twitter上关注我们:https://twitter.com/oreillymedia。在YouTube上观看我们:https://www.youtube.com/oreillymedia。联系Andreas读者可以在个人网站上联系Andreas M. Antonopoulos:https://antonopoulos.com。在YouTube上订阅Andreas的频道:https://www.youtube.com/aantonop。关注Andreas的Facebook页面:https://www.facebook.com/AndreasMAntonopoulos。在Twitter上关注Andreas:https://twitter.com/aantonop。在LinkedIn上与Andreas联系:https://linkedin.com/company/aantonop。Andreas还要感谢所有通过每月捐款支持他的工作的顾客。你可以通过https://patreon.com/aantonop支持Andreas。联系Gavin读者可以在个人网站上联系Gavin Wood博士:http://gavwood.com/。在Twitter上关注Gavin:https://twitter.com/gavofyork。Gavin一般在Riot.im上的Polkadot Watercooler聊天室:https://riot.im/app/#/room/ #polkadot- watercooler:matrix.org。来自Andreas的致谢我把自己对文字和书籍的热爱归功于母亲Theresa,她在一栋墙上堆满了书的房子里把我养大。尽管自称是一个对技术充满恐惧的人,但母亲还是在1982年给我买了台电脑。我父亲Menelaos是一位土木工程师,在80岁时出版了他的本书,他教会了我逻辑和分析思想以及对科学和工程的热爱。谢谢大家在整个旅程中对我的支持。来自Gavin的致谢我9岁的时候,母亲从邻居那里为我买了台电脑,没有它,我的技术进步无疑会减少。我童年时对电充满了恐惧,必须感谢Trevor和我的祖父母,他们一次又一次地履行着“在我给电脑插上电源时保护我”的重任,没有他们,电脑就没用了。还必须感谢我一生中所遇到的几位恩师,从邻居Sean(他教会我个计算机程序)到Quinn先生(他是我的小学老师),Quinn先生允许我去编程而不用上历史课,再到我的中学老师Richard Furlong Brown,他给我机会做更多编程,而不是成天打橄榄球。必须感谢我孩子的母亲Jutta,感谢她一直以来的支持,感谢我生命中的许多人,无论是新朋友还是老朋友,这些朋友使我保持着理智。最后,我要向Aeron Buchanan致以最诚挚的感谢,没有他,我生命中最近这五年不可能像今天这样精彩,如果没有他的时间、支持和指导,这本书就不会像现在这样完美。贡献列表许多贡献者在GitHub的早期发布草稿中提供了评论、更正和补充。两位GitHub编辑为本书的GitHub Repo做出了贡献,他们自愿管理、审查、编辑、合并和批准Pull Request和问题:GitHub编辑主管:Francisco Javier Rojas Garcia(fjrojasgarcia)。GitHub编辑助理:William Binns(wbnns)。来自社区的贡献主要体现在DApp、ENS、EVM、分叉历史、gas、预言机、智能合约安全和Vyper等章节。由于时间和篇幅的限制,没有在版中包含的其他贡献可以在GitHub存储库的contrib文件夹中找到。整本书收到了数以千计来自GitHub的Pull Request,这些贡献提高了本书的质量、可读性和准确性。衷心感谢所有贡献者!以下是按字母顺序排序的所有GitHub贡献者的列表,括号中是他们的GitHub ID:Abhishek Sh

商品参数
基本信息
出版社 机械工业出版社
ISBN 9787111624929
条码 9787111624929
编者 [希]安德烈亚斯 M.安东波罗斯Andreas M. Antonopoulos 等
译者 喻勇,杨镇,阿剑,任露露,Elisa Jiang
出版年月 2019-05-01 00:00:00.0
开本 16开
装帧 平装
页数 380
字数 null千字
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]