热搜关键词: 模拟电子usb51单片机PLC开关电源

pdf

区块链原理_设计与应用_杨保华,_陈昌

  • 1星
  • 2023-01-31
  • 30.77MB
  • 需要1积分
  • 3次下载
  • favicon收藏
  • rep举报
  • free评论
标签: 区块链

区块链

本书由超级账本核心设计和开发者撰写,是区块链开发落地专业指南。由浅入深,系统化介绍超级账本Fabric设计精华、应用开发等。

全书分为理论篇和实践篇两大部分;第1~3章介绍区块链技术的由来、核心思想及典型的应用场景;第4~5章重点介绍区块链技术中大量出现的分布式系统技术和密码学安全技术;第6~8章介绍区块链领域的三个典型开源项目:比特币、以太坊以及超级账本;第9~11章以超级账本  Fabric  项目为例,具体讲解了安装部署、配置管理,以及使用  Fabric  CA  进行证书管理的实践经验;第12章重点剖析超级账本  Fabric  项目的核心架构设计;第13章介绍区块链应用开发的相关技巧和示例;第14章介绍区块链服务平台的设计与开发,并讲解应用超级账本  Cello  项目构建服务平台的相关知识。

本书覆盖了区块链和分布式账本领域的最新技术,可帮助读者深入理解区块链核心原理和典型设计实现,以及高效地开发基于区块链平台的分布式应用。

序 言

前 言

理 论 篇

第1章 区块链思想的诞生 2

1.1 从实体货币到数字货币 2

1.2 站在巨人的肩膀上 5

1.3 了不起的社会学实验 5

1.4 潜在的商业价值 7

1.5 本章小结 8

第2章 核心技术概览 9

2.1 定义与原理 9

2.2 技术的演化与分类 11

2.3 关键问题和挑战 13

2.4 趋势与展望 17

2.5 认识上的误区 19

2.6 本章小结 19

第3章 典型应用场景 20

3.1 应用场景概览 20

3.2 金融服务 22

3.2.1 银行业金融管理 22

3.2.2 证券交易 24

3.2.3 众筹投资 25

3.3 征信和权属管理 26

3.4 资源共享 28

3.5 贸易管理 29

3.6 物联网 30

3.7 其他场景 31

3.8 本章小结 33

第4章 分布式系统核心问题 34

4.1 一致性问题 34

4.1.1 定义与重要性 34

4.1.2 问题与挑战 35

4.1.3 一致性要求 36

4.1.4 带约束的一致性 36

4.2 共识算法 37

4.2.1 问题与挑战 38

4.2.2 常见算法 38

4.2.3 理论界限 38

4.3 FLP  不可能原理 39

4.3.1 定义 39

4.3.2 正确理解 39

4.4 CAP  原理 40

4.4.1 定义 40

4.4.2 应用场景 41

4.5 ACID  原则 41

4.6 Paxos  算法与  Raft  算法 42

4.6.1 Paxos  算法 42

4.6.2 Raft  算法 45

4.7 拜占庭问题与算法 45

4.8 可靠性指标 48

4.8.1 几个  9  的指标 48

4.8.2 两个核心时间 49

4.8.3 提高可靠性 49

4.9 本章小结 49

第5章 密码学与安全技术 50

5.1 Hash  算法与数字摘要 50

5.1.1 Hash定义 50

5.1.2 常见算法 51

5.1.3 性能 51

5.1.4 数字摘要 52

5.1.5 Hash  攻击与防护 52

5.2 加解密算法 52

5.2.1 加解密系统基本组成 53

5.2.2 对称加密算法 53

5.2.3 非对称加密算法 54

5.2.4 选择明文攻击 55

5.2.5 混合加密机制 56

5.2.6 离散对数与  Diffie–Hellman密钥交换协议 57

5.3 消息认证码与数字签名 57

5.3.1 消息认证码 58

5.3.2 数字签名 58

5.3.3 安全性 59

5.4 数字证书 59

5.4.1 X.509  证书规范 60

5.4.2 证书格式 61

5.4.3 证书信任链 62

5.5 PKI  体系 63

5.5.1 PKI  基本组件 63

5.5.2 证书的签发 63

5.5.3 证书的撤销 66

5.6 Merkle树结构 66

5.7 布隆过滤器 67

5.8 同态加密 68

5.9 其他问题 70

5.10 本章小结 71

第6章 比特币——区块链思想诞生的摇篮 72

6.1 比特币项目简介 72

6.1.1 比特币大事记 73

6.1.2 其他数字货币 74

6.2 原理和设计 75

6.2.1 基本交易过程 75

6.2.2 重要概念 76

6.2.3 创新设计 78

6.3 挖矿 80

6.3.1 基本原理 80

