编辑推荐
(1)本书得到了IPFS和FileCoin创始人兼协议实验室创始人Juan Benet高度评价并作序推荐。 (2)三位作者是国内首批IPFS/Filecoin技术的布道者,坚持至今,在社区剖有影响力。 (3)作者们累计在中国各地(包括香港)举办IPFS/Filecoin相关的线下沙龙30余场,为IPFS/Filecoin在中国的普及和推广做了巨大贡献。 (4)本书内容相当扎实,从实现原理和工程实践两个维度深入讲解IPFS/Filecoin,得到了IPFS官方(协议实验室)的高度认可和推荐。
目录
推荐序 赞誉 前言 基础篇 认识IPFS 第1章 认识IPFS2 1.1 IPFS概述2 1.1.1 IPFS的概念和定义2 1.1.2 IPFS的起源4 1.2 IPFS与区块链的关系8 1.2.1 区块链基础8 1.2.2 区块链发展10 1.2.3 IPFS为区块链带来了什么改变14 1.2.4 Filecoin:基于IPFS技术的区块链项目15 1.3 IPFS的优势与价值16 1.3.1 IPFS的优势16 1.3.2 Filecoin与其他区块链存储技术的对比21 1.4 IPFS的应用领域23 1.5 本章小结25 原理篇 理解IPFS 第2章 IPFS底层基础28 2.1 分布式哈希表(DHT)28 2.1.1 Kademlia DHT29 2.1.2 Coral DSHT36 2.1.3 S/Kademlia DHT38 2.2 块交换协议(BitTorrent)41 2.2.1 BitTorrent术语含义42 2.2.2 P2P块交换协议43 2.2.3 阻塞策略44 2.3 版本控制(Git)46 2.4 自验证文件系统(SFS)54 2.4.1 SFS设计55 2.4.2 自验证文件路径57 2.4.3 用户验证58 2.4.4 密钥撤销机制58 2.5 Merkle DAG和Merkle Tree59 2.5.1 Merkle Tree60 2.5.2 Merkle DAG63 2.6 本章小结65 第3章 IPFS协议栈66 3.1 身份层(Identity)67 3.2 网络层(Network)68 3.3 路由层(Routing)69 3.4 交换层(Exchange)71 3.4.1 BitSwap协议71 3.4.2 BitSwap信用体系75 3.4.3 BitSwap策略75 3.4.4 BitSwap账单76 3.5 对象层(Object)77 3.6 文件层(File)79 3.7 命名层(Naming)83 3.7.1 IPNS:命名以及易变状态83 3.7.2 自验证命名83 3.7.3 人类友好名称84 3.8 本章小结85 第4章 IPFS模块解析86 4.1 Multi-Format86 4.1.1 Multi-Hash87 4.1.2 Multi-Base90 4.1.3 Multi-Addr92 4.1.4 Multi-Codec95 4.1.5 Multi-Stream 98 4.2 libp2p98 4.2.1 libp2p的功能99 4.2.2 libp2p核心原理101 4.2.3 libp2p的用途108 4.3 IPLD109 4.3.1 IPLD数据模型110 4.3.2 内容识别符(CID)112 4.3.3 CID解码规则115 4.4 本章小结116 第5章 Filecoin117 5.1 Filecoin项目简介117 5.1.1 Filecoin项目的起源117 5.1.2 Filecoin 项目的价值118 5.1.3 Filecoin的价值交换市场119 5.1.4 优化互联网的使用120 5.2 Filecoin与IPFS之间的关系120 5.3 Filecoin经济体系122 5.3.1 Filecoin 的分发与使用122 5.3.2 Filecoin 矿工收益结构123 5.4 Filecoin技术体系总览124 5.4.1 Filecoin系统基本概念125 5.4.2 Filecoin交易市场运行简介125 5.4.3 Filecoin区块链数据结构127 5.4.4 Filecoin 区块链运行原理129 5.5 去中心化存储网络协议(DSN)130 5.5.1 Put、Get、Manage操作130 5.5.2 拜占庭问题与存储错误133 5.5.3 DSN协议中的两类基础操作134 5.5.4 存储节点操作协议138 5.5.5 检索节点操作协议141 5.5.6 网络操作协议143 5.6 Filecoin交易市场145 5.6.1 存储市场146 5.6.2 检索市场148 5.7 Filecoin 区块链共识机制151 5.7.1 共识机制概述151 5.7.2 共识机制要解决的3个问题152 5.8 复制证明(PoRep)和时空证明(PoSt)157 5.8.1 存储证明的6种定义157 5.8.2 存储证明成员159 5.8.3 复制证明(PoRep)160 5.8.4 时空证明(PoSt)163 5.8.5 复制证明 PoRep和时空证明PoSt的实现164 5.9 网络攻击与防范173 5.10 其他特性176 5.10.1 Filecoin智能合约176 5.10.2 Bridge互联系统177 5.11 本章小结177 实战篇 应用IPFS 第6章 IPFS开发基础180 6.1 安装IPFS180 6.1.1 通过安装包安装180 6.1.2 通过Docker安装183 6.1.3 通过ipfs-update安装184 6.2 IPFS仓库配置初始化185 6.2.1 初始化185 6.2.2 访问配置文件186 6.3 与IPFS文件系统进行交互190 6.4 加入IPFS网络环境193 6.5 与HTTP Web交互195 6.6 API使用 196 6.6.1 IPFS命令行用法197 6.6.2 IPFS协议实现扩展200 6.6.3 IPFS端API200 6.7 本章小结202 第7章 IPFS开发进阶203 7.1 在IPFS中发布动态内容203 7.2 持久保存IPFS网络数据206 7.3 操作IPFS Merkle DAG208 7.3.1 创建Merkle DAG结构208 7.3.2 组装子块数据209 7.3.3 块与对象的区别210 7.3.4 操作Block210 7.3.5 操作Object211 7.4 IPFS Pubsub功能的使用212 7.5 私有IPFS网络的搭建与使用215 7.5.1 环境准备216 7.5.2 共享密钥216 7.5.3 上传密钥至节点217 7.5.4 添加启动节点217 7.5.5 启动并查看各个节点217 7.6 本章小结219 第8章 IPFS项目实战220 8.1 利用go-ipfs优化Git分布式服务220 8.1.1 依赖安装221 8.1.2 初始化Git仓库222 8.1.3 IPFS网络挂载223 8.1.4 用Git从IPFS网络克隆仓库225 8.2 基于js-ipfs搭建一个流媒体播放系统227 8.2.1 构建Node.js开发环境227 8.2.2 使用Webpack构建项目229 8.2.3 开发播放器模块231 8.2.4 开发状态栏模块233 8.2.5 引入js-ipfs模块235 8.2.6 实现拖拽上传237 8.2.7 从IPFS中读取流媒体至播放器238 8.2.8 处理流媒体播放状态240 8.2.9 开发总结241 8.3 本章小结242
|