第1章 区块链基础 1
1.1 关键特征 1
1.2 适合场景 2
1.3 关键组成 3
1.3.1 P2P网络 3
1.3.2 共识机制 4
1.3.3 密码学 6
1.3.4 智能合约 9
1.4 网络类型 10
1.5 安全性考量 11
1.6 性能考量 13
1.7 常见基础协议 13
1.7.1 BitCoin 13
1.7.2 Ethereum 15
1.7.3 Ripple 16
1.7.4 Tendermint 16
1.8 标准化 19
1.9 本章小结 21
第2章 Stellar概述 22
2.1 主要特点 22
2.2 关键部件 23
2.2.1 网络结构 23
2.2.2 stellar-core 23
2.2.3 horizon 24
2.3 常用工具 27
2.3.1 Account-Viewer 27
2.3.2 Laboratory 29
2.3.3 Dashboard 32
2.4 Hello New World 34
2.5 联邦拜占庭共识 36
2.6 本章小结 38
第3章 Stellar详解 39
3.1 数据大图 39
3.1.1 账本数据 39
3.1.2 实体数据 41
3.1.3 形态数据 41
3.2 账户 43
3.3 账页 46
3.4 数字资产 50
3.4.1 原生资产 50
3.4.2 通货膨胀 51
3.4.3 发行资产 53
3.4.4 信任资产 53
3.4.5 资产锚点 55
3.5 分布式交易 56
3.5.1 交易挂单 56
3.5.2 被动挂单 58
3.5.3 路径支付 58
3.6 智能合约 58
3.6.1 多签名 58
3.6.2 阈值 62
3.6.3 时间事件 64
3.7 管理数据 64
3.8 事务&操作 65
3.8.1 事务 65
3.8.2 操作 66
3.9 其他概念 75
3.9.1 序列号 75
3.9.2 通道 75
3.9.3 事件 77
3.10 本章小结 79
第4章 数据存证 80
4.1 场景需求 81
4.2 实现原理 82
4.2.1 实名认证 82
4.2.2 数据确权 84
4.2.3 数据查验 84
4.3 实现过程 85
4.3.1 实现代码结构 85
4.3.2 接入区块链网络 86
4.3.3 数据Hash上链 87
4.3.4 事务查验 91
4.4 最佳实践 91
4.5 本章小结 92
第5章 资产交易 93
5.1 场景需求 93
5.2 实现原理 94
5.3 实现过程 96
5.4 最佳实践 101
5.4.1 区块链网络高可用性 101
5.4.2 发行资产总量控制 101
5.4.3 与业务系统集成 102
5.4.4 有效的账户架构设计 102
5.5 本章小结 103
第6章 基于Stellar区块链技术的系统架构设计 104
6.1 业务架构设计 104
6.1.1 什么场景适合区块链? 104
6.1.2 区块链网络形态 105
6.1.3 去中心化? 108
6.1.4 协作模式 108
6.1.5 如何证明是区块链? 109
6.2 逻辑架构设计 109
6.2.1 DApp 109
6.2.2 三种区块链网络链接方式 110
6.2.3 业务监控 110
6.2.4 事务性逻辑处理 111
6.3 物理架构设计 111
6.3.1 节点类型 111
6.3.2 物理架构设计视图 111
6.4 数据架构设计 113
6.4.1 四种数据 113
6.4.2 数据上链 113
6.4.3 数据隐私 113
6.5 账户架构设计 114
6.5.1 用户账户处理 114
6.5.2 发行账户处理 114
6.5.3 账户认证 117
6.6 本章小结 118
第7章 搭建Stellar公有区块链网络节点 119
7.1 公有区块链网络状态 119
7.2 状态机复制 121
7.3 stellar-core部署 123
7.3.1 环境准备 123
7.3.2 安装方式 123
7.3.3 依赖环境安装 124
7.3.4 安装PostgreSQL 124
7.3.5 选择安装分支 127
7.3.6 编译安装 127
7.3.7 创建节点seed 129
7.3.8 配置文件实例 129
7.3.9 初始化数据库 131
7.3.10 启动节点 133
7.4 stellar-core配置参数 134
7.4.1 通用管理类 134
7.4.2 网络类 135
7.4.3 SCP类 137
7.4.4 历史数据类 137
7.4.5 测试类 138
7.4.6 历史归档配置 138
7.4.7 Quorum Set配置 140
7.5 stellar-core最佳实践 141
7.5.1 创建系统服务 141
7.5.2 远程HTTP命令 142
7.5.3 控制台命令 146
7.5.4 使用阿里云OSS作为历史归档数据源 149
7.5.5 stellar-core部署硬盘采用SSD硬盘 149
7.5.6 配置文件特殊字符问题 150
7.5.7 stellar-core安全退出 151
7.5.8 操作系统的系统时间问题 151
7.6 horizon部署 154
7.6.1 环境准备 154
7.6.2 安装方式 155
7.6.3 安装Golang 155
7.6.4 数据库准备 156
7.6.5 源码编译安装 156
7.6.6 最小配置参数 156
7.6.7 启动horizon 157
7.7 horizon配置参数 158
7.8 horizon最佳实践 159
7.8.1 创建系统服务 159
7.8.2 高可用配置 160
7.9 本章小结 161
第8章 搭建一个新的Stellar区块链网络 162
8.1 为什么需要? 162
8.2 网络方案设计 163
8.2.1 网络健壮性方案 163
8.2.2 服务健壮性方案 164
8.2.3 网络性能方案 165
8.2.4 历史归档方案 165
8.3 网络配置启动 166
8.3.1 stellar-core配置 166
8.3.2 启动stellar-core 168
8.3.3 启动后原生资产处理 168
8.3.4 horizon配置 168
8.4 关键代码定制 171
8.4.1 账户地址和Seed前缀修改 171
8.4.2 设置通货膨胀率 171
8.4.3 修改默认配置 172
8.4.4 创世区块修改 173
8.5 本章小结 175
第9章 系统集成 176
9.1 基础服务套件 176
9.2 联邦协议 177
9.2.1 工作原理 178
9.2.2 参考实现 181
9.3 桥接服务 182
9.3.1 工作原理 183
9.3.2 参考实现 183
9.4 合规协议 185
9.4.1 工作原理 185
9.4.2 参考实现 187
9.5 本章小结 188
后记 189
附录 术语中英文对照表 191