| 作者 |
| 袁钧涛 袁煜明 |
| 丛书名 |
| 区块链技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782008181181 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------区块链应用开发实战--------------------------- 区块链正在进入一个爆炸式发展的时期,真实应用在多个行业并获得了强劲的动力,加密货币也在整个金融领域获得了更多的认可。对于技术人员来说,无论是技术研究还是商业探索,区块链都是最有吸引力的方向之一。基于当今最先进和最健壮的区块链编程模型和架构模型,本书为构建区块链应用提供了实用指南。 ---------------------------区块链技术进阶指南--------------------------- 本书从区块链发展简史、账本模型、网络、共识、合约引擎及应用等多个方面进行系统介绍,希望帮助对区块链有一些初步概念而想深入了解各类区块链平台背后所使用技术的读者,梳理出区块链分层的技术图谱,建立起一个区块链的全局性知识模型。 本书第1章主要介绍区块链技术的前世今生;第2章介绍区块链技术的总体架构;第3~7章分别介绍区块链的账本模型与底层存储、点对点网络的设计与实现、共识原理及常见算法、合约引擎的实现方式、区块链技术应用与生态等。 |
| 目录 |
---------------------------区块链应用开发实战--------------------------- 推荐序一 推荐序二 网络先行,应用为王 译者序 Web3,区块链后花园的姹紫嫣红 致谢 第一部分 区块链入门 第1章 区块链简介 2 1.1 区块链 2 1.2 协作账本 3 1.3 加密数字货币 4 1.4 智能合约 5 1.5 免信任网络 5 1.6 新的协作方式 6 1.7 胖协议 6 1.8 我们相信代码 7 1.9 本章小结 8 第2章 达成共识 9 2.1 什么是区块链共识 9 2.2 PoW 10 2.3 PoS 10 2.4 DPoS 12 2.5 本章小结 12 第3章 第一个区块链应用 13 3.1 智能合约 14 3.2 前端的HTML 17 3.3 JavaScript和web3.js 18 3.4 实战 18 3.5 分享Dapp 19 3.6 本章小结 20 第二部分 走近以太坊 第4章 以太坊入门 22 4.1 BUIDL方式 23 4.2 BUIDL简易开发 25 4.3 本章小结 35 第5章 概念与工具 36 5.1 以太坊钱包和基本概念 36 5.2 Etherscan 38 5.3 TestRPC 39 5.4 通过GETH与以太坊交互 41 5.5 通过Web3与以太坊交互 42 5.6 运行一个以太坊节点 43 5.7 运行一个私有以太坊网络 44 5.8 本章小结 45 第6章 智能合约 46 6.1 重温“Hello,World!” 46 6.2 学习智能合约编程 48 6.3 构建和部署智能合约 50 6.4 调用智能合约函数 55 6.5 一种新语言 59 6.6 更多智能合约语言 61 6.7 本章小结 62 第7章 Dapp 63 7.1 Dapp软件栈 64 7.2 Dapp示例 66 7.3 本章小结 68 第8章 Dapp的替代方案 69 8.1 JavaScript 69 8.2 Python及其他 73 8.3 本章小结 74 第三部分 深入以太坊 第9章 以太坊揭秘 76 9.1 什么是区块链状态 76 9.2 以太坊的状态 78 9.3 前缀树(或树) 80 9.4 以太坊的前缀树结构 83 9.5 分析以太坊数据库 85 9.6 本章小结 88 第10章 区块链数据服务 89 10.1 区块链浏览器 89 10.2 收集数据 93 10.3 查询接口 99 10.4 下一步是什么 103 10.5 本章小结 104 第11章 智能合约搜索引擎 105 11.1 智能合约搜索引擎简介 105 11.2 开始使用智能合约搜索引擎 107 11.3 FairPlay Dapp示例 111 11.4 用例 114 11.5 本章小结 115 第12章 智能合约的安全性和最佳实践 116 12.1 以太坊智能合约的重大非法入侵和漏洞 116 12.2 智能合约安全的最佳实践 123 12.3 本章小结 125 第13章 以太坊的未来 126 13.1 以太坊1.0 127 13.2 超越以太坊1.0 130 13.3 以太坊2.0 133 13.4 以太坊2.0的交付阶段 134 13.5 后以太坊2.0的创新 135 13.6 本章小结 135 第四部分 构建应用协议 第14章 扩展以太坊协议 138 14.1 完全兼容,但更快捷 139 14.2 EVM的智能增强 139 14.3 安全第一 144 14.4 本章小结 144 第15章 扩展以太坊工具 145 15.1 智能合约工具集 146 15.2 Dapp工具集 152 15.3 本章小结 156 第16章 Dapp案例 157 16.1 案例研究1:Valentines 157 16.2 案例研究2:WeBet 161 16.3 本章小结 177 第17章 业务规则与合约 178 17.1 一个示例 179 17.2 规则语言 181 17.3 更多业务示例 185 17.4 本章小结 188 第18章 构建特定于应用的EVM 189 18.1 使用libENI函数 190 18.2 写一个libENI函数 196 18.3 部署libENI函数 198 18.4 本章小结 199 第五部分 构建自己的区块链 第19章 开始使用Tendermint 202 19.1 Tendermint的工作原理 203 19.2 工作流程 203 19.3 搭建Tendermint节点 205 19.4 搭建Tendermint网络 207 19.5 本章小结 208 第20章 业务逻辑 209 20.1 协议 210 20.2 应用示例 212 20.3 Cosmos SDK 222 20.4 本章小结 223 第21章 创建一个区块链客户端 224 21.1 方法概述 225 21.2 应用样例 226 21.3 本章小结 230 第六部分 加密经济学 第22章 通证设计的加密经济学 232 22.1 网络效用通证 232 22.2 应用效用通证 235 22.3 证券通证 235 22.4 通证的估值 236 22.5 高级主题 240 22.6 本章小结 242 第23章 ICO 243 23.1 简短的历史 243 23.2 ICO的效用 244 23.3 ICO与传统股权融资的对比 246 23.4 评估一个ICO项目 248 23.5 ICO的参与风险 249 23.6 本章小结 250 第24章 加密货币交易所 251 24.1 交易所的类型 251 24.2 去中心化交易所 253 24.3 产品和服务 254 24.4 本章小结 255 附录A 开始使用CyberMiles 256 ---------------------------区块链技术进阶指南--------------------------- 推荐序 前言 第1章 区块链简史1 1.1 区块链的史前时代1 1.1.1 密码朋克社区1 1.1.2 经济危机与比特币诞生前夜4 1.2 公有链的澎湃浪潮6 1.2.1 引言6 1.2.2 中本聪的星星之火6 1.2.3 最早的加密货币和区块链社区8 1.2.4 价值10 000比特币的两个比萨9 1.2.5 “丝绸之路”网站11 1.2.6 比特金,莱特银12 1.2.7 PoS的诞生17 1.2.8 bytemaster、DPoS与去中心化公司19 1.2.9 Vitalik封神,以太坊突进24 1.2.10 匿名币群雄并起33 1.2.11 “黎明女神”EOS以及以太坊的其他“对手”39 1.2.12 比特币扩容之争始末43 1.3 联盟链的汹涌波涛48 1.3.1 引言48 1.3.2 R3联盟:区块链金融应用领域的务实派48 1.3.3 Hyperledger Project:区块链金融应用领域的技术派51 1.3.4 国内知名区块链联盟53 参考资料55 第2章 区块链技术总体架构58 2.1 总体架构58 2.2 密码学技术60 2.2.1 非对称加密60 2.2.2 哈希函数61 2.2.3 数字签名62 2.2.4 隐私保护63 2.3 分布式账本64 2.3.1 账本64 2.3.2 网络64 2.3.3 共识65 2.4 合约66 2.5 应用66 2.5.1 钱包66 2.5.2 DApp67 2.5.3 预言机67 2.5.4 浏览器67 2.6 扩展技术68 2.6.1 Layer 068 2.6.2 Layer 169 2.6.3 Layer 270 第3章 账本72 3.1 账本模型设计72 3.1.1 UTXO模型73 3.1.2 账户模型79 3.2 账本结构设计83 3.2.1 区块链83 3.2.2 区块85 3.2.3 新一代区块典型结构—以太坊87 3.2.4 有向无环图—DAG90 3.3 底层存储的技术实现93 3.3.1 区块链的存储方式93 3.3.2 新一代存储方式—以太坊94 3.3.3 链外扩展存储—IPFS100 参考资料103 第4章 网络105 4.1 P2P网络简介105 4.1.1 什么是P2P网络105 4.1.2 从BT下载看P2P网络105 4.1.3 P2P网络与区块链111 4.2 P2P网络中的重要技术111 4.2.1 分布式哈希表112 4.2.2 Kademlia协议114 4.2.3 NAT与NAT穿越119 4.3 libp2p125 4.3.1 libp2p是什么125 4.3.2 libp2p的设计127 4.3.3 libp2p的组成128 第5章 共识132 5.1 共识与一致性132 5.1.1 一致性133 5.1.2 共识134 5.2 FLP和CAP135 5.2.1 FLP135 5.2.2 CAP135 5.3 区块链中的共识及思路139 5.3.1 BFT共识139 5.3.2 PoX共识139 5.4 PoX类共识140 5.4.1 工作量证明140 5.4.2 权益证明145 5.4.3 其他PoX共识151 5.5 BFT类共识154 5.5.1 针对无拜占庭错误场景进行优化154 5.5.2 针对拜占庭错误场景进行优化160 5.5.3 基于密码学的改进162 5.6 混合类共识163 5.6.1 PoW+BFT164 5.6.2 DPoS+BFT164 5.6.3 Tendermint164 5.6.4 Algorand166 参考资料167 第6章 合约引擎171 6.1 合约设计171 6.1.1 确定性172 6.1.2 可终止性173 6.2 脚本方式175 6.2.1 比特币的分叉币、竞争币175 6.2.2 匿名加密货币175 6.2.3 部分DAG176 6.2.4 扩展方法176 6.3 容器方式176 6.4 虚拟机方式178 6.4.1 改进EVM179 6.4.2 兼容传统指令集180 6.4.3 wasm 方式181 6.5 应用专有链方式182 参考资料183 第7章 应用186 7.1 应用基础设施—钱包186 7.1.1 多角度看钱包186 7.1.2 钱包的技术实现原理189 7.2 应用的外部辅助机制198 7.2.1 预言机Oracle198 7.2.2 链下支付通道203 7.3 DApp应用生态208 7.3.1 主流生态平台现状208 7.3.2 DApp生存挑战211 |