[套装书]精通区块链编程:加密货币原理、方法和应用开发(原书第2版)+精通以太坊:开发智能合约和去中心化应用(2册)

作者
[希]安德烈亚斯·M.安东波罗斯(Andreas M. Antonopoulos)[希]安德烈亚斯·M. 安东波罗斯(Andreas M. Antonopoulos) [英] 加文·伍德(Gavin Wood)
丛书名
O’Reilly精品图书系列
出版社
机械工业出版社
ISBN
9781910301427
简要
简介
内容简介书籍计算机书籍 ---------------------------精通区块链编程:加密货币原理、方法和应用开发(原书第2版)--------------------------- 区块链的热度无须赘言。该书从基础技术层面解读开放区块链编程技术在金融领域的应用原理、实践及趋势。本书主要面向程序员,书中详细介绍了加密货币的原理、使用方法,以及如何开发与之相关的软件。对希望理解比特币及加密货币内在工作机制的非程序员读者们,本书前几章还深入介绍了比特币概念及其原理。 ---------------------------精通以太坊:开发智能合约和去中心化应用--------------------------- 以太坊打开了通向去中心化计算的大门,这个平台使你能够运行去中心化的应用程序(DApps)和智能合约,这些应用程序没有中心故障点或控制点,与支付网络集成,并在开放的区块链上运行。通过这本实用指南,Andreas M. Antonopoulos 和 Gavin Wood 向读者提供了在以太坊和其他基于虚拟机的区块链上构建智能合约和 DApps 所需的一切信息。 本书既可以作为一本技术参考手册,也可供读者全面地了解以太坊。前两章主要是一个入门级的介绍,适合新手用户,这些章节中的示例可以由具有一定技术技能的读者完成。这两章将使你对以太坊基础知识有一个很好的掌握,并教会你使用以太坊的基本工具。第三章及以后的内容主要面向程序员,包括许多技术主题和编程示例。
目录



---------------------------精通区块链编程:加密货币原理、方法和应用开发(原书第2版)---------------------------


