展开全部

主编推荐语

本书系统的阐述Cosmos的相关机制。

内容简介

由于涉及多个学科领域,构建区块链系统面临的技术挑战不可小觑,而区块链行业早期的野蛮生长带来的链间相互孤立的问题也日益凸显。面对这些挑战,Tendermint团队给出了系统化解决方案:构建区块链应用开发框架降低区块链系统开发的难度,并设计通用IBC协议实现跨链互操作。

本书围绕Cosmos项目展开,从预备基础理论、开发框架设计、开发框架应用三个层面全面、系统阐述相关机制:在预备基础理论方面,详细介绍区块链项目的理论基础,包括密码学算法、拜占庭容错共识协议的基础知识、Tendermint共识协议以及权益证明机制原理;在开发框架设计方面,深入介绍Tendermint Core项目架构设计以及该项目提供的ABCI规范与实现原理,剖析Cosmos-SDK项目中提供的功能模块的原理与关键实现,包括权益证明机制以及IBC协议的实现;在开发框架应用方面,展示如何基于Tendermint Core项目构建分布式键值数据库应用,并以Cosmos网络的客户端Gaia的实现为例展示构建应用专属区块链系统的具体过程。

本书内容深入浅出,指导性和实操性强,适合区块链领域开发者和区块链技术爱好者阅读,也可作为高等院校计算机及区块链相关专业的教学用书和培训教材。

