欢迎访问比特币_区块链-币链视界!

币链视界

区块链图书区块链原理设计与应用

发布时间:2021-02-23区块链应用评论
作者:杨保华/陈昌出版社:机械工业出版社/2017-8内容简介本书由超级账本核心设计和开发者撰写,是区块链开发落地专业指南。由浅入深,系统化介绍超级账本Fabric设计精华、应用开发等

作者:杨保华/陈昌

出版社:机械工业出版社/2017-8

内容简介本书由超级账本核心设计和开发者撰写,是区块链开发落地专业指南。由浅入深,系统化介绍超级账本Fabric设计精华、应用开发等。全书分为理论篇和实践篇两大部分;第1~3章介绍区块链技术的由来、核心思想及典型的应用场景;第4~5章重点介绍区块链技术中大量出现的分布式系统技术和密码学安全技术;第6~8章介绍区块链领域的三个典型开源项目:比特币、以太坊以及超级账本;第9~11章以超级账本Fabric项目为例,具体讲解了安装部署、配置管理,以及使用FabricCA进行证书管理的实践经验;第12章重点剖析超级账本Fabric项目的核心架构设计;第13章介绍区块链应用开发的相关技巧和示例;第14章介绍区块链服务平台的设计与开发,并讲解应用超级账本Cello项目构建服务平台的相关知识。本书覆盖了区块链和分布式账本领域的最新技术,可帮助读者深入理解区块链核心原理和典型设计实现,以及高效地开发基于区块链平台的分布式应用。作者简介杨保华,博士,毕业于清华大学。超级账本(Hyperledger)大中华区技术工作组主席,IBM大中华区Blockchain技术社区首席顾问,资深研究员。曾主持多个大规模系统平台的架构设计和研发实施,是区块链、云计算、大数据等技术的早期研究者和实践者。他热爱开源技术,曾贡献于OpenStack、OpenDaylight等开源项目,是超级账本Fabric项目的核心设计和开发者,Cello和Fabric-SDK-Py项目的发起人。陈昌,毕业于清华大学。纸贵科技CTO,曾任IBM高级研究员。技术方向包括云计算、区块链、机器学习等。他是区块链技术的早期研究和推动者,是超级账本(Hyperledger)项目的核心开发者。他有丰富的区块链应用实践经验,曾负责金融行业区块链解决方案的架构设计和实施,并主导开发了若干区块链服务平台。目录序言前言理论篇第1章区块链思想的诞生21.1从实体货币到数字货币21.2站在巨人的肩膀上51.3了不起的社会学实验51.4潜在的商业价值71.5本章小结8第2章核心技术概览92.1定义与原理92.2技术的演化与分类112.3关键问题和挑战132.4趋势与展望172.5认识上的误区192.6本章小结19第3章典型应用场景203.1应用场景概览203.2金融服务223.2.1银行业金融管理223.2.2证券交易243.2.3众筹投资253.3征信和权属管理263.4资源共享283.5贸易管理293.6物联网303.7其他场景313.8本章小结33第4章分布式系统核心问题344.1一致性问题344.1.1定义与重要性344.1.2问题与挑战354.1.3一致性要求364.1.4带约束的一致性364.2共识算法374.2.1问题与挑战384.2.2常见算法384.2.3理论界限384.3FLP不可能原理394.3.1定义394.3.2正确理解394.4CAP原理404.4.1定义404.4.2应用场景414.5ACID原则414.6Paxos算法与Raft算法424.6.1Paxos算法424.6.2Raft算法454.7拜占庭问题与算法454.8可靠性指标484.8.1几个9的指标484.8.2两个核心时间494.8.3提高可靠性494.9本章小结49第5章密码学与安全技术505.1Hash算法与数字摘要505.1.1Hash定义505.1.2常见算法515.1.3性能515.1.4数字摘要525.1.5Hash攻击与防护525.2加解密算法525.2.1加解密系统基本组成535.2.2对称加密算法535.2.3非对称加密算法545.2.4选择明文攻击555.2.5混合加密机制565.2.6离散对数与Diffie–Hellman密钥交换协议575.3消息认证码与数字签名575.3.1消息认证码585.3.2数字签名585.3.3安全性595.4数字证书595.4.1X.509证书规范605.4.2证书格式615.4.3证书信任链625.5PKI体系635.5.1PKI基本组件635.5.2证书的签发635.5.3证书的撤销665.6Merkle树结构665.7布隆过滤器675.8同态加密685.9其他问题705.10本章小结71第6章比特币——区块链思想诞生的摇篮726.1比特币项目简介726.1.1比特币大事记736.1.2其他数字货币746.2原理和设计756.2.1基本交易过程756.2.2重要概念766.2.3创新设计786.3挖矿806.3.1基本原理806.3.2挖矿过程816.3.3如何看待挖矿816.4共识机制826.4.1工作量证明826.4.2权益证明836.5闪电网络836.6侧链856.6.1SPV证明856.6.2双向挂钩866.6.3最新进展876.7热点问题876.7.1设计中的权衡876.7.2分叉876.7.3交易延展性886.7.4扩容之争896.7.5比特币的监管和追踪906.8相关工具916.9本章小结92第7章以太坊——挣脱数字货币的枷锁937.1以太坊项目简介937.1.1以太坊项目简史947.1.2主要特点957.2核心概念957.3主要设计977.3.1智能合约相关设计977.3.2交易模型977.3.3共识977.3.4降低攻击987.3.5提高扩展性987.4相关工具987.4.1客户端和开发库987.4.2以太坊钱包997.4.3IDE1007.4.4网站资源1007.5安装客户端1007.5.1从PPA直接安装1007.5.2从源码编译1017.6使用智能合约1027.6.1搭建测试用区块链1027.6.2创建和编译智能合约1047.6.3部署智能合约1057.6.4调用智能合约1067.7智能合约案例:投票1067.7.1智能合约代码1077.7.2代码解析1097.8本章小结111第8章超级账本——面向企业的分布式账本1128.1超级账本项目简介1128.2社区组织结构1148.2.1基本结构1148.2.2大中华区技术工作组1148.3顶级项目介绍1158.3.1Fabric项目1168.3.2Sawtooth项目1178.3.3Iroha项目1178.3.4BlockchainExplorer项目1178.3.5Cello项目1188.3.6Indy项目1188.3.7Composer项目1188.3.8Burrow项目1198.4开发必备工具1198.4.1LinuxFoundationID1198.4.2Jira——任务和进度管理1198.4.3Gerrit——代码仓库和Review管理1208.4.4RocketChat——在线沟通1218.5贡献代码1218.6本章小结126实践篇第9章超级账本Fabric部署和使用1289.1简介1289.2本地编译安装1299.2.1操作系统1309.2.2环境配置1309.2.3获取代码1319.2.4编译安装fabric-peer组件1319.2.5编译安装fabric-orderer组件1329.2.6编译安装fabric-ca组件1339.2.7编译安装辅助工具1339.2.8获取chaintool1339.2.9安装Go语言相关工具1349.2.10示例配置1349.3使用Docker镜像1349.3.1安装Docker服务1349.3.2安装docker-compose1359.3.3获取Docker镜像1359.3.4镜像Dockerfile1389.4启动Fabric网络1439.4.1网络拓扑1439.4.2准备相关配置文件1449.4.3启动Orderer节点1509.4.4启动Peer节点1519.4.5操作网络1529.4.6基于容器方式1569.5链码的概念与使用1579.5.1链码操作命令1589.5.2命令参数1589.5.3安装链码1599.5.4实例化链码1629.5.5调用链码1659.5.6查询链码1679.5.7升级链码1689.5.8打包链码和签名1699.6使用多通道1709.6.1通道操作命令1709.6.2命令选项1719.6.3创建通道1729.6.4加入通道1749.6.5列出所加入的通道1759.6.6获取某区块1769.6.7更新通道配置1779.7SDK支持1789.8生产环境注意事项1799.9本章小结181第10章超级账本Fabric配置管理18210.1简介18210.1.1配置文件18210.1.2配置管理工具18310.2Peer配置剖析18310.2.1logging部分18410.2.2peer部分18410.2.3vm部分18810.2.4chaincode部分18910.2.5ledger部分19010.3Orderer配置剖析19110.4cryptogen生成组织身份配置19410.4.1配置文件19510.4.2子命令和参数19610.4.3生成密钥和证书文件19610.4.4查看配置模板信息19810.5configtxgen生成通道配置19910.5.1configtx.yaml配置文件19910.5.2命令选项20310.5.3生成Orderer初始区块并进行查看20310.5.4生成新建通道交易文件并进行查看21110.5.5生成锚节点更新交易文件21510.6configtxlator转换配置21510.6.1RESTful接口21510.6.2解码为Json格式21610.6.3编码为二进制格式21710.6.4计算配置更新量21710.6.5更新通道配置21810.7本章小结219第11章超级账本FabricCA应用与配置22011.1简介22011.2安装服务端和客户端22111.2.1本地编译22111.2.2获取和使用Docker镜像22311.2.3示例Dockerfile22311.3启动CA服务22511.4服务端命令剖析22811.4.1全局命令参数22811.4.2init命令23011.4.3start命令23011.5服务端配置文件解析23111.6与服务端进行交互23511.7客户端命令剖析23711.7.1全局命令参数23711.7.2enroll命令23911.7.3getcacert命令24011.7.4reenroll命令24111.7.5register命令24111.7.6revoke命令24211.8客户端配置文件解析24311.9生产环境部署24511.10本章小结247第12章超级账本Fabric架构与设计24812.1整体架构概览24812.1.1核心特性24812.1.2整体架构24912.1.3典型工作流程24912.2核心概念与组件25112.2.1网络层相关组件25212.2.2共识相关组件25412.2.3权限管理相关组件25512.2.4业务层相关组件25712.3gRPC消息协议26212.3.1Envelope消息结构26212.3.2客户端访问Peer节点26312.3.3客户端、Peer节点访问Orderer26512.3.4链码容器和Peer节点之间的操作26512.3.5多个节点之间的操作26612.4权限管理和策略26712.4.1策略应用场景26712.4.2身份证书26812.4.3权限策略的实现26812.4.4通道策略27212.4.5背书策略27312.4.6实例化策略27312.5用户链码27412.5.1基本结构27412.5.2链码与Peer的交互过程27512.5.3链码处理状态机27712.6系统链码27912.7排序服务28112.7.1gRPC服务接口28212.7.2链和账本管理28312.7.3通道配置更新28412.7.4共识插件28612.8本章小结288第13章区块链应用开发29013.1简介29013.2链码的原理、接口与结构29213.2.1Chaincode接口29213.2.2链码结构29313.2.3链码基本工作原理29413.3链码开发API29513.3.1账本状态交互API29613.3.2交易信息相关API29613.3.3参数读取API29713.3.4其他API29713.4应用开发案例一:转账29813.4.1链码结构29813.4.2Init方法29913.4.3Invoke方法30013.5应用开发案例二:资产权属管理30113.5.1链码结构30113.5.2Invoke方法30313.6应用开发案例三:调用其他链码31213.7应用开发案例四:发送事件31313.8开发最佳实践小结31413.9本章小结316第14章区块链服务平台设计31714.1简介31714.1.1参考架构31814.1.2考量指标31814.2IBMBluemix云区块链服务31914.3微软Azure云区块链服务32114.4使用超级账本Cello搭建区块链服务32414.4.1基本架构和特性32414.4.2环境准备32514.4.3下载Cello源码32514.4.4配置Worker节点32514.4.5配置Master节点32614.4.6使用Cello管理区块链32714.4.7基于Cello进行功能扩展33014.5本章小结330附录附录A术语表334附录B常见问题解答338附录CGolang开发相关342附录DProtoBuf与gRPC349附录E参考资源353相关书籍区块链图书|《区块链革命》区块链图书|《区块链技术驱动金融》区块链图书|《区块链:从数字货币到信用社会》区块链图书|《区块链:定义未来金融与经济新格局》

广告位

热心评论

评论列表