区块链架构与实现 Cosmos详解
全新正版 极速发货
¥
61.68
6.2折
¥
99.8
全新
库存6件
作者温隆,贾音
出版社人民邮电出版社
ISBN9787115563880
出版时间2021-09
装帧平装
开本16开
定价99.8元
货号1202458230
上书时间2024-07-16
商品详情
- 品相描述:全新
- 商品描述
-
目录
章 Cosmos 网络介绍 1
1.1 区块链开发的技术挑战 1
1.1.1 开发周期与技术门槛 1
1.1.2 资源消耗与交易体验 2
1.1.3 链上扩容与跨链通信 3
1.2 Cosmos 网络 4
1.2.1 Cosmos 的解决方案 4
1.2.2 Cosmos Hub 5
1.2.3 Tendermint Core 6
1.2.4 Cosmos-SDK 8
1.2.5 IBC 协议 10
1.3 小结 12
第2章 密码学算法 13
2.1 散列函数与Merkle 树 13
2.1.1 散列函数简介 13
2.1.2 生日悖论原理 15
2.1.3 Merkle 树构建 17
2.1.4 Merkle 树证明构造 22
2.2 数字签名算法 28
2.2.1 循环群 29
2.2.2 素数域 32
2.2.3 椭圆曲线 32
2.2.4 ECDSA 36
2.2.5 Ed25519 40
2.2.6 公钥与地址 45
2.3 网络流量加密 46
2.4 小结 47
第3章 共识协议与区块设计 48
3.1 共识协议基础 49
3.1.1 半同步网络模型与BFT 49
3.1.2 拜占庭将军问题与CAP 定理 50
3.2 PBFT 共识协议 54
3.2.1 协议概述 55
3.2.2 视图转换 57
3.3 Tendermint 共识协议 58
3.3.1 协议概述 59
3.3.2 锁定机制 62
3.3.3 解锁机制 64
3.4 共识协议比较 66
3.5 提案者轮换选择算法 68
3.6 区块结构 79
3.7 小结 87
第4章 Tendermint Core 的架构设计 88
4.1 整体架构概览 88
4.1.1 基本概念 88
4.1.2 反应器简介 90
4.2 核心数据结构Node 结构体 92
4.2.1 作为服务的Node 结构体 94
4.2.2 可配置的Node 结构体 95
4.2.3 作为对等网络节点的Node结构体 96
4.3 反应器(Reactor) 103
4.3.1 mempool.Reactor 105
4.3.2 evidence.Reactor 109
4.3.3 BlockchainReactor 111
4.3.4 consensus.Reactor 114
4.4 小结 115
第5章 ABCI 116
5.1 交易池连接 117
5.2 共识连接 119
5.3 查询连接 125
5.4 客户端与上层应用交互 128
5.4.1 Application 接口与Client接口 129
5.4.2 进程内交互 132
5.4.3 套接字交互 133
5.5 实战——分布式键值数据库 135
5.5.1 键值对读写实现 137
5.5.2 执行过程展示 138
5.6 小结 141
第6章 Cosmos-SDK 的架构设计 142
6.1 Cosmos-SDK 的模块化设计 143
6.1.1 AppModule 接口 143
6.1.2 模块管理器 146
6.1.3 模块的源码组织 147
6.2 应用模板BaseApp 148
6.2.1 ABCI 接口方法的实现 151
6.2.2 模块管理 154
6.3 可认证数据结构IAVL+树 157
6.3.1 节点设计 157
6.3.2 读写与遍历 159
6.3.3 证明机制 167
6.3.4 Cosmos-SDK 中的IAVL+树 179
6.3.5 Cosmos-SDK 中的剪枝选项 180
6.4 Cosmos-SDK 的存储器设计 181
6.4.1 多重存储器 MultiStore 184
6.4.2 键值对存储器KVStore 186
6.4.3 存储器装饰器 189
6.4.4 瞬时存储数据库 193
6.5 小结 194
第7章 Cosmos-SDK 的基本模块 195
7.1 账户与交易: auth 模块 195
7.1.1 账户管理 195
7.1.2 标准交易 197
7.1.3 交易预检查 198
7.2 链上资产转移: bank 模块 200
7.3 创世交易:genutil 模块 202
7.4 链上参数管理: params 模块 202
7.5 链上资产总量追踪:supply 模块 203
7.6 链上状态一致性检查: crisis 模块 204
7.7 链上治理:gov 模块 206
7.7.1 提案创建与投票 206
7.7.2 提案的链上存储 209
7.7.3 提案的链上处理 212
7.8 节点升级:upgrade 模块 216
7.8.1 升级计划与升级提案 216
7.8.2 执行升级计划 218
7.8.3 自动化升级 220
7.9 小结 220
第8章 Cosmos-SDK 的PoS 实现 221
8.1 PoS 机制概述 221
8.2 Cosmos Hub 的PoS 机制 223
8.3 链上资产抵押:staking 模块 226
8.3.1 验证者与链上资产抵押 227
8.3.2 重新委托与撤回委托 232
8.3.3 验证者状态切换 235
8.3.4 回调函数与模块交互 238
8.4 被动作恶惩罚:slashing 模块 241
8.4.1 区块中的投票信息 242
8.4.2 被动惩罚设计理念 243
8.4.3 被动惩罚实现概览 244
8.5 主动作恶惩罚: evidence 模块 249
8.5.1 双签作恶惩罚 250
8.5.2 惩罚机制小结 252
8.6 链上资产铸造:mint 模块 254
8.7 链上奖励分发: distribution 模块 256
8.7.1 奖励分发概述 256
8.7.2 F1 奖励分发机制 260
8.7.3 F1 奖励分发实现 261
8.8 小结 268
第9章 Cosmos-SDK 的跨链通信 269
9.1 Tendermint Core 轻客户端 270
9.1.1 轻客户端原理概述 270
9.1.2 故障模型与解决方案 272
9.1.3 轻客户端实现 274
9.1.4 Cosmos-SDK 轻客户端 280
9.2 跨链通信原理与设计 283
9.2.1 跨链通信概述 283
9.2.2 中继者 288
9.2.3 轻客户端 288
9.2.4 连接 293
9.2.5 信道 296
9.2.6 跨链数据包 298
9.3 跨链通信示例 301
9.4 小结 305
0章 Cosmos Hub 的客户端Gaia 306
10.1 核心数据结构GaiaApp 306
10.1.1 编解码器初始化 308
10.1.2 BaseApp 初始化 310
10.1.3 模块存储映射表初始化 310
10.1.4 模块Keeper 初始化 311
10.1.5 模块管理器初始化 314
10.1.6 存储加载 317
10.2 gaiad 与gaiacli 317
10.2.1 安装 317
10.2.2 单节点测试链 318
10.2.3 gaiacli 的使用 321
10.3 区块的生命周期 325
10.3.1 链初始化 325
10.3.2 交易与区块构建 326
10.3.3 区块执行 328
10.4 Gaia 的安全部署 331
10.4.1 远程签名部署 331
10.4.2 哨兵节点部署 331
10.5 小结 332
附录1 Cosmos-SDK 与Cosmos Hub 中的参数配置 333
附录2 Cosmos-SDK 中的键值对 336
附录3 Cosmos-SDK 中的不变量检查 338
内容摘要
由于涉及多个学科领域,构建区块链系统面临的技术挑战不可小觑,而区块链行业早期的野蛮生长带来的链间相互孤立的问题也日益凸显。面对这些挑战,Tendermint团队给出了系统化解决方案:构建区块链应用开发框架降低区块链系统开发的难度,并设计通用IBC协议实现跨链互操作。《区块链架构与实现:Cosmos详解》围绕Cosmos项目展开,从预备基础理论、开发框架设计、开发框架应用三个层面全面、系统阐述相关机制:在预备基础理论方面,详细介绍区块链项目的理论基础,包括密码学算法、拜占庭容错共识协议的基础知识、Tendermint共识协议以及权益证明机制原理;在开发框架设计方面,深入介绍Tendermint Core项目架构设计以及该项目提供的ABCI规范与实现原理,剖析Cosmos-SDK项目中提供的功能模块的原理与关键实现,包括权益证明机制以及IBC协议的实现;在开发框架应用方面,展示如何基于Tendermint Core项目构建分布式键值数据库应用,并以Cosmos网络的客户端Gaia的实现为例展示构建应用专属区块链系统的具体过程。《区块链架构与实现:Cosmos详解》内容深入浅出,指导性和实操性强,适合区块链领域开发者和区块链技术爱好者阅读,也可作为高等院校计算机及区块链相关专业的教学用书和培训教材。
主编推荐
1.围绕Cosmos项目介绍当下公链主流技术:BFT共识协议、PoS机制以及IBC协议
2.深入阐述ABCI的规范与实现机制
3.免费提供数据库tm-kvstore源代码资源
4.密码算法剖析与图例展示
5.拆解权益证明机制,深入区块链客户端构建流程
媒体评论
【Tendermint CEO,Peng Zhong,作序推荐!】
当温隆博士邀请我为这本书作序时,我很吃惊。虽然在过去5 年的时间里,我一直致力于研究并推广Cosmos 技术,但我仍然不确定是否有人愿意花时间学习这一技术。所以,温隆博士撰写了一本关于Cosmos 的书并即将公开出版的消息,给了我极大的鼓舞!
我是Peng Zhong,又名钟昌鹏。我出生于中国,但在美国长大。2010 年年初,我作为一名自由职业的用户界面(user interface,UI)设计师开启了自己的职业生涯。2014 年,Jae Kwon 邀请我为 FtNox 开发Web 前端界面,FtNox 是一个新的数字货币交易所,名字模仿了当时优选的数字货币交易所Mt.Gox。FtNox 交易所当时并没有上线。但2015 年,Jae Kwon创建了基于拜占庭容错(Byzantine fault tolerance,BFT)共识协议的Tendermint Core 项目。Jae 由此创造了历史,因为Tendermint Core 项目将成为区块链业内靠前的BFT 共识引擎。
2015 年年底,我作为名员工加入 Tendermint 公司,担任公司的首席设计官(chiefdesign officier,CDO),并参与了少有Cosmos 钱包和Cosmos 区块浏览器的设计与开发。2017年,我们发布了Cosmos 白皮书,区块链网络(Internet of blockchains)的想法由此诞生。我们的前端开发团队设计和构建了Cosmos 众筹平台,并在短短28 分钟内筹集了价值1730 万美元(约合人民币1.12 亿元)的比特币(bitcoin)和以太坊(Ethereum)。
得益于2017 年的众筹,我们可以进一步扩大我们的工程师团队,来设计和构建必要的软件和服务,以支持可互操作的、基于权益证明(proof-of-stake,PoS)机制的区块链的启动。这些软件包括Tendermint Core 项目、Cosmos SDK 项目和跨链通信(inter-blockchain communication,IBC)协议。随后,我们基于该技术栈构建了条Cosmos 区块链:Cosmos
Hub。截至2020 年年底,Cosmos Hub 已经迭代到cosmoshub-3 版本,链上原生资产的价值增长远远超出了我们的预期。读者在这本书中可以学习到与此相关的所有技术。
2020 年5 月,我被任命为Tendermint 公司的CEO。作为一个拥有UI 设计经验和对改进用户体验具有极大热情的人,我致力于让Cosmos 成为搭建独立、自主的区块链的优选技术。这意味着我们需要不断地改进Cosmos 网站、技术文档以及Cosmos-SDK 项目教程,为Cosmos生态搭建更好用的工具,并为Cosmos 生态内的创新者提供资助。
区块链仍然是一项崭新的技术,与Web 2.0 程序相比,编写去中心化应用(decentralized
applications,DApp)是一种全新的范式。然而在这一领域,新技术的文档和指南往往十分
缺乏,因为擅长开发的工程师并不一定擅长教学。正是因为存在脱节,所以我很高兴并由衷
感谢温隆博士参与并撰写了这本书。我们需要更多这样的很好内容来吸引开发人员尝试并使
用Cosmos-SDK 项目和Tendermint Core 项目。希望读者能从这本书中有所收获,我十分期待与你们一起搭建更多的下一代分布式金融应用。
【Tendermint 工程副总裁,Alessio Treglia,作序推荐!】
我记得2018 年夏天开始在Tendermint 团队工作时,自己既兴奋又有些不知所措。我是一位开源社区的长期贡献者,在我的软件行业生涯中,我面临过各种各样的挑战,并且在许多不同的行业和部门中工作过,包括广告、大数据分析、嵌入式软件和金融市场的预测等。在加入Tendermint 团队之前,我已经在许多初创企业和几家优选企业中任职。尽管如此,区块链对我来说仍然是一个全新的“世界”,这里满是新事物和颠覆性技术,以及听起来近乎疯狂的绝妙想法和野心勃勃的项目。其中很令人难以置信的,当然是区块链网络。
在Tendermint 团队工作的天,团队向我解释了项目计划:构建包含多个模块的软件开发工具包,以便区块链应用开发者可以基于这些模块,轻松构建独立、自主的区块链应用。项目任务很好明确:我们必须让开发者以尽可能轻松的方式构建尽可能多的区块链应用。这些应用(也称为Zone)不仅可以从生态环境友好的Tendermint 共识算法所提供的快速很终性(fast finality)中获益,还享有独立、自主的链上治理,并且可以通过IBC 协议相互通信。Cosmos-SDK 项目致力于完成这一任务。
在过去两年中,开发者构建了不计其数的Cosmos-SDK 项目的模块和应用,并启动了众多 Cosmos 应用区块链。Tendermint 和Cosmos 生态系统的成功超出了人们的预期。我们不再是专享一个投入时间和资源研究并开发Cosmos 技术堆栈模块和协议的团队。这允许我们将一些任务委托给技术纯熟、信誉卓著的合作伙伴,并在更多的方向上扩展我们的工程能力:在继续构建区块链应用开发所需技术基础的同时,我们也开始注重构建以自动化做市商(automated market maker)为代表的分布式金融(decentralized finance)协议,以及以Starport为代表的可以进一步改善开发体验并允许开发者在几分钟之内从零构建Cosmos 区块链的开发者工具。
这本书将带你踏上了解构成Cosmos 区块链应用的所有技术组件的旅程。这本书首先深入介绍Tendermint Core 项目,包括项目的内部组件、密码学算法以及设计准则。很初的Tendermint 团队遵循该设计准则开发了区块链应用接口(application blockchain interface,ABCI),这是一套介于任意有限状态机(finite state machine)和底层复制引擎(replication engine)之间的接口。接下来这本书详细介绍Cosmos-SDK 项目中的每一个功能模块,以及这些功能模块之间如何和谐地构成PoS 机制。基于该机制,很初的Tendermint 团队构建了Cosmos Hub 网络的客户端Gaia。
这本书作者接受了挑战,用一本书的篇幅为读者全面介绍关于Tendermint Core 项目和Cosmos-SDK 项目几乎所有需要了解的内容。作者撰写了一本全面深入的手册,如果你想要充分理解Cosmos 生态系统基础技术的复杂性,这本书是一本真正的常备手册。我相信通过他们的努力,将会有许多读者精通使用Cosmos-SDK 项目,开发出安全和高性能的区块链应用。
【电子科技大学教授,张小松 推荐】
区块链从技术角度提供了解决信用问题的可靠手段,为经济社会的数字化转型升级提供了基础技术支撑。然而,区块链技术本身仍有亟待解决的技术难点。其中,跨链互操作就是当前区块链技术应用推广时面临的共性问题,而Cosmos提出的跨链方案,不失为一个解决跨链问题的方案。这本书以Cosmos区块链项目为例,详述业界前沿就跨链等问题的解决方案与工程实践经验,理论原理和工程实践兼顾,可以帮助读者深入了解区块链领域的前沿技术发展。
【比特大陆科技有限公司联合创始人,吴忌寒 推荐】
区块链是以密码学理论和工程实践作为技术创新基础的。这本书的作者温隆具有扎实的密码学理论功底和在区块链研发一线的实践经验,可以帮助读者准确把握区块链的技术问题。
【星云链及小蚁创始人,前蚂蚁金服区块链平台部负责人,徐义吉 推荐】
创新离不开不断的学习和总结,这本书开了一个好头,可以让更多的人了解Cosmos和区块链技术本身。
【腾讯数字资产中心负责人,蔡弋戈 推荐】
借助分层和模块化设计的理念,Cosmos区块链项目为权益证明机制、拜占庭容错共识协议、IBC协议等区块链行业的热点问题提供了优质的解决方案。这本书从共识协议、密码算法、架构设计等角度为读者全面剖析Cosmos区块链项目,读者可据此了解相关前沿技术并快速构建自己的应用专属区块链。
— 没有更多了 —
以下为对购买帮助不大的评价