登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』区块链编程

書城自編碼: 4006148
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: [美]比娜·拉马穆尔蒂[Bina Ramamurthy]著
國際書號(ISBN): 9787302664819
出版社: 清华大学出版社
出版日期: 2024-06-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 500

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
荷马:伊利亚特(英文)-西方人文经典影印21
《 荷马:伊利亚特(英文)-西方人文经典影印21 》

售價:NT$ 490.0
我的心理医生是只猫
《 我的心理医生是只猫 》

售價:NT$ 225.0
股权控制战略:如何实现公司控制和有效激励(第2版)
《 股权控制战略:如何实现公司控制和有效激励(第2版) 》

售價:NT$ 449.0
成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本
《 成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本 》

售價:NT$ 280.0
爱丁堡古罗马史-罗马城的起源和共和国的崛起
《 爱丁堡古罗马史-罗马城的起源和共和国的崛起 》

售價:NT$ 349.0
人生解忧:佛学入门四十讲
《 人生解忧:佛学入门四十讲 》

售價:NT$ 490.0
浪潮将至
《 浪潮将至 》

售價:NT$ 395.0
在虚无时代:与马克斯·韦伯共同思考
《 在虚无时代:与马克斯·韦伯共同思考 》

售價:NT$ 260.0

建議一齊購買:

+

NT$ 556
《 ASP.NET Core学习之旅:逐步构建自己的开发框架 刘俊繁 》
+

NT$ 449
《 智能优化算法:RNA遗传算法 》
+

NT$ 294
《 跟Wakaba酱一起学网站制作 》
+

NT$ 588
《 JavaScript全栈开发实战 》
+

NT$ 301
《 极简Go语言——后端开发入门之道 》
+

NT$ 753
《 C语言程序设计 现代方法 第2版·修订版 》
編輯推薦:
区块链技术远超比特币背后的技术范畴,其概念实际上十分广泛。它凭借坚不可摧的安全性、去中心化交易以及可独立验证的供应链,已经彻底改变了货币、数字身份和物流等领域。借助以太坊和超级账本等平台,开发者可以利用熟悉的编程语言轻松上手区块链项目。
  《区块链编程》以简明扼要的方式,教会读者如何设计和构建基于区块链的去中心化应用程序。首先,你将全面了解区块链的工作原理。随后,你将使用以太坊和Solidity编写你的首个智能合约。接着,你将逐步添加Web界面、信任验证等功能,直至准备好应用程序的部署。你只需配置好标准硬件和利用开源软件,便可轻松启程,踏上区块链编程的探索之旅。
