《精通以太坊:开发智能合约和去中心化应用》简介:
为什么IBM、微软、纳斯达克以及其他数百个组织都在尝试以太坊?这本必不可少的指南向你展示了成为这个不断发展和令人兴奋的新兴行业的创新者所需的技能:
·运行以太坊客户端,创建和传输交易,编写智能合约。
·了解公钥加密、哈希的基本要素和数字签名。
·了解“钱包”如何保存用来操纵以太币和智能合约的数字私钥。
·使用JavaScript库和远程过程调用接口,以编程方式与以太坊客户端交互。
·了解安全实践、设计模式和反模式,了解现实世界的例子。
·创建代表资产、股份、投票权或访问控制权的代币。
·使用多个P2P组件构建去中心化应用程序。
《精通以太坊:开发智能合约和去中心化应用》目录:
目录
前言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
· · · · · ·