注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计区块链编程

区块链编程

区块链编程

定 价:¥98.00

作 者: [美] 比娜·拉马穆尔蒂(Bina Ramamurthy) 著,史跃东 译
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302664819 出版时间: 2024-06-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

  ● 区块链与其他分布式系统的比较● Solidity开发● 身份、隐私和安全● 链上、链下数据及操作

作者简介

  Bina Ramamurthy 拥有长达三十年的丰富教学经验,授课内容涵盖分布式系统、数据科学、点对点网络和区块链等领域。

图书目录

第Ⅰ部分  区块链编程入门
第1章  区块链基础知识 3
1.1  从比特币到区块链 4
1.2  什么是区块链 5
1.3  区块链编程 7
1.3.1  去中心化基础设施 7
1.3.2  分布式账本技术 10
1.3.3  去中介化协议 12
1.3.4  信任推动者 13
1.4  激励场景 14
1.4.1  自动化与一致性数据收集 14
1.4.2  及时共享信息 15
1.4.3  可验证的合规性 15
1.4.4  可审计的行为出处 15
1.4.5  治理指南 16
1.4.6  行为的归属 16
1.4.7  大型流行病管理 16
1.5  回顾 17
1.6  本章小结 17
第2章  智能合约 19
2.1  智能合约的概念 20
2.1.1  比特币交易与智能合约交易 20
2.1.2  智能合约的功能 21
2.2  智能合约的设计 21
2.2.1  计数器用例图 22
2.2.2  数据资产、对等参与者、角色、
规则和交易 23
2.2.3  从类图到合约图 24
2.3  开发智能合约代码 25
2.3.1  Solidity语言 25
2.3.2  计数器的智能合约代码 26
2.4  部署和测试智能合约 27
2.4.1  Remix IDE 27
2.4.2  部署和测试 29
2.4.3  关键点 30
2.5  什么让区块链合约更智能 30
2.6  去中心化的航空系统用例 32
2.6.1  ASK的定义 32
2.6.2  操作顺序 33
2.7  航空公司智能合约 35
2.7.1  对等参与者、数据资产、角色、
规则和交易 36
2.7.2  航空公司智能合约代码 37
2.7.3  ASK智能合约部署及测试 39
2.8  智能合约设计的重要性 43
2.9  最佳实践 44
2.10  本章小结 44
第3章  信任与完整性技术 47
3.1  信任和完整性的要素 48
3.1.1  信任 48
3.1.2  完整性 49
3.2  数字民主问题 50
3.2.1  设计解决方案 50
3.2.2  用例图 50
3.2.3  渐进式代码开发 51
3.2.4  用户、资产和交易 52
3.2.5  有限状态机图 53
3.2.6  信任中介 56
3.2.7  修饰符的定义及使用 56
3.2.8  包含修饰符的合约图 57
3.2.9  汇总代码 58
3.3  测试 60
3.3.1  正面测试 62
3.3.2  负面测试 62
3.4  使用修饰符、require()和revert() 63
3.5  assert()声明 64
3.6  最佳实践 66
3.7  回顾 66
3.8  本章小结 67
第4章  从智能合约到Dapp 69
4.1  使用Truffle开发Dapp 71
4.1.1  开发过程 71
4.1.2  安装Truffle 71
4.1.3  构建Dapp栈 73
4.2  安装Ganache测试链 73
4.3  开发智能合约 74
4.3.1  创建项目文件夹 76
4.3.2  添加智能合约并编译 77
4.3.3  配置区块链网络 78
4.3.4  部署智能合约 78
4.4  开发并配置网络应用 79
4.4.1  开发ballot-app 80
4.4.2  启动ballot-app 82
4.4.3  安装MetaMask钱包 83
4.4.4  与Ballot-Dapp交互 85
4.4.5  将网络客户端连接到智能合约 86
4.5  回顾 88
4.6  最佳实践 88
4.7  本章小结 89
第Ⅱ部分  端到端的Dapp开发技术
第5章  安全与隐私 93
5.1  密码学基础 94
5.1.1  对称密钥加密 95
5.1.2  非对称密钥加密 95
5.2  公钥密码学与区块链的相关性 96
5.2.1  生成以太坊地址 96
5.2.2  交易签名 97
5.2.3  在Ropsten上部署智能合约 97
5.2.4  以助记符的形式使用私钥 98
5.2.5  填充区块链钱包 98
5.2.6  在Ropsten上进行部署和交易 99
5.3  哈希基础知识 101
5.3.1  文档的数字签名 102
5.3.2  分布式账本中的哈希数据 102
5.3.3  以太坊区块头中的哈希值 102
5.3.4  Solidity哈希函数 103
5.4  哈希的应用 104
5.4.1  盲拍设计 104
5.4.2  盲拍智能合约 105
5.4.3  隐私及安全方面 106
5.4.4  测试BlindAuction合约 108
5.4.5  测试计划 109
5.5  回顾 111
5.6  最佳实践 111
5.7  本章小结 111
第6章  链上和链下数据 113
6.1  链上数据 115
6.2  盲拍用例 116
6.2.1  链上事件数据 116
6.2.2  带有事件的盲拍 117
6.2.3  使用Web用户界面进行测试 121
6.2.4  使用web3 API访问链上数据 125
6.3  链下数据:外部数据源 126
6.4  ASK航空公司系统 128
6.4.1  ASK概念 128
6.4.2  Airlines智能合约 130
6.4.3  ASK链上数据 133
6.4.4  ASK链下数据 133
6.4.5  ASK Dapp的开发流程 133
6.4.6  ASK Web用户界面 134
6.4.7  合并 135
6.4.8  使用ASK Dapp进行交互 136
6.5  回顾 138
6.6  最佳实践 139
6.7  本章小结 139
第7章  web3和通道Dapp 141
7.1  web3 API 142
7.1.1  Dapp栈中的web3 142
7.1.2  web3包 143
7.2  通道(channel)的概念 144
7.3  微支付通道 145
7.4  微支付通道用例 145
7.4.1  传统的银行解决方案 146
7.4.2  用户和角色 149
7.4.3  链上和链下操作 149
7.4.4  MPC智能合约(MPC-contract) 151
7.4.5  MPC应用部署(MPC-app) 153
7.4.6  MPC序列图 156
7.4.7  MPC执行演示 157
7.4.8  访问web3 provider 160
7.4.9  MPC扩展 162
7.4.10  微支付通道的意义 163
7.4.11  其他web3包 163
7.5  回顾 164
7.6  最佳实践 164
7.7  本章小结 165
第8章  使用Infura进行公开部署 167
8.1  节点和网络 167
8.2  Infura区块链基础设施 168
8.3  使用Infura进行公开部署 169
8.4  公开部署的端到端流程 171
8.4.1  账号生成及管理 172
8.4.2  选择网络并导入账户 173
8.4.3  从faucet处收集以太币 174
8.4.4  在Infura上创建区块链节点 175
8.4.5  安装HDWalletProvider 176
8.4.6  配置并部署智能合约 176
8.4.7  配置和部署Web应用 177
8.5  在Infura上部署盲拍Dapp 178
8.5.1  设置盲拍环境 178
8.5.2  分散的参与者 180
8.5.3  配置和部署受益人账户 180
8.5.4  配置和部署竞标者 182
8.5.5  与已部署的盲拍Dapp交互 183
8.6  在Infura上部署MPC Dapp 186
8.6.1  配置MPC环境 186
8.6.2  配置并部署组织者 188
8.6.3  配置并部署工人 191
8.7  回顾 192
8.8  最佳实践 192
8.9  本章小结 193
第Ⅲ部分  路线图及未来之路 
第9章  资产代币化 197
9.1  以太坊标准 198
9.1.1  以太坊改进提案 198
9.1.2  ERC20代币标准 199
9.1.3  可替代和不可替代的代币 200
9.2  RES4:不可替代的房地产代币 201
9.2.1  用例图 202
9.2.2  合约图 203
9.2.3  RES4 ERC721兼容代币 203
9.2.4  RES4 Dapp 205
9.2.5  与RES4 Dapp进行交互 207
9.3  回顾 213
9.4  最佳实践 213
9.5  本章小结 214
第10章  测试智能合约 215
10.1  智能合约测试的重要性 215
10.1.1  测试类型 216
10.1.2  测试程序的语言选择 216
10.2  测试计数器智能合约 216
10.2.1  编写计数器测试脚本 217
10.2.2  正面测试和负面测试 220
10.2.3  运行测试脚本 220
10.3  测试投票智能合约 221
10.3.1  编写投票测试脚本 221
10.3.2  执行投票测试脚本 223
10.3.3  describe()和it()测试函数 224
10.4  回顾测试脚本的编写 224
10.5  盲拍测试脚本 225
10.5.1  分析describe()和it()的代码 227
10.5.2  执行盲拍测试脚本 227
10.5.3  完整的拍卖流程 228
10.6  回顾 228
10.7  最佳实践 229
10.8  本章小结 229
第11章  Dapp开发路线图 231
11.1  激励场景:教育证书 231
11.2  路线图 232
11.3  问题描述 233
11.3.1  DCC应用的背景 233
11.3.2  设计选择 234
11.4  分析与设计 234
11.4.1  操作流程及有限状态机 235
11.4.2  合约图 236
11.5  开发智能合约 237
11.5.1  数据结构 237
11.5.2  事件 237
11.5.3  修饰符 237
11.5.4  函数 237
11.6  本地部署 241
11.7  使用truffle进行自动化测试 242
11.8  开发Web应用 243
11.8.1  用户界面设计 244
11.8.2  编写app.js 246
11.9  测试DCC-Dapp 246
11.10  公开部署 247
11.10.1  在Ropsten-Infura上部署 247
11.10.2  创建用于分发的Web
客户端 249
11.11  回顾 250
11.12  最佳实践 250
11.13  本章小结 250
第12章  区块链:未来之路 253
12.1  去中心化身份 253
12.2  自我管理身份 254
12.3  共识与完整性 256
12.3.1  POW 257
12.3.2  POS 257
12.3.3  拜占庭容错共识 257
12.4  可扩展性 258
12.5  可扩展性解决方案 259
12.5.1  旁路通道 259
12.5.2  区块大小 259
12.5.3  网络速度 259
12.6  隐私 259
12.7  公共、私有和许可网络 260
12.8  保密性 261
12.8.1  开放信息 261
12.8.2  解决方案 262
12.9  安全性 262
12.10  使用加密货币进行保护 263
12.11  访问链下数据(预言机) 264
12.12  从基础到实用系统 265
12.13  展望未来 266
12.14  最佳实践 267
12.15  回顾 267
12.16  本章小结 268
附录A  UML区块链设计模型 269
附录B  设计原则 277
 

本目录推荐