內容簡介:
● 区块链与其他分布式系统的比较
● 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
內容試閱
在计算机领域从集成芯片发展到互联网的时代,我很幸运地成为了一名计算机科学家。我设计并开发了一系列的系统,涵盖从点阵打印机驱动程序到分布式系统的容错算法等。我使用过各种高级语言进行编程,从PL/1到Python等。这些年来,我也一直是一名教育工作者,教授各种技术前沿课程,从网格计算到数据科学等。当然,我目前的兴趣和爱好主要是区块链技术。
我第一次听说比特币,是在2013年左右。但当时我忽略了它,认为它不过是加密货币的另一种尝试罢了。2016年,我开始探索比特币的基础技术:区块链。当然,我也搜索了更多关于区块链的信息,但并没有什么新发现。2016年1月一个寒冷的夜晚,在水牛城的一次聚会上,一位发言者展示了YouTube上一些关于区块链的分布式账本魔力的视频,当时我被震撼了。于是我开始阅读比特币的白皮书,参与开发了Eris和Monax的区块链开源代码。2017年夏天,我开始在一门关于新兴技术的课程中教授区块链。该课程是印度哥印拜陀的阿姆里塔大学为一批精选的汽车工程师开设的。2017年8月至2018年5月,我花了近一年的时间,制作并发布了一个包含4门课程的MOOC专业课程。该课程目前仍继续开设,来自世界各地的注册人员已超过14万名。
我为Coursera的视频制作提供了大量的内容、视频、原始图表和大约220页的脚本。因此,我决定把这些材料整理成一本书。然后,在2018年的夏天,我接到了Manning出版社技术编辑的电话,于是《区块链编程》这个图书项目就启动了。这一项目花了两年的时间才完成。我意识到,一个配有实战案例的印刷品项目与MOOC是完全不同的——前者更复杂,也更具挑战性。但是现在我已成功让本书面世。我很享受写这本书的每一分钟,这些努力都是值得的。我喜欢思考区块链的概念,喜欢探索它们,发现那些需要解决的有价值的问题,并向读者描述它们。
由于区块链是一门新兴的技术,因此很少有相关的资源能够帮助实践者开始进行这一领域的应用开发。本书正是针对这一需求,涵盖了基于区块链的端到端的Dapp开发。我选择使用Ethereum这一区块链平台,因为它是开源的。在过去的四年里,诸如用于智能合约的Solidity编译器、用于探索的Remix IDE、用于Dapp开发测试的Truffle工具套件、用于测试链的Ganache和Rposten、用于智能合约云端部署的Infura,以及MetaMask wallet等工具,都为我的团队提供了极大的帮助。这些工具协同工作,能够提供无缝的学习和原型设计环境。
我希望你阅读本书时能够像我创作本书时一样充满激情!



关 于 本 书



