新書推薦:
《
姑苏繁华图
》
售價:NT$
3190.0
《
人的消逝:从原子弹、互联网到人工智能
》
售價:NT$
484.0
《
想象的共同体--民族主义的起源与散布(增订版)
》
售價:NT$
352.0
《
医学图形图像处理基于Python VTK的实现
》
售價:NT$
760.0
《
山家清供:小楷插图珍藏本 谦德国学文库系列
》
售價:NT$
653.0
《
政略与战略论
》
售價:NT$
638.0
《
百年词史-(1900-2000(全二册))
》
售價:NT$
1520.0
《
RDI人际关系发展疗法:修复孤独症核心障碍,让干预回归生活
》
售價:NT$
454.0
|
編輯推薦: |
从技术层面详解区块链平台使用方案
系统讲解HyperLedger Fabric开源架构的核心概念、架构、实现原理和应用开发
作者结合实践经验,深度解析常见开发陷阱,并给出具体解决方案,让初学者少走弯路
手把手引导开发成功落地,以案例为引,从单机单节点到Solo多机组网再到Kafka集群部署,层层深入,教你顺利搭建一个完整的区块链项目
通过典型案例进行实战演练,每一步均基于真实情况和场景中的操作,真实还原生产场景
|
內容簡介: |
《HyperLedger Fabric开发实战快速掌握区块链技术》系统地介绍了超级账本HyperLedger Fabric v1.1 架构的设计和应用方法,包括环境及源码部署、Solo 多机部署、Kafka 集群部署、智能合约编写等。同时,针对第三方可插拔式插件CouchDB 实战应用,Java-SDK 的应用、编写方案和具体接口执行策略进行了详细讲解。另外,本书以搭建一个反欺诈区块链平台项目为例进行了实战演练,读者可以快速掌握区块链技术。
《HyperLedger Fabric开发实战快速掌握区块链技术》适合区块链系统开发人员阅读,需要有一定的面向对象语言的基础,也可供对开发区块链系统感兴趣的高校师生参考。
|
關於作者: |
先后在信而富和泰康在线担任高级软件工程师及系统开发主管,现任职玖富集团技术专家。有10年的移动端项目及JAVA后台开发和架构经验并获得过多项专利。专注于区块链应用、互联网金融及移动互联网等方向。
|
目錄:
|
第1章 基本环境部署 1
1.1 环境整理 1
1.2 Docker安装 2
1.2.1 卸载旧版本 3
1.2.2 在线安装Docker CE 3
1.2.3 离线安装Docker CE 5
1.2.4 Docker启动及常用命令 5
1.3 Docker-Compose安装 6
1.3.1 在线安装Docker-Compose 6
1.3.2 离线安装Docker-Compose 7
1.4 Go语言环境安装 8
1.4.1 下载Go语言包 8
1.4.2 配置Go语言环境变量 9
1.5 本章小结 9
第2章 Fabric及环境部署 10
2.1 Fabric介绍 10
2.1.1 什么是区块链 10
2.1.2 区块链的作用 12
2.1.3 超级账本是什么 14
2.2 Fabric功能汇总 16
2.3 Fabric组成模型 17
2.3.1 资产 18
2.3.2 智能合约 18
2.3.3 账本特征 18
2.3.4 隐私频道 19
2.3.5 成员安全性 20
2.3.6 共识机制 20
2.4 Fabric环境部署 20
2.4.1 Fabric源码安装 20
2.4.2 下载Fabric镜像 22
2.4.3 镜像备份和迁移 26
2.5 本章小结 28
第3章 End-2-End案例 29
3.1 平台特定文件 29
3.2 运行e2e_cli 31
3.3 e2e_cli案例分析 38
3.3.1 容器服务脚本 38
3.3.2 容器启动配置文件 52
3.3.3 Fabric网络解析 55
3.4 本章小结 62
第4章 部署单机多节点网络 64
4.1 生成证书文件 65
4.2 部署Orderer节点 69
4.3 部署peer0.org1节点 70
4.4 搭建Fabric网络 75
4.5 初步接触智能合约 78
4.6 部署peer0.org2节点 84
4.7 本章小结 88
第5章 Solo多机部署 89
5.1 网络拓扑 89
5.2 部署Orderer节点 91
5.3 部署peer0.org1节点 92
5.4 部署peer1.org1节点 97
5.5 部署peer0.org2节点 101
5.6 本章小结 107
第6章 Kafka集群部署 108
6.1 Fabric账本 108
6.2 事务处理流程 110
6.2.1 客户端发起事务 111
6.2.2 验证签名并执行事务 112
6.2.3 检查返回协议 112
6.2.4 客户端将背书合并到交易中 113
6.2.5 提交并验证事务 113
6.2.6 账本更新 114
6.3 读写集规则 114
6.4 Kafka集群配置 116
6.4.1 crypto-config.yaml配置 119
6.4.2 configtx配置 121
6.4.3 Zookeeper配置 125
6.4.4 Kafka配置 127
6.4.5 Orderer配置 132
6.5 启动集群 138
6.5.1 启动Zookeeper集群 138
6.5.2 启动Kafka集群 140
6.5.3 启动Orderer集群 144
6.6 集群环境测试 146
6.7 本章小结 158
第7章 智能合约 159
7.1 智能合约概述 159
7.2 背书策略 160
7.3 使用智能合约 161
7.3.1 智能合约是什么 161
7.3.2 智能合约的生命周期 161
7.3.3 Packaging(包) 162
7.3.4 创建package(包) 162
7.3.5 包签名(Package signing) 163
7.3.6 安装智能合约 164
7.3.7 智能合约实例化 164
7.3.8 升级智能合约 165
7.3.9 停止及启动智能合约 166
7.3.10 CLI(客户端) 166
7.3.11 系统智能合约 168
7.4 编写智能合约 168
7.4.1 开发人员眼中的智能合约 168
7.4.2 智能合约接口 169
7.4.3 一个简单的资产智能合约 169
7.5 加密智能合约 178
7.6 系统合约插件 180
7.7 智能合约API 182
7.8 Peer节点与合智能约 184
7.8.1 安装智能合约 185
7.8.2 实例化智能合约 187
7.8.3 调用智能合约 188
7.8.4 列出智能合约 190
7.8.5 打包智能合约 191
7.8.6 查询智能合约 192
7.8.7 签名智能合约包 193
7.8.8 升级智能合约 194
7.9 本章小结 196
第8章 CouchDB 197
8.1 CouchDB介绍 197
8.2 启动部署 201
8.3 索引应用 206
8.4 查询应用 216
8.5 选择器语法 218
8.5.1 基本语法 218
8.5.2 嵌套对象 219
8.5.3 运算符 219
8.5.4 隐式运算符 220
8.5.5 显示运算符 222
8.6 本章小结 226
第9章 Java-SDK客户端 227
9.1 SDK项目前置条件 227
9.2 SDK代码使用 232
9.2.1 Orderers对象 233
9.2.2 Peers对象 235
9.2.3 Chaincode对象 238
9.2.4 FabricUser 240
9.2.5 FabricStore 245
9.2.6 FabricOrg 250
9.2.7 FabricConfig 256
9.2.8 ChaincodeManager 257
9.3 SDK使用方法 264
9.4 本章小结 269
第10章 项目演练 270
10.1 反欺诈系统 271
10.1.1 需求分析 271
10.1.2 编写合约 272
10.1.3 线上验证 278
10.3 本章小结 283
|
內容試閱:
|
HyperLedger Fabric最初是由Digital Asset和IBM公司贡献的、由Linux基金会主办的一个超级账本项目,它是一个目前非常流行并广为人知的区块链网络框架的实现方案。作为一种基于模块化架构开发应用程序或解决方案的基础,HyperLedger Fabric支持如共识和会员服务等即插即用的组件。HyperLedger Fabric利用容器技术来运行称为chaincode的智能合约,该合约包含了系统的应用程序逻辑。
为什么写作本书
区块链由于去中心化、开放性、自治性、信息不可篡改及匿名性等特征而受到广泛关注,且目前正处在上升势态。抛开炒作的代币项目,应用于行业联盟链或直接搭建私链的项目,采用HyperLedger Fabric作为底层平台无疑是最好的选择之一。
本人从接触HyperLedger Fabric项目以来,经历了其0.6版本到1.1版本的数次迭代。因为早期中文资料稀缺,并且0.6版本到1.0版本是一个跨度非常大的迭代,导致早期的大部分部署和应用经验失去作用,不得已再次从1.0版本开始从头学习。当时中文资料极为有限,且大多数都是单篇翻译或纯粹的概念讲解,导致我一直没有找到入门的头绪,只能不断地从官方文档中汲取知识,并成功搭建了基于Kafka类型的集群网络。
有了集群的经验,加深了自己对HyperLedger Fabric整个网络事务流程的理解,并以此为基础顺利搭建了基于Fabric-SDK-Java的客户端项目。也就在这个时候,开始有了写相关博客的想法,并在博客园上发布了第一篇博客,也是从零开始系列文章的第一篇,开始介绍自己的开发历程和部署经验,希望能通过这样的方式帮助更多的开发伙伴加入HyperLedger Fabric大家庭。再后来又建立了区块链学习分享的微信订阅号,也通过微信号建立了一个纯技术讨论分享的HyperLedger Fabric等区块链相关交流群,并在这样的机缘下结识了电子工业出版社宋亚东老师,并正式开始编写本书。
在写书之前我一直在梳理博客的内容,为了真实地还原生产场景,还自费租赁了15台服务器用于测试。在已有博文的基础上,外加后来编写的新文档,我比较顺利地完成了本书的编写工作,且书中的项目都依托于所租赁服务器来完成演练,每一步都基于真实情况和场景中的操作。在此过程中,自己对HyperLedger Fabric也有了新的认识和理解。
本书主要以HyperLedger Fabric案例为引,层层深入,从单机单节点到Solo多机组网再到Kafka集群部署,其中穿插文档讲解加深读者的理解。与一些偏概念性质的区块链教程类书籍不同,我希望能通过本书帮助读者实现基于HyperLedger Fabric的区块链实践落地。
本书主要内容
本书以干货为主,文档为辅,基于HyperLedger Fabric v1.1版本进行讲解。总计10章,每章主要内容介绍如下:
第1章是基本环境部署,包括内网和外网的不同方案,以及内核处理等。
第2章是HyperLedger Fabric及环境部署,先是用文档讲述了Fabric相关的介绍和主要功能点,接着分析了源码部署和镜像处理方面的问题。
第3章带着读者一步步跑通官方的e2e_cli案例,并在随后对该案例进行了分析。
第4章开始,手动部署一次单机多节点网络。
第5章跟随前章的脚步,手动部署一次Solo多机网络环境。
第6章继续深入,搭建基于Kafka的集群网络。
第7章以文档为主,着重讲解如何编写智能合约及有关智能合约的用法。
第8章详细介绍CouchDB的使用,并推荐使用CouchDB。
第9章讲解在Fabric发布1.0版本之后的对外客户端调用方式、客户端对SDK的使用和相关源码。
第10章以一个简单的案例做演练,在数据链上用到了智能合约,对数据提取则提供了另一种思路。
读者对象
这是一本基础讲解类的书,写本书是为了帮助更多的新人入门。所以,本书适合正在寻求HyperLedger Fabric入门的新人阅读,也适合中、高级开发人员用作工具书参考。
在阅读本书之前,读者需要具备以下基础知识:
具有一定的Linux操作系统基本命令的常识。
有JavaGo等面向对象语言的基础,其中智能合约用Go语言编写,SDK则用到了Java。如果有这方面的基础,则有助于阅读本书。
致谢
在入门及编写本书的时候,有许多人给予了我鼓励和支持。
首先感谢我的妻子,我在开始学习HyperLedger Fabric时遇到了很多困难,经常熬夜加班,她始终体谅我,鼓励并支持我。在我写书的时候她不遗余力地帮我查阅相关资料以便我能够更顺利地完成书稿。
我还要感谢我的领导,也是我的好友王海林,正是他给了我研究学习HyperLedger Fabric的机会,并在我遇到困难时帮我逐条分析,厘清思路。他也给予了我在公司最大限度的研发条件和时间,让我在最短的时间里完成了一次自我蜕变。
我还要感谢电子工业出版社的宋亚东老师,感谢他一直以来对我的支持和鼓励,感谢在我早期编写书稿的过程中对内容的编排和规范给予了很多帮助。也感谢电子工业出版社所有参与本书出版工作的老师,是你们的辛勤付出让本书成功出版。
最后,我要感谢我博客的读者及微信群里的朋友们,正是与你们一次次地沟通和探讨,让我不断提升自我,也鞭策我不断前行。
由于我水平有限,书中不足及错误之处在所难免,敬请专家和读者给予批评指正。
杨毅
2018年5月
|
|