具体描述
为什么IBM、微软、纳斯达克以及其他数百个组织都在尝试以太坊?这本必不可少的指南向你展示了成为这个不断发展和令人兴奋的新兴行业的创新者所需的技能:
·运行以太坊客户端,创建和传输交易,编写智能合约。
·了解公钥加密、哈希的基本要素和数字签名。
·了解“钱包”如何保存用来操纵以太币和智能合约的数字私钥。
·使用JavaScript库和远程过程调用接口,以编程方式与以太坊客户端交互。
·了解安全实践、设计模式和反模式,了解现实世界的例子。
·创建代表资产、股份、投票权或访问控制权的代币。
·使用多个P2P组件构建去中心化应用程序。
作者简介
[希]安德烈亚斯·M. 安东波罗斯
Andreas M. Antonopoulos是备受好评的畅销书作家、演讲家和教育家,也是世界上最重要的比特币和开放式区块链专家之一。Andreas善于化繁为简,让普通人理解深奥的技术话题。
[英] 加文·伍德
Gavin Wood博士是以太坊的联合创始人和前首席技术官,也是Solidity面向合约编程语言的发明人。他还是Web3基金会的创始人兼总裁,也是Parity Technologies的创始人兼首席程序员。
目录信息
前言1
术语速查11
第1章 什么是以太坊?23
以太坊与比特币的比较23
区块链的组件24
以太坊的诞生25
以太坊的四个开发阶段26
以太坊:一个通用目的的区块链27
以太坊的组件28
以太坊和图灵完备29
从通用目的的区块链到DApp31
互联网的第三次浪潮32
以太坊的开发文化32
为什么要学习以太坊?33
这本书将会教你什么内容?33
第2章 以太坊基本概念34
以太币的货币单位34
选择以太坊钱包35
控制和责任36
MetaMask入门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
意外的以太币185
DELEGATECALL189
默认的可见性195
无序错觉197
外部合约引用199
短地址/参数攻击204
未检查的调用返回值206
竞争条件/预先交易208
拒绝服务211
区块时间戳操纵214
小心使用构造函数216
未初始化的存储指针217
浮点数和精度219
Tx.Origin验证222
合约程序库223
总结224
第10章 代币225
代币有哪些使用方式?225
代币和可替代性227
对手方风险227
代币和内在性227
使用代币:工具型代币还是权益型代币?228
以太坊的代币230
代币标准251
代币接口标准的扩展253
代币和ICO254
总结254
第11章 预言机255
为什么需要预言机?255
预言机的应用场景和示例256
预言机的设计模式257
数据认证259
计算性的预言机260
去中心化预言机262
Solidity中的预言机客户端接口262
总结266
第12章 去中心化应用267
什么是DApp?268
一个基本的DApp示例:拍卖DApp271
拍卖DApp的进一步去中心化276
使用Swarm进行数据存储277
以太坊名称服务280
从普通应用到去中心化应用291
总结292
第13章 以太坊虚拟机293
什么是EVM?293
图灵完备和gas308
gas308
总结311
第14章 共识312
基于工作量证明的共识机制313
基于权益证明的共识机制313
Ethash:以太坊的PoW算法314
Casper:以太坊的PoS算法315
共识的原则316
争议和竞争316
总结317
附录A 以太坊的分叉历史318
附录B 以太坊标准325
附录C EVM操作码和对应的gas开销332
附录D 开发工具、框架和类库339
附录E web3.js教程359
· · · · · · (收起)
读后感
Andreas Antonopoulos 的上本书《Mastering Bitcoin》相当好。 这本书不是 Andreas 独自操刀,而是团队合作了,目前来看仍然保留了 Mastering Bitcoin 的风格,在 https://github.com/ethereumbook/ethereumbook 能看到最新进展,期待尽早完工!
Andreas Antonopoulos 的上本书《Mastering Bitcoin》相当好。 这本书不是 Andreas 独自操刀,而是团队合作了,目前来看仍然保留了 Mastering Bitcoin 的风格,在 https://github.com/ethereumbook/ethereumbook 能看到最新进展,期待尽早完工!
Andreas Antonopoulos 的上本书《Mastering Bitcoin》相当好。 这本书不是 Andreas 独自操刀,而是团队合作了,目前来看仍然保留了 Mastering Bitcoin 的风格,在 https://github.com/ethereumbook/ethereumbook 能看到最新进展,期待尽早完工!
Andreas Antonopoulos 的上本书《Mastering Bitcoin》相当好。 这本书不是 Andreas 独自操刀,而是团队合作了,目前来看仍然保留了 Mastering Bitcoin 的风格,在 https://github.com/ethereumbook/ethereumbook 能看到最新进展,期待尽早完工!
Andreas Antonopoulos 的上本书《Mastering Bitcoin》相当好。 这本书不是 Andreas 独自操刀,而是团队合作了,目前来看仍然保留了 Mastering Bitcoin 的风格,在 https://github.com/ethereumbook/ethereumbook 能看到最新进展,期待尽早完工!
用户评价
这本书的结构设计堪称教科书级别,完全没有那种东拉西扯、信息碎片化的感觉。它似乎是按照一个标准的“开发者训练营”的课程大纲来编排的。前几章打好了坚实的底层基础,让你彻底理解为什么以太坊需要智能合约。然后,它非常巧妙地引入了Truffle、Ganache这些开发工具套件,让读者可以立刻搭建起本地的测试环境,这对于快速验证想法至关重要。最让我感到物超所值的是,书中并没有止步于基础的ERC-20代币开发,而是进一步讲解了更复杂的概念,比如去中心化自治组织(DAO)的架构思路,以及如何利用智能合约实现复杂的逻辑流程。我个人尤其欣赏作者对不同开发范式(如函数式编程思想在Solidity中的应用)的探讨,这让这本书的受众群体不仅限于初学者,即便是已经接触过一些区块链开发的同行也能从中找到新的启发点和优化思路。它提供了一种系统性的思维框架,指导读者如何像一个专业的以太坊开发者那样去思考问题,而不是仅仅停留在复制粘贴代码的层面。
这本书的叙事风格充满了对未来的乐观,但又立足于当前技术的成熟度,这种务实的态度非常令人信服。它不仅仅是一本技术手册,更像是一份进入Web3时代的“通行证”。书中对以太坊生态中的治理模型、Layer 2 解决方案(如Rollups)的发展趋势也有着前瞻性的介绍,虽然这些部分不是代码实操的重点,但它们为读者提供了必要的宏观视野,理解我们正在构建的技术在整个Web3图景中扮演的角色。我尤其欣赏作者在探讨部署和实际运营环节时所展现的细致入微。例如,如何选择合适的网络(主网、测试网、私有链),如何管理私钥安全,以及部署后如何进行版本升级——这些都是新手在实际操作中极易忽略却又致命的关键点。这本书提供的不仅是一套工具的使用方法,更是一种成熟的开发理念和风险意识,让你在拥抱创新的同时,能保持一份清醒和谨慎,这是任何一个严肃的区块链从业者都必须具备的素养。
这本书简直是为那些对区块链技术充满好奇,又苦于找不到清晰入门路径的人量身定做的!我最近才开始深入研究以太坊的生态系统,说实话,刚接触的时候感觉像是在迷雾中摸索,各种术语和复杂概念简直让人望而却步。但自从翻开这本书,我的感觉就完全变了。作者的叙述方式非常平易近人,即使是像我这样对底层代码只有初步了解的人,也能很快跟上节奏。它没有上来就抛出晦涩难懂的专业术语,而是循序渐进地构建知识体系,从最基础的比特币和区块链原理讲起,然后自然而然地过渡到以太坊的独特机制,比如EVM(以太坊虚拟机)和Gas费用的概念。最让我印象深刻的是,书中对智能合约的解释部分,它不是干巴巴地罗列语法,而是通过大量贴近实际场景的案例,比如如何构建一个简单的代币或者一个去中心化的投票系统,让你真切地感受到代码是如何转化为实际应用的。这种“做中学”的教学方法,极大地降低了学习曲线,让我不再对那些复杂的去中心化应用(DApp)开发感到畏惧。可以说,这本书成功地架起了一座从理论到实践的坚实桥梁,让我想深入探索这个激动人心领域的决心更加坚定了。
说实话,在接触这本书之前,我对“去中心化”的理解还停留在比较理想化的层面,总觉得实现一个真正去中心化的系统非常遥远和困难。但读完这本书后,我对DApp的构成要素有了极其具象化的认识。作者非常详尽地描述了前端界面(通常是React或Vue构建)、后端API层(如果需要的话,以及如何避免过度中心化)以及核心的智能合约层之间的协作关系。书中对测试驱动开发(TDD)在智能合约编写中的应用进行了专门的章节阐述,这对于习惯了传统软件开发流程的我来说,提供了一个完美的过渡视角。它强调了在区块链环境中,测试的重要性远超传统Web应用,因为一旦部署,修改成本极高。这种对工程实践的强调,体现了作者深厚的行业经验。每一章末尾的“实践挑战”环节,都是一个很好的自我检验机会,让我能够立即动手巩固所学的知识点,而不是学完就忘。这本书让我明白了,开发一个健壮的去中心化应用,需要的不仅仅是代码能力,更是一种对环境限制和安全边界的深刻理解。
我必须说,这本书在技术深度上做到了一个非常精妙的平衡。很多市面上介绍区块链的书籍,要么过于偏重概念炒作,泛泛而谈,要么就是堆砌大量代码片段,让人读起来枯燥乏味,难以消化。然而,这本书的作者显然是一位经验丰富的实干家。它在讲解Solidity语言特性时,不仅涵盖了基础的变量和函数,更深入探讨了诸如继承、事件、修饰器等进阶主题,并且非常负责任地指出了在实际编写合约时需要规避的陷阱,比如重入攻击(Reentrancy Attack)的原理和防御措施。这种对安全性的重视,对于任何想要在去中心化金融(DeFi)领域有所建树的人来说,是至关重要的知识点。我特别喜欢它对Web3.js和Ethers.js这些前端交互库的介绍部分,它清晰地展示了如何将用户界面与部署在链上的智能合约连接起来,真正实现了“去中心化应用”的闭环。阅读过程中,我感觉自己就像是跟着一位资深的工程师在一步步搭建属于自己的DApp骨架,每完成一个小节的学习,都有种掌控感油然而生,远非那些只停留在理论层面的书籍可比。
实现层面的了解
介绍了整个以太坊生态圈, 离Mastering很远, 第一本入门书
读的有点拖沓,好在完成了。正本清源,在当下万链齐发,共识算法竞争激烈的时分,这是一个很好的对过去区块链历史发展的综述,其中以太坊智能合约的安全一章占了50页,非常好的概述了智能合约目前遇到的问题,对现在开发和进一步发展有极大的助易。以太坊很快就要进入Casper阶段,是能和后起之辈EOS,Polkadot竞争,还是逐渐像比特币那样成为阶段发展的象征是我们应该注目的。本书对了解以太坊的方方面面是绝佳的参考书。
介绍了整个以太坊生态圈, 离Mastering很远, 第一本入门书
应用层角度介绍以太坊,内容偏基础,要了解底层还得读黄皮书和源代码