6.3.2 挖矿过程 81

6.3.3 如何看待挖矿 81

6.4 共识机制 82

6.4.1 工作量证明 82

6.4.2 权益证明 83

6.5 闪电网络 83

6.6 侧链 85

6.6.1 SPV  证明 85

6.6.2 双向挂钩 86

6.6.3 最新进展 87

6.7 热点问题 87

6.7.1 设计中的权衡 87

6.7.2 分叉 87

6.7.3 交易延展性 88

6.7.4 扩容之争 89

6.7.5 比特币的监管和追踪 90

6.8 相关工具 91

6.9 本章小结 92

第7章 以太坊——挣脱数字货币的枷锁 93

7.1 以太坊项目简介 93

7.1.1 以太坊项目简史 94

7.1.2 主要特点 95

7.2 核心概念 95

7.3 主要设计 97

7.3.1 智能合约相关设计 97

7.3.2 交易模型 97

7.3.3 共识 97

7.3.4 降低攻击 98

7.3.5 提高扩展性 98

7.4 相关工具 98

7.4.1 客户端和开发库 98

7.4.2 以太坊钱包 99

7.4.3 IDE 100

7.4.4 网站资源 100

7.5 安装客户端 100

7.5.1 从  PPA  直接安装 100

7.5.2 从源码编译 101

7.6 使用智能合约 102

7.6.1 搭建测试用区块链 102

7.6.2 创建和编译智能合约 104

7.6.3 部署智能合约 105

7.6.4 调用智能合约 106

7.7 智能合约案例:投票 106

7.7.1 智能合约代码 107

7.7.2 代码解析 109

7.8 本章小结 111

第8章 超级账本——面向企业的分布式账本 112

8.1 超级账本项目简介 112

8.2 社区组织结构 114

8.2.1 基本结构 114

8.2.2 大中华区技术工作组 114

8.3 顶级项目介绍 115

8.3.1 Fabric  项目 116

8.3.2 Sawtooth  项目 117

8.3.3 Iroha  项目 117

8.3.4 Blockchain  Explorer  项目 117

8.3.5 Cello  项目 118

8.3.6 Indy  项目 118

8.3.7 Composer  项目 118

8.3.8 Burrow  项目 119

8.4 开发必备工具 119

8.4.1 Linux  Foundation  ID 119

8.4.2 Jira——任务和进度管理 119

8.4.3 Gerrit——代码仓库和  Review管理 120

8.4.4 RocketChat——在线沟通 121

8.5 贡献代码 121

8.6 本章小结 126

实 践 篇

第9章 超级账本  Fabric  部署和使用 128

9.1 简介 128

9.2 本地编译安装 129

9.2.1 操作系统 130

9.2.2 环境配置 130

9.2.3 获取代码 131

9.2.4 编译安装  fabric-peer  组件 131

9.2.5 编译安装  fabric-orderer  组件 132

9.2.6 编译安装  fabric-ca  组件 133

9.2.7 编译安装辅助工具 133

9.2.8 获取  chaintool 133

9.2.9 安装Go语言相关工具 134

9.2.10 示例配置 134

9.3 使用  Docker  镜像 134

9.3.1 安装  Docker  服务 134

9.3.2 安装  docker-compose 135

9.3.3 获取  Docker  镜像 135

9.3.4 镜像  Dockerfile 138

9.4 启动  Fabric  网络 143

9.4.1 网络拓扑 143

9.4.2 准备相关配置文件 144

9.4.3 启动  Orderer  节点 150

9.4.4 启动  Peer  节点 151

9.4.5 操作网络 152

9.4.6 基于容器方式 156

9.5 链码的概念与使用 157

9.5.1 链码操作命令 158

9.5.2 命令参数 158

9.5.3 安装链码 159

9.5.4 实例化链码 162

9.5.5 调用链码 165

9.5.6 查询链码 167

9.5.7 升级链码 168

9.5.8 打包链码和签名 169

9.6 使用多通道 170

9.6.1 通道操作命令 170

9.6.2 命令选项 171

9.6.3 创建通道 172

9.6.4 加入通道 174

9.6.5 列出所加入的通道 175

9.6.6 获取某区块 176

9.6.7 更新通道配置 177

9.7 SDK  支持 178

9.8 生产环境注意事项 179

9.9 本章小结 181

第10章 超级账本  Fabric  配置管理 182

10.1 简介 182

10.1.1 配置文件 182

10.1.2 配置管理工具 183

10.2 Peer  配置剖析 183

10.2.1 logging部分 184

10.2.2 peer部分 184

10.2.3 vm部分 188

10.2.4 chaincode部分 189

10.2.5 ledger部分 190

10.3 Orderer  配置剖析 191

10.4 cryptogen  生成组织身份配置 194

