失效链接处理 |
以太坊智能合U开发实?PDF 下蝲
本站整理下蝲Q?/strong>
版权归出版社和原作者所有,链接已删除,误买正?/b>
用户下蝲说明Q?/strong>
?sh)子版仅供预览,下蝲?4时内务必删除,支持正版Q喜Ƣ的误买正版书c:(x)
http://product.dangdang.com/27857154.html
相关截图Q?br />
![]() 资料介:(x) 《以太坊合约开发实战》从区块铄概念、原理、核心技术和应用四个斚wQ系l地介绍了以太坊区块铑ּ发的相关知识。其中,重点介绍了以太坊的相x念和原理、以太坊客户端Geth、以太坊常用合约开发工兗Solidity语言和智能合U开发等内容Qƈ介绍了众{合U和代币合约两个目实战案例Q可以让读者对合约开发的整体程有一个全面的了解。另外,书中l合CZ对web3.js的相关知识也做了详细介绍Q以帮助读者更好地理解和利用以太坊的相x据?/strong> 《以太坊合约开发实战》共17章,分ؓ(f)4,늛的主要内Ҏ(gu)区块铄概念、原理与底层技术;以太坊的相关概念与原理;以太坊相兛_议;以太坊客L(fng)GethQ以太坊合约的其他常用工具与客户端;Solidity语言的基本概念与数据cdQ用Solidityq行以太坊智能合U开发;通过web3.js与以太坊区块链数据进行交互;众筹合约与代币智能合U项目实战案例?/strong> 《以太坊合约开发实战》内容丰富,讲解通俗易懂Q案例典型,实用性强Q特别适合区块链技术爱好者和合约开发的相关从业人员阅读Q也适合区块铑ֺ层研Ih员阅诅R另外,《以太坊合约开发实战》还适合区块铑֟训机构作为相兌E的培训教材?/strong> 资料目录Q?/strong>
W?? 基础理论与原?/strong>
W?? 与区块链的次亲密接触 2
1.1 什么是区块?2
1.1.1 区块铄?2
1.1.2 区块铄铑ּl构 3
1.1.3 区块链上的区块常见数?4
1.2 工作量证明机ӞPoWQ?6
1.2.1 区块N遇的问题 6
1.2.2 PoW模型 8
1.2.3 PoWZ么能防止改 9
1.3 权益证明机制QPoSQ?11
1.3.1 什么是PoS 12
1.3.2 PoS的优势与劣势 12
1.4 委托权益证明QDPoSQ?12
1.5 权威证明QPoAQ?13
1.6 区块铄应用 13
1.7 本章结 13
W?? M心化应用——DApp 15
2.1 DApp?15
2.1.1 什么是DApp 15
2.1.2 DApp|络l徏q程 16
2.1.3 DApp的优?16
2.1.4 DApp存在的问?16
2.2 中心化与M心化 17
2.2.1 w䆾验证 17
2.2.2 通信 17
2.2.3 数据交互 17
2.2.4 pȝl护 18
2.3 DApp|络与通信 18
2.3.1 P2P|络与WWW 19
2.3.2 P2P|络拓扑l构cd 20
2.3.3 结 21
2.4 DApp货币与中心化数据交互 22
2.4.1 DApp货币 22
2.4.2 中心化应用获取去中心化数?22
2.4.3 M心化应用获取中心化数?22
2.5 常见的DApp 23
2.5.1 比特?23
2.5.2 以太?23
2.5.3 IPFS存储pȝ 23
W?? 比特币那些事 25
3.1 比特币简?25
3.1.1 比特币公钥与U钥 25
3.1.2 数字{ 26
3.2 椭圆曲线法 26
3.2.1 ?26
3.2.2 椭圆曲线法定义 28
3.2.3 椭圆曲线几何q算 29
3.2.4 椭圆曲线法的代码实?30
3.2.5 椭圆曲线加密与签名原?37
3.3 比特币私钥、公钥与地址 39
3.3.1 从私钥到地址 39
3.3.2 公钥压羃 40
3.3.3 U钥格式 41
3.3.4 U钥与安?41
3.4 比特币交?44
3.4.1 交易?44
3.4.2 交易输出 44
3.4.3 交易输入 44
3.4.4 交易?45
3.4.5 付款臛_钥哈希(P2PKHQ?45
3.4.6 多重{与P2SH 46
3.5 比特币钱?46
3.5.1 钱包?46
3.5.2 生成助记?47
3.5.3 从助记词生成U子 48
3.5.4 从种子生成HD钱包 48
3.5.5 HD钱包密钥路径 50
3.6 比特币相兌?51
W?? 以太?52
4.1 以太坊简?52
4.1.1 什么是以太?52
4.1.2 以太坊虚拟机QEVMQ?53
4.1.3 以太坊智能合U与高语言 53
4.1.4 以太币单?54
4.1.5 以太坊发行版本与提案 54
4.2 以太坊̎?55
4.2.1 外部账户 55
4.2.2 合约账户 56
4.2.3 外部账户与合U̎L(fng)异同 56
4.3 以太坊交?57
4.3.1 gas、gasPrice与gasLimit 57
4.3.2 gasUsed与交易花?58
4.3.3 什么是以太坊交易与消息 58
4.4 以太坊网l?59
4.4.1 以太坊网l简?59
4.4.2 以太坊与Kademlia 59
4.4.3 以太坊客L(fng) 61
4.5 挖矿 62
4.5.1 什么是挖矿 62
4.5.2 挖矿奖励 62
4.5.3 以太坊区?63
4.6 GHOST协议 64
4.6.1 区块旉 64
4.6.2 区块分叉 65
4.6.3 普通分叉带来的问题 66
4.6.4 GHOST协议的具体内?67
4.7 Ethash法之DAG 68
4.7.1 什么是DAG 68
4.7.2 DAG生成q程 69
4.7.3 Z么要使用DAG 69
4.8 Ethash法 70
4.8.1 Ethash法?70
4.8.2 Ethash法程 70
4.9 本章结 71
W?? 开发工?/strong>
W?? 合约开发常用工?74
5.1 Git?74
5.1.1 Git安装 74
5.1.2 Git常用命o 75
5.1.3 Git资源推荐 76
5.2 Node.js?76
5.2.1 什么是Node.js 76
5.2.2 Node.js安装 77
5.3 NPM?78
5.3.1 npm config命o 78
5.3.2 NPM与语义化版本 80
5.3.3 npm install命o 82
5.3.4 NPM镜像 83
5.3.5 NPM的其他常用命?84
5.4 webpack?85
5.4.1 认识webpack 85
5.4.2 webpack首秀 85
5.4.3 webpack 与webpack-dev-server 87
5.4.4 webpack常用功能与配|?90
5.4.5 webpackȝ 92
5.5 Postman?92
5.5.1 认识Postman 93
5.5.2 Postman的简单用?94
5.5.3 Postman脚本 95
5.6 LevelDB?96
5.6.1 认识LevelDB 96
5.6.2 LevelDB文g 97
5.6.3 SSTl构与数据查?99
W?? 以太坊私铄?mdash;—Ganache 102
6.1 Ganache?102
6.1.1 什么是Ganache 102
6.1.2 ganache-cli命o安装 103
6.1.3 Ganache囑Ş界面 104
6.2 Ganache常见命o参数 106
6.2.1 挖矿旉 106
6.2.2 L端口与网l?106
6.2.3 gas相关参数 106
6.2.4 其他参数 106
6.3 Ganache账户 107
6.3.1 能多l我炚w?107
6.3.2 能多l我几个账户?108
6.3.3 助记词相兛_?108
6.3.4 指定账户 108
6.3.5 锁定账户与解?109
6.4 Ganache与JavaScript 109
6.4.1 在工E中引用Ganache的Provider 109
6.4.2 在工E中启动Ganache的Server 110
6.4.3 配置工程中依赖的Ganache 111
6.5 Ganache交易相关RPCҎ(gu) 112
6.5.1 eth_sendTransactionҎ(gu) 113
6.5.2 eth_getTransactionCountҎ(gu) 115
6.5.3 eth_getTransactionReceiptҎ(gu) 116
6.5.4 eth_getTransactionByHashҎ(gu) 116
6.5.5 交易相关的其他方?117
6.6 Ganache账户相关RPCҎ(gu) 117
6.6.1 eth_accountsҎ(gu) 118
6.6.2 eth_getBalanceҎ(gu) 118
6.6.3 eth_coinbaseҎ(gu) 119
6.7 Ganache区块相关RPCҎ(gu) 119
6.7.1 eth_getBlockByHashҎ(gu) 119
6.7.2 eth_getBlockByNumberҎ(gu) 122
6.7.3 其他相关Ҏ(gu) 122
6.8 Ganache日志相关RPCҎ(gu) 123
6.8.1 eth_newFilterҎ(gu) 123
6.8.2 eth_getFilterLogsҎ(gu) 124
6.8.3 eth_getLogsҎ(gu) 125
6.8.4 其他兌Ҏ(gu) 126
6.9 Ganache的其他RPCҎ(gu) 127
6.9.1 web3_clientVersionҎ(gu) 127
6.9.2 net_versionҎ(gu) 127
6.9.3 eth_getCodeҎ(gu) 128
6.9.4 eth_signҎ(gu) 129
W?? 以太坊官方客L(fng)——Geth 130
7.1 Geth?130
7.1.1 Geth是什?130
7.1.2 Geth安装 130
7.1.3 Geth相关目录 132
7.1.4 Geth相关工具 134
7.2 Geth子命?134
7.2.1 Geth子命令概q?135
7.2.2 Geth子命令之account 136
7.2.3 Geth子命令之console与attach 137
7.2.4 Geth子命令之copydb与removedb 137
7.3 Geth启动参数 138
7.3.1 Geth数据同步模式 138
7.3.2 Geth|络相关参数 138
7.3.3 Geth以太坊相兛_?139
7.3.4 Geth RPC相关参数 140
7.3.5 Geth挖矿相关参数 141
7.3.6 Geth ethash法参数 142
7.3.7 Geth交易池配|?142
7.3.8 Geth日志参数 145
7.3.9 Geth的其他参?146
7.4 Geth启动实例 146
7.4.1 Geth启动单个节点 146
7.4.2 Geth启动多节点组|?148
7.5 Geth控制C理接口 149
7.5.1 admin模块 149
7.5.2 debug模块 150
7.5.3 miner模块 151
7.5.4 personal模块 152
7.5.5 txpool模块 153
7.6 keystore文g 153
7.6.1 keystore文g?153
7.6.2 从密钥到密钥文g 154
7.6.3 从密钥到密钥文g程验证 155
W?? 以太坊钱包与览?58
8.1 MetaMask插g 158
8.1.1 MetaMask?158
8.1.2 MetaMask安装 159
8.1.3 ơ用MetaMask 160
8.1.4 MetaMask的连接配|?161
8.1.5 MetaMask的其他配|?162
8.1.6 MetaMask账户理 163
8.1.7 MetaMask交易 164
8.1.8 结 165
8.2 Ethereum Wallet钱包 166
8.2.1 Ethereum Wallet?166
8.2.2 安装Ethereum Wallet与Mist 166
8.2.3 使用Ethereum Wallet 169
8.3 Mist与Ethereum Wallet 170
8.3.1 Ethereum Wallet与Mist的区?171
8.3.2 Mist的配|与使用 171
8.3.3 结 172
8.4 MyEtherWallet|页钱包 172
8.4.1 MyEtherWallet?173
8.4.2 MyEtherWallet合约交互 174
8.4.3 MyEtherWalletȝ交易 175
8.4.4 MyEtherWallet的其他功?177
W?? Solidity与智能合U开?/strong>
W?? Solidity初遇 180
9.1 Solidity?180
9.1.1 什么是Solidity 180
9.1.2 合约CZ 181
9.1.3 Solidity~译版本 182
9.2 Solidity~辑?182
9.2.1 Sublime~辑?182
9.2.2 Atom~辑?185
9.2.3 IDEA~辑?187
9.3 Remix~辑?188
9.3.1 Remix?188
9.3.2 Remix文g理 189
9.3.3 Remix~辑面板与控制台 190
9.3.4 Remix~译与运行面?191
9.3.5 Remix基本配置面板 193
9.3.6 Remix分析配置面板 194
9.4 Solidity常见概念 196
9.4.1 状态变?196
9.4.2 局部变?196
9.4.3 Solidity函数 197
9.4.4 q回多?197
9.4.5 构造函?198
9.4.6 异常 200
9.4.7 Solidity注释与文?201
9.5 Solidityq算W?203
9.5.1 Solidityq算W简?203
9.5.2 Solidityq算W注意事?204
9.6 Solidity控制l构 205
9.6.1 控制l构?205
9.6.2 判断语句 205
9.6.3 for循环 206
9.6.4 while与do…while循环 206
9.6.5 continue与break 207
9.6.6 三目q算W?208
9.7 可见性修饰符 209
9.7.1 public修饰W?209
9.7.2 internal修饰W?210
9.7.3 private修饰W?213
9.7.4 external修饰W?214
9.8 函数其他修饰W?216
9.8.1 constant修饰W?216
9.8.2 view修饰W?217
9.8.3 pure修饰W?217
W?0? Solidity数据cd 219
10.1 数据cd?219
10.1.1 值类?219
10.1.2 引用cd 220
10.1.3 结 221
10.2 Booleanscd 221
10.2.1 Booleanscd?221
10.2.2 Booleanscd支持的运符 221
10.3 Integerscd 223
10.3.1 Integerscd?223
10.3.2 Integerscd支持的运符 224
10.3.3 Integers整除问题 225
10.4 定点数类?226
10.4.1 定点数类型简?226
10.4.2 定点数类型支持的q算W?227
10.5 字面?227
10.5.1 字符串字面量 227
10.5.2 十六q制字面?229
10.5.3 有理数字面量 230
10.6 Enumcd 231
10.6.1 枚Dcd?231
10.6.2 枚Dcd实例 231
10.7 mappingcd 232
10.7.1 mappingcd?232
10.7.2 mappingcd实例 232
10.8 structcd 233
W?1? Solidity数据cdq阶 235
11.1 Solidity固定大小字节数组 235
11.1.1 固定大小字节数组cd 235
11.1.2 固定大小字节数组支持的运符 236
11.1.3 固定大小字节数组的成?236
11.1.4 固定大小字节数组与字W串 237
11.1.5 固定大小字节数组之间的{?240
11.1.6 结 241
11.2 Solidity动态大字节数l?242
11.2.1 动态大字节数l简?242
11.2.2 创徏动态大字节数l?242
11.2.3 动态大字节数l成?243
11.2.4 字节数组间的转换 245
11.2.5 结 247
11.3 Solidity数组 247
11.3.1 固定长度数组 248
11.3.2 动态长度数l?249
11.3.3 二维数组 250
11.3.4 结 251
11.4 以太坊地址cd 251
11.4.1 地址?252
11.4.2 transfer、send与balance 254
11.4.3 call、callcode与delegatecall 255
11.5 函数cd 257
11.5.1 函数cd?258
11.5.2 函数{ 258
11.5.3 函数cd实例 260
11.6 数据cd转换 262
11.6.1 隐式转换 262
11.6.2 昑ּ转换 263
11.6.3 var关键?264
11.7 deleteq算W?265
11.7.1 delete与常见类?265
11.7.2 delete与数l?266
11.7.3 delete与mapping 267
11.7.4 delete与struct 267
11.8 本章结 268
W?2? Solidity开发智能合U?270
12.1 合约?270
12.1.1 合约的概?270
12.1.2 EVMl构与数?271
12.1.3 合约执行 271
12.2 事g与日志简?272
12.2.1 事g?272
12.2.2 事g主题 272
12.2.3 事g与日?274
12.3 Solidity中的单位后缀 276
12.3.1 以太币单?276
12.3.2 旉单位 277
12.4 区块与交易属?279
12.4.1 区块的相兛_?279
12.4.2 消息的相兛_?281
12.4.3 交易的相兛_?282
12.5 错误处理函数 283
12.5.1 assert函数 283
12.5.2 require函数 283
12.5.3 revert函数 284
12.6 数学与Hash函数 285
12.6.1 数学q算函数 285
12.6.2 Hash函数 285
12.6.3 ecrecover函数 286
12.7 ABI~码与编码函?287
12.7.1 ABI~码?287
12.7.2 ABI~码数据cd 289
12.7.3 常见数据cdABI~码规则 290
12.7.4 复杂cdABI~码规则 292
12.7.5 ABI~码实例 295
12.8 Ҏ(gu)cd函数 296
12.8.1 回退函数 296
12.8.2 析构函数 297
12.8.3 函数重蝲 298
12.8.4 使用new创徏合约函数调用 299
W?3? Solidity开发智能合U进?303
13.1 Solidity数据位置 303
13.1.1 什么是数据位置 303
13.1.2 memory?304
13.1.3 storage?304
13.1.4 calldata?307
13.1.5 结 308
13.2 数据位置与赋?308
13.2.1 状态变量赋值给局部storage变量 308
13.2.2 状态变量赋值给memory局部变?310
13.2.3 局部memory变量赋值给状态变?310
13.2.4 状态变量赋值状态变?311
13.2.5 局部memory变量赋值给局部memory变量 312
13.2.6 局部storage变量赋值给局部storage变量 313
13.2.7 局部storage变量赋值给局部memory变量 314
13.2.8 局部storage变量赋值给状态变?315
13.2.9 结 316
13.3 函数修改?317
13.3.1 函数修改器简单实?317
13.3.2 函数修改器复杂实?319
13.3.3 结 321
13.4 合约l承 324
13.4.1 l承?324
13.4.2 super关键?327
13.4.3 抽象合约 328
13.4.4 接口合约 328
13.5 Solidity?329
13.5.1 Solidity库简?329
13.5.2 Solidity库应用实?329
13.5.3 Solidity导入源文?330
13.5.4 using for语句 331
13.6 Solidity~译 333
13.6.1 solc?333
13.6.2 solc~译合约 336
13.6.3 solc导入与库 338
13.6.4 solc.js?340
13.6.5 使用solc.js在项目中~译单个合约 340
13.6.6 使用solc.js在项目中~译多个合约 342
13.7 Solidity~码风格 344
13.7.1 命名风格 344
13.7.2 控制l构 344
13.7.3 函数相关风格 345
13.7.4 其他部分 346
W?4? 通过web3.js与以太坊客户端进行交?347
14.1 web3.js?347
14.1.1 web3.js概念 347
14.1.2 web3.js原理 348
14.1.3 web3.js模块 348
14.2 web3.js与以太坊节点 348
14.2.1 HTTP方式 348
14.2.2 IPC方式 349
14.2.3 WebSocket方式 350
14.3 web3.js工具的相x?350
14.3.1 以太币单位{换方?351
14.3.2 十六q制、数字与字符串{?351
14.3.3 填充字符与getStorageAt 352
14.4 web3.js账户的相x?354
14.4.1 获取账户与̎户余?354
14.4.2 创徏账户 355
14.4.3 解锁账户 356
14.4.4 账户的其他相x?356
14.5 web3.js的ABI~码Ҏ(gu) 357
14.5.1 函数{与事件签?357
14.5.2 函数单参数编码与解码 359
14.5.3 函数多参数编码与解码 360
14.5.4 ~码函数调用 360
14.5.5 解码日志 361
14.6 web3.js合约的相x?362
14.6.1 创徏与克隆合U?362
14.6.2 合约部vdeploy 363
14.6.3 send函数与call函数 369
14.6.4 estimateGas函数与encodeABI函数 370
14.6.5 合约Ҏ(gu)的调?370
14.6.6 合约事g的处?375
14.7 web3.js交易的相x?380
14.7.1 {?380
14.7.2 {与交?381
14.7.3 发送交?384
14.7.4 {交易与发送签名交?386
14.7.5 获取交易的相x?387
14.8 web3.js和IBAN的相x?388
14.8.1 IBAN?389
14.8.2 BBAN、IBAN与地址 390
14.8.3 IBAN的其他方?390
14.9 web3.js的其他方?391
14.9.1 订阅事g 391
14.9.2 |络及ENS的相x?392
14.9.3 与Swarm和W(xu)hisper交互的方?392
14.10 与Ethereum相关的JavaScript?393
14.10.1 BigNumber.js?393
14.10.2 ethjs-abi?395
14.10.3 其他Ethereum?399
W?? 目案例实战
W?5? 工程化项目开发利?mdash;—Truffle 402
15.1 Truffle?402
15.1.1 Truffle的主要功?402
15.1.2 Truffle的安装及其相兛_?403
15.2 Truffle创徏目 404
15.2.1 init命o 405
15.2.2 unbox命o 406
15.3 通过Truffle~译目 408
15.3.1 前置条g与编?408
15.3.2 Truffle~译输出 409
15.3.3 Truffle~译依赖 410
15.4 Truffle配置文g 411
15.4.1 |络配置 411
15.4.2 输出目录配置 412
15.4.3 试配置 413
15.4.4 ~译配置 413
15.4.5 包管理相关配|?414
15.5 Truffle单元试与部|?415
15.5.1 使用JavaScript试 415
15.5.2 JavaScript试交易 417
15.5.3 使用Solidity试 419
15.5.4 合约部v 419
15.6 Truffle的其他命?420
15.6.1 create命o 420
15.6.2 包管理相兛_?421
15.6.3 其他命o 421
W?6? 目程与众{实战案?423
16.1 合约部分 423
16.1.1 目?423
16.1.2 初始化与合约目录 424
16.1.3 部v与测试脚本目?424
16.2 众筹合约 425
16.2.1 Owned合约 425
16.2.2 SafeMath合约 426
16.2.3 Crowd合约 427
16.3 合约的部|与使用 429
16.3.1 本地部v与测试环境搭?429
16.3.2 本地部v与测试网l配|?429
16.3.3 本地部v 430
16.3.4 本地试 430
16.3.5 Ropsten|络试部v 431
16.4 目的Web部分 432
16.4.1 初始化Web目 432
16.4.2 webpack配置 432
16.4.3 package.json配置 433
16.4.4 q行W(xu)eb目 434
W?7? 以太坊代币标准与ERC20代币案例 437
17.1 代币?437
17.1.1 ERC20?437
17.1.2 ERC223?438
17.1.3 ERC721?438
17.2 ERC20标准接口?438
17.2.1 基本信息 439
17.2.2 总额与余?439
17.2.3 转̎与授?439
17.2.4 事g 440
17.3 ERC20代币实例 440
17.3.1 查看以太坊上已有的Token 440
17.3.2 创徏Token 441
17.3.3 查看和{UToken 443
17.4 扩展ERC20标准代币 448
17.4.1 销毁代?448
17.4.2 dToken 449
17.4.3 ȝ与解冻̎?449
17.4.4 买卖Token 450
17.4.5 结 451
17.5 ERC20代币扩展实例 451
17.5.1 初始化项?451
17.5.2 d三方库合U?452
17.5.3 代币合约的逻辑实现 460
17.5.4 代币合约的部|?465
|