目录

  • 版权信息
  • 序1
  • 序2
  • 前言
  • 资源与支持
  • 第1章 Cosmos网络介绍
  • 1.1 区块链开发的技术挑战
  • 1.1.1 开发周期与技术门槛
  • 1.1.2 资源消耗与交易体验
  • 1.1.3 链上扩容与跨链通信
  • 1.2 Cosmos网络
  • 1.2.1 Cosmos的解决方案
  • 1.2.2 Cosmos Hub
  • 1.2.3 Tendermint Core
  • 1.2.4 Cosmos-SDK
  • 1.2.5 IBC协议
  • 1.3 小结
  • 第2章 密码学算法
  • 2.1 散列函数与Merkle树
  • 2.1.1 散列函数简介
  • 2.1.2 生日悖论原理
  • 2.1.3 Merkle树构建
  • 2.1.4 Merkle树证明构造
  • 2.2 数字签名算法
  • 2.2.1 循环群
  • 2.2.2 素数域
  • 2.2.3 椭圆曲线
  • 2.2.4 ECDSA
  • 2.2.5 Ed25519
  • 2.2.6 公钥与地址
  • 2.3 网络流量加密
  • 2.4 小结
  • 第3章 共识协议与区块设计
  • 3.1 共识协议基础
  • 3.1.1 半同步网络模型与BFT
  • 3.1.2 拜占庭将军问题与CAP定理
  • 3.2 PBFT共识协议
  • 3.2.1 协议概述
  • 3.2.2 视图转换
  • 3.3 Tendermint共识协议
  • 3.3.1 协议概述
  • 3.3.2 锁定机制
  • 3.3.3 解锁机制
  • 3.4 共识协议比较
  • 3.5 提案者轮换选择算法
  • 3.6 区块结构
  • 3.7 小结
  • 第4章 Tendermint Core的架构设计
  • 4.1 整体架构概览
  • 4.1.1 基本概念
  • 4.1.2 反应器简介
  • 4.2 核心数据结构Node结构体
  • 4.2.1 作为服务的Node结构体
  • 4.2.2 可配置的Node结构体
  • 4.2.3 作为对等网络节点的Node结构体
  • 4.3 反应器(Reactor)
  • 4.3.1 mempool.Reactor
  • 4.3.2 evidence.Reactor
  • 4.3.3 BlockchainReactor
  • 4.3.4 consensus.Reactor
  • 4.4 小结
  • 第5章 ABCI
  • 5.1 交易池连接
  • 5.2 共识连接
  • 5.3 查询连接
  • 5.4 客户端与上层应用交互
  • 5.4.1 Application接口与Client接口
  • 5.4.2 进程内交互
  • 5.4.3 套接字交互
  • 5.5 实战
  • 5.5.1 键值对读写实现
  • 5.5.2 执行过程展示
  • 5.6 小结
  • 第6章 Cosmos-SDK的架构设计
  • 6.1 Cosmos-SDK的模块化设计
  • 6.1.1 AppModule接口
  • 6.1.2 模块管理器
  • 6.1.3 模块的源码组织
  • 6.2 应用模板BaseApp
  • 6.2.1 ABCI接口方法的实现
  • 6.2.2 模块管理
  • 6.3 可认证数据结构IAVL+树
  • 6.3.1 节点设计
  • 6.3.2 读写与遍历
  • 6.3.3 证明机制
  • 6.3.4 Cosmos-SDK中的IAVL+树
  • 6.3.5 Cosmos-SDK中的剪枝选项
  • 6.4 Cosmos-SDK的存储器设计
  • 6.4.1 多重存储器 MultiStore
  • 6.4.2 键值对存储器KVStore
  • 6.4.3 存储器装饰器
  • 6.4.4 瞬时存储数据库
  • 6.5 小结
  • 第7章 Cosmos-SDK的基本模块
  • 7.1 账户与交易: auth模块
  • 7.1.1 账户管理
  • 7.1.2 标准交易
  • 7.1.3 交易预检查
  • 7.2 链上资产转移: bank模块
  • 7.3 创世交易:genutil模块
  • 7.4 链上参数管理: params模块
  • 7.5 链上资产总量追踪:supply模块
  • 7.6 链上状态一致性检查: crisis模块
  • 7.7 链上治理:gov模块
  • 7.7.1 提案创建与投票
  • 7.7.2 提案的链上存储
  • 7.7.3 提案的链上处理
  • 7.8 节点升级:upgrade模块
  • 7.8.1 升级计划与升级提案
  • 7.8.2 执行升级计划
  • 7.8.3 自动化升级
  • 7.9 小结
  • 第8章 Cosmos-SDK的PoS实现
  • 8.1 PoS机制概述
  • 8.2 Cosmos Hub的PoS机制
  • 8.3 链上资产抵押:staking模块
  • 8.3.1 验证者与链上资产抵押
  • 8.3.2 重新委托与撤回委托
  • 8.3.3 验证者状态切换
  • 8.3.4 回调函数与模块交互
  • 8.4 被动作恶惩罚:slashing模块
  • 8.4.1 区块中的投票信息
  • 8.4.2 被动惩罚设计理念
  • 8.4.3 被动惩罚实现概览
  • 8.5 主动作恶惩罚: evidence模块
  • 8.5.1 双签作恶惩罚
  • 8.5.2 惩罚机制小结
  • 8.6 链上资产铸造:mint模块
  • 8.7 链上奖励分发: distribution模块
  • 8.7.1 奖励分发概述
  • 8.7.2 F1奖励分发机制
  • 8.7.3 F1奖励分发实现
  • 8.8 小结
  • 第9章 Cosmos-SDK的跨链通信
  • 9.1 Tendermint Core轻客户端
  • 9.1.1 轻客户端原理概述
  • 9.1.2 故障模型与解决方案
  • 9.1.3 轻客户端实现
  • 9.1.4 Cosmos-SDK轻客户端
  • 9.2 跨链通信原理与设计
  • 9.2.1 跨链通信概述
  • 9.2.2 中继者
  • 9.2.3 轻客户端
  • 9.2.4 连接
  • 9.2.5 信道
  • 9.2.6 跨链数据包
  • 9.3 跨链通信示例
  • 9.4 小结
  • 第10章 Cosmos Hub的客户端Gaia
  • 10.1 核心数据结构GaiaApp
  • 10.1.1 编解码器初始化
  • 10.1.2 BaseApp初始化
  • 10.1.3 模块存储映射表初始化
  • 10.1.4 模块Keeper初始化
  • 10.1.5 模块管理器初始化
  • 10.1.6 存储加载
  • 10.2 gaiad与gaiacli
  • 10.2.1 安装
  • 10.2.2 单节点测试链
  • 10.2.3 gaiacli的使用
  • 10.3 区块的生命周期
  • 10.3.1 链初始化
  • 10.3.2 交易与区块构建
  • 10.3.3 区块执行
  • 10.4 Gaia的安全部署
  • 10.4.1 远程签名部署
  • 10.4.2 哨兵节点部署
  • 10.5 小结
  • 附录1 Cosmos-SDK与Cosmos Hub中的参数配置
  • 附录2 Cosmos-SDK中的键值对
  • 附录3 Cosmos-SDK中的不变量检查
展开全部

评分及书评

5.0
3个评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。