10.4.1 配置文件 195

10.4.2 子命令和参数 196

10.4.3 生成密钥和证书文件 196

10.4.4 查看配置模板信息 198

10.5 configtxgen  生成通道配置 199

10.5.1 configtx.yaml配置文件 199

10.5.2 命令选项 203

10.5.3 生成Orderer初始区块并进行查看 203

10.5.4 生成新建通道交易文件并进行查看 211

10.5.5 生成锚节点更新交易文件 215

10.6 configtxlator  转换配置 215

10.6.1 RESTful接口 215

10.6.2 解码为Json格式 216

10.6.3 编码为二进制格式 217

10.6.4 计算配置更新量 217

10.6.5 更新通道配置 218

10.7 本章小结 219

第11章 超级账本  Fabric  CA  应用与配置 220

11.1 简介 220

11.2 安装服务端和客户端 221

11.2.1 本地编译 221

11.2.2 获取和使用Docker镜像 223

11.2.3 示例Dockerfile 223

11.3 启动  CA  服务 225

11.4 服务端命令剖析 228

11.4.1 全局命令参数 228

11.4.2 init命令 230

11.4.3 start命令 230

11.5 服务端配置文件解析 231

11.6 与服务端进行交互 235

11.7 客户端命令剖析 237

11.7.1 全局命令参数 237

11.7.2 enroll命令 239

11.7.3 getcacert命令 240

11.7.4 reenroll命令 241

11.7.5 register命令 241

11.7.6 revoke命令 242

11.8 客户端配置文件解析 243

11.9 生产环境部署 245

11.10 本章小结 247

第12章 超级账本  Fabric  架构与设计 248

12.1 整体架构概览 248

12.1.1 核心特性 248

12.1.2 整体架构 249

12.1.3 典型工作流程 249

12.2 核心概念与组件 251

12.2.1 网络层相关组件 252

12.2.2 共识相关组件 254

12.2.3 权限管理相关组件 255

12.2.4 业务层相关组件 257

12.3 gRPC  消息协议 262

12.3.1 Envelope消息结构 262

12.3.2 客户端访问Peer节点 263

12.3.3 客户端、Peer节点访问Orderer 265

12.3.4 链码容器和Peer节点之间的操作 265

12.3.5 多个节点之间的操作 266

12.4 权限管理和策略 267

12.4.1 策略应用场景 267

12.4.2 身份证书 268

12.4.3 权限策略的实现 268

12.4.4 通道策略 272

12.4.5 背书策略 273

12.4.6 实例化策略 273

12.5 用户链码 274

12.5.1 基本结构 274

12.5.2 链码与Peer的交互过程 275

12.5.3 链码处理状态机 277

12.6 系统链码 279

12.7 排序服务 281

12.7.1 gRPC服务接口 282

12.7.2 链和账本管理 283

12.7.3 通道配置更新 284

12.7.4 共识插件 286

12.8 本章小结 288

第13章 区块链应用开发 290

13.1 简介 290

13.2 链码的原理、接口与结构 292

13.2.1 Chaincode接口 292

13.2.2 链码结构 293

13.2.3 链码基本工作原理 294

13.3 链码开发  API 295

13.3.1 账本状态交互API 296

13.3.2 交易信息相关API 296

13.3.3 参数读取API 297

13.3.4 其他API 297

13.4 应用开发案例一:转账 298

13.4.1 链码结构 298

13.4.2 Init方法 299

13.4.3 Invoke方法 300

13.5 应用开发案例二:资产权属管理 301

13.5.1 链码结构 301

13.5.2 Invoke方法 303

13.6 应用开发案例三:调用其他链码 312

13.7 应用开发案例四:发送事件 313

13.8 开发最佳实践小结 314

13.9 本章小结 316

第14章 区块链服务平台设计 317

14.1 简介 317

14.1.1 参考架构 318

14.1.2 考量指标 318

14.2 IBM  Bluemix  云区块链服务 319

14.3 微软  Azure  云区块链服务 321

14.4 使用超级账本  Cello  搭建区块链服务 324

14.4.1 基本架构和特性 324

14.4.2 环境准备 325

14.4.3 下载Cello源码 325

14.4.4 配置Worker节点 325

14.4.5 配置Master节点 326

14.4.6 使用Cello管理区块链 327

14.4.7 基于Cello进行功能扩展 330

14.5 本章小结 330

附  录

附录A 术语表 334

附录B 常见问题解答 338

附录C Golang  开发相关 342

附录D ProtoBuf  与  gRPC 349

附录E 参考资源 353

推荐帖子 最新更新时间:2023-03-19 14:51