《区块链编程》是设计和开发基于区块链技术的去中心化应用程序(Dapp)的全面资源,这些资源将帮助你入门智能合约和区块链的应用开发。本书也提供了充分的技术细节帮助你理解区块链,而不必去研究那些理论材料。
智能合约和Dapp的设计与开发,将通过7个应用来说明,每个应用都侧重于区块链的某个方面。本书介绍了一些重要工具(Remix、Ganache、MetaMask、Truffle、Ropsten和Infura)和技术(加密和数字签名技术),以展示Dapp在以太坊测试链上的开发和部署。区块链技术的核心思想——信任与完整性、安全与隐私、链上和链下数据,以及操作——都通过实例进行了详细介绍。本书将使用150多个带注释的图表和截图来解释区块链的相关概念。
本书不仅为6个Dapp提供完整的代码库(区块链应用开发人员的宝贵资源),还以循序渐进的方式讲解了智能合约和Dapp的开发。书中给出的标准目录结构和单网页的用户界面将帮助你快速配置、迁移,以及与Dapp进行交易。当然,你可能会发现有些章节比较冗长,这是因为要通过一个Dapp介绍新的区块链概念,再通过第二个Dapp进一步解释这些概念。某些特殊的技术如链下和链上数据、设计原则,以及最佳实践等,都将为你探索区块链技术提供清晰的路线图,以实现强大的智能合约和Dapp开发。
本书读者对象
《区块链编程》适合那些想了解区块链技术和“开发智能合约及去中心化应用”的程序员。任何想要入门区块链编程的程序员(无论是初级程序员还是高级程序员),都可以阅读和运行书中的应用。希望全面了解区块链用例的商业人士,以及从业者都可以从本书所描述的各种应用和Dapp中学习。本书非常适合为本科生或者研究生教授区块链技术的教育工作者。此外,自学者(例如,有一定编程背景的高中生)通过阅读本书和练习其中的例子,也能学会区块链编程。
本书的组织方式:路线图
本书内容分为3部分,共12章。
第Ⅰ部分,第1~4章,包括区块链基础知识和智能合约的设计与开发。
第1章介绍区块链的3个维度——去中心化、去中介化和分布式不可变账本,并提供一个关于区块链的高层次概念视图。
第2章对以太坊区块链上的智能合约进行了介绍,应用设计原则来开发智能合约,使用Solidity语言来编写智能合约,在基于网络的Remix集成开发环境中部署智能合约,并与这些智能合约进行交易。本章开发了一个去中心化的计数器智能合约Counter.sol和航空联盟智能合约ASK.sol。
第3章介绍向智能合约代码添加信任与完整性的技术。本章介绍代表数字民主中投票的投票智能合约Ballot.sol,并进行渐进式开发。
第4章介绍带有智能合约逻辑和基于Web用户界面的去中心化应用(Dapp)的设计与开发。介绍基于Node.js的Truffle工具套件,以用于开发和运行智能合约及网络应用。Ballot应用(Ballot-Dapp)用来说明基于Truffle的开发步骤,以及如何在本地Ganache测试链上进行部署。
第Ⅱ部分,第5~8章,介绍端到端的Dapp开发,以及其他的区块链特定功能,如链上数据、安全和隐私。
第5章介绍区块链编程背景下的安全和隐私。并对密码学和hash算法与技术进行了高层次的探讨。这些概念都将通过一个盲拍智能合约BlindAuction.sol来说明。
第6章介绍链上和链下数据的概念,这是区块链编程所特有的。盲拍和ASK智能合约将被扩展到Dapp(BA-Dapp和ASK-Dapp)中,以展示链上和链下数据开发。此外,也对定义、发布和访问区块链事件及日志进行了说明。
第7章重点介绍以太坊的web3 API,它使网络应用能够访问底层的区块链服务。也介绍了区块链的旁路通道的概念,说明web3在微支付通道(MPC)应用中的使用情况,该应用被部署在大规模塑料清理应用(MPC-Dapp)中。
第8章探讨在公有云基础设施Infura上部署智能合约的相关内容。Infura是一个web3供应商,也是Ropsten(主网和IPFS)等公共区块链的网关。Infura和Ropsten上的公有部署,通过部署MPC和盲拍智能合约得以展示。
第Ⅲ部分,第9~12章,扩展你对以太坊Dapp生态系统的认知,内容包括代币、以太坊标准、自动测试,以及实际应用开发的路线图等。
第9章是关于数字资产的代币化。RES4-Dapp是为房地产代币设计的,是一个基于代币ERC721的以太坊标准进行开发的房地产代币。
第10章主要关注测试脚本的编写,并介绍如何使用Truffle这一基于JS的测试框架来编写测试脚本并运行。自动测试脚本的编写是基于本书中已介绍的3个智能合约:计数器、ballot和盲拍。
第11章提供前面探讨的所有概念、工具和技术的端到端的路线图,并将它们汇总为一个教育资格认证的应用:DCC-Dapp。
第12章展望充满挑战的未来,并探讨了许多可以发挥个人才能并做出贡献的绝佳机会。
此外,本书还提供两个附录来协助你完成设计过程。
附录A回顾如何使用统一建模语言(UML)进行设计表示。该附录展示了智能合约设计中用到的结构、行为、交互的建模和简图。
附录B记录书中用来指导区块链应用开发的设计原则。
一般而言,本书的第1~8章应按顺序阅读。第Ⅲ部分的各章,则可以随兴趣阅读。例如,第10章关于测试的内容可以在第5章之后的任意时间段阅读。我鼓励你这么做。
想要精通智能合约设计和Dapp开发的开发人员,应该尝试运行书中各章的示例,边实践边体验边学习。
关于代码、彩图、Links文件的下载
本书包含了许多源代码示例,包括代码清单和正文中的代码文本。书中有6个完全可用的Dapp,以及大量用来解释各种概念的代码段和智能合约。在本书的代码清单中,当代码较长时,有些行会使用“……”省略号进行表示,以达到简洁的效果。不过,完整的代码可以在本书附带的代码库中找到。此外,许多代码清单中也都会有代码注释,以强调重要概念。
本书示例的源代码以及各图的彩色图片,可通过扫描封底的二维码下载。
另外,要说明的是,读者在阅读本书时会看到一些有关链接的编号,形式是数字编号加方括号,例如[1],表示读者可扫描本书封底的二维码下载Links文件,在其中可找到对应章节中的[1]所指向的链接。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.