前言1
第1章 比特币介绍9
1.1 比特币是什么9
1.2 比特币历史11
1.3 比特币的使用、用户及用户场景12
1.4 入门13
1.4.1 选择比特币钱包13
1.4.2 快速入门15
1.4.3 获取比特币17
1.4.4 查询比特币当前价格18
1.4.5 发送和接收比特币18
第2章 比特币的工作原理21
2.1 交易、区块、挖矿和区块链21
2.1.1 比特币概述21
2.1.2 购买一杯咖啡22
2.2 比特币交易24
2.2.1 交易输入和输出24
2.2.2 交易链25
2.2.3 找零25
2.2.4 常见的交易形式26
2.3 交易的构建27
2.3.1 获取正确的输入27
2.3.2 创建交易输出29
2.3.3 将交易加入账簿30
2.4 比特币挖矿31
2.5 在区块中挖掘交易32
2.6 消费交易33
第3章 比特币核心客户端:参考实现35
3.1 比特币开发环境36
3.2 从源码编译比特币核心36
3.2.1 选择比特币核心版本37
3.2.2 配置比特币核心生成38
3.2.3 生成比特币核心可执行文件40
3.3 运行比特币核心节点41
3.3.1 首次运行比特币核心42
3.3.2 配置比特币核心节点43
3.4 比特币核心客户端应用程序编程接口(API)46
3.4.1 获得比特币核心客户端状态信息47
3.4.2 探究和解码交易48
3.4.3 探究区块50
3.4.4 使用比特币核心的编程接口51
3.5 其他替代客户端、库和工具包54
3.5.1 C/C++类54
3.5.2 JavaScript类54
3.5.3 Java类54
3.5.4 Python类54
3.5.5 Ruby类55
3.5.6 Go类55
3.5.7 Rust类55
3.5.8 C#类55
3.5.9 Objective-C类55
第4章 密钥和地址56
4.1 简介56
4.1.1 公钥密码学和加密货币57
4.1.2 私钥和公钥58
4.1.3 私钥58
4.1.4 公钥60
4.1.5 椭圆曲线密码学60
4.1.6 创建公钥63
4.2 比特币地址64
4.2.1 Base58和Base58Check编码66
4.2.2 密钥的格式69
4.3 用Python实现密钥和比特币地址74
4.4 高级密钥和地址78
4.4.1 加密私钥(BIP-38)78
4.4.2 P2SH和多重签名地址79
4.4.3 靓号地址80
4.4.4 纸钱包85
第5章 钱包88
5.1 钱包技术概述88
5.1.1 非确定性(随机)钱包89
5.1.2 确定性(种子)钱包90
5.1.3 分层确定性钱包(BIP-32/BIP-44)90
5.1.4 种子和助记词(BIP-39)91
5.1.5 钱包最佳实践91
5.1.6 使用比特币钱包92
5.2 钱包技术细节93
5.2.1 助记词编码标准(BIP-39)93
5.2.2 从种子中创造HD钱包99
5.2.3在网店中使用扩展公钥103
第6章 交易108
6.1 简介108
6.2 交易细节108
6.3 交易的输出和输入110
6.3.1 交易输出111
6.3.2 交易输入113
6.3.3 交易费117
6.3.4 把交易费加到交易中118
6.4 交易脚本和脚本语言120
6.4.1 非图灵完备性121
6.4.2 无状态验证121
6.4.3 脚本构建(锁定与解锁)121
6.4.4 P2PKH124
6.5 数字签名(ECDSA)126
6.5.1 数字签名如何工作127
6.5.2 验证签名128
6.5.3 签名散列类型(SIGHASH)129
6.5.4 ECDSA数学131
6.5.5 随机性在签名中的重要性132
6.6 比特币地址、余额和其他摘要133
第7章 高级交易及脚本136
7.1 简介136
7.2多重签名136
7.3 P2SH138
7.3.1 P2SH地址140
7.3.2 P2SH的优点140
7.3.3赎回脚本和标准确认141
7.4 数据记录输出(RETURN操作符)141
7.5时间锁143
7.5.1交易锁定时间143
7.5.2检查锁定时间验证144
7.5.3相对时间锁146
7.5.4 带nSequence的相对时间锁146
7.5.5 带CSV的相对时间锁147
7.5.6 过去中位时间148
7.5.7针对费用狙击的时间锁149
7.6 具有条件控制的脚本(条件语句)149
7.6.1带有VERIFY操作码的条件语句150
7.6.2 在脚本中使用流控制151
7.7复杂的脚本示例153
第8章 比特币网络155
8.1 点对点网络架构155
8.2 节点类型和角色156
8.3 扩展比特币网络158
8.4 比特币中继网络158
8.5 网络发现160
8.6 全节点163
8.7 交换“库存清单”164
8.8 简易支付验证(SPV)节点165
8.9 Bloom过滤器168
8.10 SPV节点如何使用Bloom过滤器171
8.11 SPV节点和隐私172
8.12 加密与认证连接173
8.12.1 Tor传输173
8.12.2 P2P认证和加密174
8.13 交易池174
第9章 区块链176
9.1 简介176
9.2 区块结构177
9.3 区块头177
9.4 区块标识符:区块头散列值和区块高度178
9.5创世区块179
9.6 链接区块链中的区块180
9.7 默克尔树182
9.8 默克尔树和简单支付验证186
9.9 比特币的测试链187
9.9.1 testnet—比特币的试验场187
9.9.2 segnet—隔离见证测试网189
9.9.3 regtest—本地区块链189
9.10 使用测试区块链进行开发190
第10章 挖矿和共识191
10.1 简介191
10.2 去中心化共识194
10.3 交易的独立校验195
10.4 挖矿节点196
10.5 打包交易至区块197
10.5.1 创币交易198
10.5.2 创币奖励与矿工费199
10.5.3 创币交易的结构201
10.5.4 创币交易数据202
10.6 构造区块头203
10.7 挖掘区块205
10.7.1 工作量证明算法205
10.7.2 难度目标值表示210
10.7.3 重定目标实现调整难度211
10.8 成功挖出区块213
10.9 验证新区块214
10.10 区块链的组装与选择214
10.11 挖矿和算力竞争221
10.11.1 随机数升位方案223
10.11.2 矿池223
10.12 共识攻击226
10.13 改变共识规则229
10.13.1 硬分叉229
10.13.2 硬分叉:软件、网络、挖矿和链230
10.13.3 分离矿工和难度231
10.13.4 有争议的硬分叉232
10.13.5 软分叉232
10.13.6 对软分叉的批评234
10.14 使用区块版本发出软分叉信令234
10.14.1 BIP-34信令和激活234
10.14.2 BIP-9信令和激活235
10.15 共识软件开发237
第11章 比特币的安全239
11.1 安全原则239
11.1.2 安全地开发比特币系统240
11.1.3 信任根241
11.2 用户安全最佳实践241
11.2.1 比特币物理存储242
11.2.2 硬件钱包242
11.2.3 平衡风险243
11.2.4 分散风险243
11.2.5 多重签名和治理243
11.2.6 生存能力243
11.3 结论244
第12章 比特币应用245
12.1 简介245
12.2 基础模块(要素)245
12.3 源于基础模块的应用247
12.4 染色币248
12.4.1 使用染色币249
12.4.2 发行染色币249
12.4.3 染色币交易249
12.5 合约币252
12.6 支付通道和状态通道253
12.6.1 状态通道基本概念和术语254
12.6.2 简单支付通道示例254
12.6.3 制造无须信任的通道257
12.6.4 非对称可撤销承诺260
12.6.5 散列时间锁合约263
12.7 路由支付通道(闪电网络)264
12.7.1 闪电网络示例264
12.7.2 闪电网络传输和路由267
12.7.3 闪电网络优势269
12.8 结论270
附录A 比特币白皮书271
附录B 交易脚本语言操作符、常量和符号282
附录C 比特币改进建议287
附录D 隔离见证296
附录E Bitcore308
附录F pycoin库、实用秘钥及交易程序311
附录G 比特币浏览器命令320



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


前言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
什么是DApp268
一个基本的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




有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4