测评周报20220110:比BLE方便、NFC灵活,适合大数据的新鲜货ST60 实测&申请最后2天
本周测评周报看点: -申请近2天结束:体验ST直播新鲜货,大数据短距&隔空传递神器ST60;国民技术M4内核热销款MCU -资源丰富&价值高的:米尔基于NXP第一颗带NPU套件MYC-JX8MPQ(价值1880元)、平头哥Sipeed LicheeRV 86开发板(价值440元) -号外:兆易节能“芯”品测评GD32L233C进行中 -号外:官方售价$9.9的Silicon
EEWORLD社区 测评中心专版
接种疫苗运输也是关键啊~一起看看 国产芯复旦微MCU+双频测温RFID标签方案
坛子里的工程师,最近大家是不是都在风风火火接种疫苗?工程师们有没有注意到疫苗的运输环节? 由于灭活疫苗对温度极为敏感,全程冷链运输的储存温度需保证在2℃-8℃范围内,以保证疫苗的稳定性和抗原性。如何在运输和储存过程中采集和监控温度记录以确保疫苗品质,从而确保冷链物流全程温度可视化呢?一起来看看复旦微电子的解决方案吧!   搭载复旦微电子MCU的冷链数据记录仪 冷链数据记录仪
nmg 国产芯片交流
请教一下关于液晶屏SEG段的电压问题
看了一段资料,内容如下:                                         图2   根据单片机的特性,采用1/2偏压,1/2占空比方法驱动LCD,现以COM=2,SEG=4的LCD为例:LCD屏共有8个像素,公共极有2极,字符段为4段。   公共极信号产生的波形如图3所示。 从图3可看出,公共极信号发生可分成4个阶段S0、S1、S
深圳小花 单片机
【NXP Rapid IoT评测】第二周 熟悉在线GUI之Rapid IoT Studio
关于注册:打开Rapid IoT Studio的前提是在NXP英文网站进行注册,之前在中文网站和digikey官网注册的账号是无效的。需要重新注册 注册a MyDigi-Key account之后,依照《快速物联网原型设计工具用户指南》文档的指导,在展开的界面上就可以快速的新建或者打开项目啦。 关于按键:IoT测评套件的按键共有5个,4个分别在左右两侧,1个在背面。 关于更新IoT固件:更新
dwwzl RF/无线
【全套资料】WRTnode 2P 开源OpenWrt开发板
【全套资料】WRTnode 2P 开源OpenWrt开发板WRTnode2P 简介最小的标准接口尺寸,惊喜的价格,完善的软件支持,丰富的资料和社区。 WRTnode史上最精美的开源硬件,有颜值,有质感,I.o.T的新时代 极小型WiFi及Linux模块in NGFF M.2 as 22*42mmMTK MT7628AN: 802.11n 2*2, 580Mhz128MB DDR2ram16
qmyks DIY/开源硬件专区
IAR5.2 遇上的问题,还请大家指教
本帖最后由 hanwenli123 于 2015-7-24 10:58 编辑 本想将程序定位到一个固定地址,于是在149.XCL中设置了UPDATACODE地址范围,但是在编译之后程序并不在指定地址,而且调试还会有问题,总是提示某某地址不存在两次确定之后软件也会关闭,这是什么原因 1.jpg是在149.XCL中的修改 但是在内在中却是这样,我用的是虚拟仿真看的flash却是2.jpg的情况
hanwenli123 微控制器 MCU
本周deyisupport精彩博文推荐
能量采集的秘诀:树懒和熊 工业4.0是一个术语,描述了虚实融合系统对工厂产生革命性影响的展望。在近期的一篇与这个概念有关的德文文章中,我讨论了到目前为止,工业革命如何成为全新数据管理与新能源支配和使用的组合产物—而正是这个能量采集为工业4.0的运行提供了源源不断的动力>>>更多 用MSP432根除软件故障 调试大型软件程序始终是一项具有挑战性的工作;通常情况下,很难知道从哪儿入
eric_wang DSP 与 ARM 处理器
我无耻的来开一帖,15电赛D题
经过12小时的奋战终于搞定了,不是一个,,,,是6套。。。。什么叫枪手,这就是枪手哈哈,,,,, 资料还没有整理没法上传,不好意思了,明天就出差去了,,,,, 上几张我测试的指标吧,给大家养养眼。。。。有个我没有做,我没有做显示的部分和键盘输入地方,这个我手里也没有单片机。也没有板子,射频的部分指标几乎全部实现。 今年做庆幸的就是呗我赌中了D题,哈哈,,,,
RF-刘海石 电子竞赛

评论

G986
谢谢楼主的分享!
2023-02-02 12:53:11
登录/注册

意见反馈

求资源

回顶部
查找数据手册?

EEWorld Datasheet 技术支持

热门活动

相关视频

可能感兴趣器件

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
×