目錄
原理篇Filecoin原理與設計
第1章 Filecoin基礎 2
1.1Filecoin簡介 2
1.2Filecoin的使命 4
1.3Filecoin網路基礎和基本概念 6
1.4本章小結 9
第2章 Filecoin的技術發展 10
2.1站在巨人的肩膀上 10
2.2《Filecoin白皮書》和技術演進 14
2.2.1《Filecoin白皮書》 14
2.2.2Filecoin證明系統 14
2.2.3重構共識機制 15
2.3主網啟動 16
2.4本章小結 17
第3章 Filecoin的證明演算法系統 18
3.1分散式存儲的安全性 18
3.1.1世紀存儲的挑戰 19
3.1.2去中心化存儲的優勢 20
3.1.3 去中心化存儲網路中可能存在的作弊行為 21
3.2Filecoin的複製證明 21
3.2.1前置概念 21
3.2.2複製證明的實現 22
3.3時空證明系統 25
3.3.1前置概念 25
3.3.2時空證明的實現 25
3.4本章小結 29
第4章 Filecoin經濟系統 30
4.1海島經濟模型 30
4.1.1資料市場 31
4.1.2出口經濟 31
4.1.3市場參與者 32
4.2基礎設計原則 34
4.3Filecoin經濟模型中的回饋機制 35
4.4初始參數 37
4.5已驗證的客戶 38
4.6本章小結 39
第5章 Filecoin中的共識演算法 40
5.1共識技術基礎 40
5.1.1共識機制—領導人選舉 41
5.1.2秘密單個領導人選舉 41
5.2Filecoin共識機制的模型設計 42
5.2.1Filecoin共識 42
5.2.2模型化創建區塊存力 42
5.2.3 用時空證明保障資料的安全性 43
5.2.4使用存力達成共識 43
5.3預期共識演算法的實現 44
5.3.1預期共識中的Ticket 45
5.3.2秘密領導人選舉 45
5.3.3生成選舉證明 47
5.3.4分佈函數的選擇 49
5.4一些實現細節 51
5.4.1生成選舉證明 51
5.4.2領導人選舉核查 52
5.4.3鏈的選擇 52
5.4.4共識錯誤 54
5.5本章小結 55
第6章 Filecoin的其他基礎組件 56
6.1加密原語 56
6.1.1消息及簽名 57
6.1.2ECDSA簽名 58
6.1.3BLS簽名 58
6.2可驗證隨機函數 59
6.2.1亂數 60
6.2.2從VRF中抽取票據 61
6.2.3使用亂數 62
6.3Filecoin引用的協力廠商庫 63
6.3.1Drand 63
6.3.2IPFS協議 66
6.3.3IPLD協議 66
6.3.4libp2p協議 68
6.4本章小結 68
第7章 Filecoin的存儲和檢索 70
7.1存儲的基礎資料及構成 70
7.1.1基礎資料類型 70
7.1.2存儲市場合約 72
7.1.3鏈上訂單狀態流轉 74
7.1.4 存儲及檢索的資料流程傳輸模型 76
7.2存儲市場 78
7.2.1存儲市場運作概述 78
7.2.2存儲用戶端 79
7.2.3存儲服務提供者 80
7.2.4存儲過程中的抵押及其意義 81
7.2.5存儲過程中的狀態變化 82
7.3檢索市場 84
7.3.1檢索市場運作概述 84
7.3.2檢索用戶端 85
7.3.3檢索服務商 86
7.3.4檢索過程中的信任建立 87
7.3.5檢索過程中的狀態變化 88
7.4本章小結 89
實現篇Filecoin的基礎技術和實現
第8章 Filecoin區塊鏈的節點實現 92
8.1節點類型 92
8.2節點本機存放區 94
8.2.1私密金鑰存儲 94
8.2.2IPLD存儲 95
8.3節點的網路通訊協定 96
8.4節點的介面協定 97
8.5節點的時鐘 98
8.6本章小結 99
第9章 Filecoin區塊鏈的文件與數據 100
9.1Filecoin的本地檔存儲 100
9.2Filecoin的數據片 101
9.2.1資料片的資料結構 101
9.2.2資料片表示 102
9.2.3PieceStore抽象 104
9.3Filecoin的資料傳輸 104
9.3.1資料傳輸模組 105
9.3.2術語 106
9.3.3請求流程 106
9.3.4資料結構 107
9.3.5資料流程實現樣例 109
9.4Filecoin的資料格式和序列化 114
9.5本章小結 115
第10章 Filecoin區塊鏈 116
10.1Filecoin區塊鏈系統的組成 116
10.2區塊 117
10.2.1區塊的結構 117
10.2.2TipSet 119
10.2.3鏈管理器 120
10.2.4區塊生產者 120
10.3消息池 121
10.4鏈同步 122
10.4.1鏈同步概述 123
10.4.2鏈同步術語 123
10.4.3鏈同步狀態機 124
10.4.4對等節點發現 125
10.4.5步進區塊驗證 125
10.5存儲算力共識 127
10.5.1存儲服務提供者 128
10.5.2區塊生產者 128
10.5.3算力 128
10.5.4信標項 129
10.5.5隨機票 130
10.5.6最小區塊生產者 131
10.5.7存儲算力Actor 131
10.6本章小結 133
第11章 Filecoin區塊鏈的虛擬機器 134
11.1Filecoin虛擬機器的基本概念 134
11.2Actor介面 136
11.3狀態樹 137
11.4消息 137
11.4.1Actor的嵌套調用 137
11.4.2語法確認 137
11.4.3語義驗證 139
11.5運行時環境 139
11.5.1收據 139
11.5.2Actor介面 139
11.5.3系統調用 140
11.6Gas費用 140
11.6.1原理 140
11.6.2實現 141
11.6.3參數 141
11.7系統Actor 144
11.8解譯器 147
11.9Filecoin虛擬機器的未來發展 149
11.9.1 虛擬機器子系統的擴展動力 149
11.9.2 虛擬機器子系統的架構設計 150
11.9.3 虛擬機器子系統的擴展需求 151
11.10本章小結 152
第12章 Filecoin存儲服務保障 153
12.1磁區 153
12.1.1生命週期 154
12.1.2磁區品質 156
12.1.3磁區封裝 158
12.1.4磁區故障 159
12.1.5磁區恢復 159
12.1.6增加存儲 160
12.1.7磁區升級 160
12.2區塊生產 161
12.2.1出塊系統 161
12.2.2證明演算法 162
12.2.3帳本管理 165
12.3節點質押 166
12.4證明子系統 167
12.4.1磁區時空證明管理器 168
12.4.2磁區複製證明管理器 169
12.5本章小結 169
第13章 Filecoin的實現案例 170
13.1為什麼需要多種實現 170
13.2Filecoin的四個實現實例 171
13.2.1 Lotus:廣泛採用的Filecoin實現 171
13.2.2Venus:Filecoin集群軟體 173
13.2.3 Fuhon:Filecoin的C++實現 174
13.2.4 Forest:Filecoin的Rust實現 175
13.3本章小結 175
第14章 Filecoin集群架構及搭建基礎 176
14.1Lotus集群 176
14.1.1組件介紹 176
14.1.2Lotus集群硬體要求 178
14.1.3Lotus的編譯和安裝 180
14.1.4運行Lotus集群 182
14.2Venus分散式存儲服務 187
14.2.1Venus集群的目標 188
14.2.2Venus的分散式存儲架構 188
14.2.3組件介紹 189
14.2.4鏈服務層元件部署 190
14.2.5獨立組件部署和接入 193
14.3本章小結 197
拓展篇Filecoin技術創新與生態探索
第15章 區塊鏈世界中的Filecoin 200
15.1對區塊鏈世界的回饋 200
15.1.1 共識:PoW和PoS之外的一點小創新 200
15.1.2安全性挑戰 201
15.1.3社區治理的新嘗試 203
15.2與其他區塊鏈的合縱連橫 204
15.2.1Filecoin的自我定位 204
15.2.2與外部的互通互動 206
15.3本章小結 208
第16章 Filecoin新技術探索 209
16.1構建未來 209
16.2新的PoRep嘗試 211
16.3 SnarkPack:零知識證明的聚合演算法 212
16.3.1背景 212
16.3.2為什麼需要SnarkPack 213
16.3.3SnarkPack的實現 213
16.4 Winkle:抵禦針對PoS系統的長程攻擊 215
16.4.1概述 215
16.4.2機制 215
16.4.3總結 216
16.5 GossipSub:抗攻擊的消息分發協議 217
16.5.1概述 217
16.5.2常見的攻擊類型 218
16.5.3組網策略 218
16.5.4評分體系 220
16.5.5緩衝策略 220
16.5.6總結 221
16.6本章小結 221
第17章 Filecoin實現的發展和生態開發 222
17.1 Filecoin的實現需要適應生態的發展要求 222
17.1.1 Filecoin節點實現是生態的一部分 222
17.1.2當前實現過於集中 223
17.1.3模組化的架構 224
17.2圍繞存儲建立生態 225
17.2.1敏捷開發工具 225
17.2.2 Filecoin存儲和檢索工具支持 225
17.2.3Filecoin服務於NFT 226
17.3本章小結 227 |