IPFS原理與實踐( 簡體 字) | |
作者:董天一 戴嘉樂 黃禹銘 著 | 類別:1. -> 程式設計 -> 綜合 |
出版社:機械工業出版社 | 3dWoo書號: 51507 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:7/1/2019 | |
頁數:242 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111628804 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
推薦序
贊譽 前言 基礎篇 認識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 這是一部從實現原理和工程實踐兩個維度深入講解IPFS和Filecoin的著作。作者是中文社區內非常有影響力的3位IPFS/Filecoin布道者。本書得到了IPFS&Filecoin創始人以及IPFS官方(協議實驗室)的高度認可和強烈推薦。
為最大化滿足讀者需求,書中不僅介紹了IPFS技術細節、區塊鏈相關知識、Filecoin項目技術細節,還加入了大量作者們在開發中的經驗和技巧。為了適配當下及未來較長時間內讀者的實際使用環境,書中所有案例都是基于生態鏈中較新的軟件開發工具和前沿的軟件開發技術編寫的。 本書分為三大部分: 第一部分 基礎篇(第1章) 全面介紹了IPFS的源起、概念、優勢和應用領域,旨在幫助讀者了解IPFS相關基礎背景知識,從宏觀層面認識IPFS技術所具有的創新性。 第二部分 原理篇(第2~5章) 旨在幫助讀者深入理解IPFS和Filecoin的運行原理與工作機制。首先深入分析了分布式哈希表、塊交換協議、版本控制、自驗證文件系統Merkle DAG和Merkle Tree等底層基礎知識,然后對IPFS協議棧中包含的7層子協議進行了剖析,接著解析了Multi-Format、libp2p、IPLD三大IPFS核心模塊,最后用一整章的篇幅詳細剖析了Filecoin項目。 第三部分 實戰篇(第6~8章) 以工程化的方式,從基礎至進階,介紹了IPFS技術的實際使用,包括安裝、配置、交互、入網、API、內容發布、數據保存、私網搭建等內容,之后通過兩個不同風格的實際項目案例向讀者展示了基于不同語言所實現的IPFS協議棧的使用方法。 緣起
我們在2017年下半年至2018年上半年期間,犧牲了大量的業余時間,一直在做IPFS這門新興技術的相關解讀、線下MeetUp工作。我們在知乎專欄和微信公眾號上建立的《IPFS指南》是中國第一個系統、全面地介紹這門技術的中文資料站。機械工業出版社華章公司的楊福川老師在第一時間找到我們,希望我們能夠為國內開發人員寫一本IPFS技術相關的圖書,方便國人更好地理解并應用這門技術。于是,便有了你手中的這本書。 為什么要寫這本書 IPFS這門技術誕生于2014年,由協議實驗室(Protocol Labs)創建。但是,直到2017年年中才逐漸走入大眾視野,因為其能與區塊鏈完美結合,所以使得其成為近幾年最火熱的技術之一。然而,國內卻沒有與IPFS技術相關、利于國人閱讀、知識體系結構相對系統全面的中文學習資料。因此,我聯系了當時在這個領域鉆研摸索最多的幾位布道者和專家,一起撰寫了這本書,希望能幫助國內IPFS技術愛好者更加快速地學習、掌握、應用這門技術。 IPFS這門技術還在不斷演化中,它引導的是一場真正的網絡協議革命,是一種全球化思維的碰撞,是一種突破傳統的海量數據共享的模式。IPFS可能不是這場革命的導火索,但是我認為,它至少能帶領大家去學習和認識這種思維,這是一件非常有意義的事情。 讀者對象 本書適合有一定區塊鏈常識和基礎,有軟件開發能力,但是不了解IPFS,想學習IPFS的技術原理,并基于IPFS做相關開發工作的讀者。主要包含以下人員: IPFS技術愛好者; 網絡協議技術愛好者; 分布式存儲技術愛好者; 區塊鏈技術愛好者; 區塊鏈領域從業者; 開設相關課程的大專院校師生。 本書特色 首先,IPFS是在區塊鏈技術蓬勃發展的情況下得到廣泛認可的,本書除了針對IPFS技術本身進行講解以外,還增加了大量區塊鏈相關知識作為鋪墊和補充,包括單獨設立第5章來重點介紹IPFS的激勵層—Filecoin區塊鏈項目。 其次,本書不僅介紹了IPFS技術本身的細節,還加入了大量筆者在開發中總結的經驗和技巧,并搭配了相關生態鏈中較新的軟件開發工具和前沿的尖端技術。在技術深度和廣度兩個方面都兼顧得比較妥當,有明顯的層次感。 再次,本書提供了大量的項目實例,這些項目實例能夠幫助讀者更好地理解IPFS技術和應對一些業務場景。 最后,本書是一本相對全面和系統地解讀了IPFS和Filecoin技術的書籍,也是一本國內由相關領域中最早期的布道者、專家合力編寫的中文權威書籍。 如何閱讀本書 本書分為三大部分: 第1部分為基礎篇,包括第1章。簡單地介紹了IPFS的概念、優勢和應用領域,旨在幫助讀者了解一些基礎背景知識,并從宏觀層面來認識IPFS技術所具有的創新性。 第2部分為原理篇,包括第2~5章。從內部詳細剖析IPFS的底層基礎、協議棧構成,以及libp2p、Multi-Format、Filecoin等模塊。 第3部分為實戰篇,包括第6~8章。以工程化的方式,從基礎至進階,講解了IPFS技術的實際使用,并通過講解兩個不同風格的項目案例,讓讀者了解不同語言實現的IPFS協議棧。 其中,第3部分以接近實戰的實例來講解工程應用,相比于前兩部分更獨立。如果你是一名資深用戶,已經理解IPFS的相關基礎知識和使用技巧,那么你可以跳過前兩個部分,直接閱讀第3部分。如果你是一名初學者,則務必從第1章的基礎理論知識開始學習。 致謝 首先要感謝協議實驗室開創的這款具有劃時代意義的新型網絡協議。 其次要感謝機械工業出版社華章公司的楊福川、孫海亮、李良三位老師為本書順利出版所付出的努力,沒有他們的支持,本書無法如期順利完成。 同時感謝知乎專欄《IPFS指南》及國內因IPFS技術自發組織而成的眾多愛好者社區,他們對IPFS技術的執著和探索是我們創作的動力,在和他們的交流中我們發現了本書的價值和創作素材。 感謝我的合作者董天一前輩,他在計算機系統、軟件工程、經濟學基礎、博弈論、區塊鏈存儲方面學識淵博,使我在與他合作著書的過程中不斷進步。同時,董天一前輩對本書的審稿和校稿工作也做出了重要的貢獻。 感謝我的另一位合作者黃禹銘,他在區塊鏈學術領域積累豐厚,對本書的眾多技術進行了詳細的原理解讀和分析,尤其是在第1章、第2章、第4章和第5章。 感謝新加坡國立大學Andrew Lim教授對本書的大力支持以及TangJing助理教授對我們技術上的指導。 謹以此書獻給我最親愛的家人,以及中國眾多熱愛IPFS和區塊鏈技術的朋友們。 戴嘉樂 |