filecoin工作原理
什么是filecoin
概念
- Filecoin是基于區塊鏈機制的分布式存儲網絡。
- Filecoin 礦工可以選擇提供網絡存儲,通過定期產生證明其正在提供指定容量的加密證明來獲得Filecoin加密貨幣(FIL)
- Filecoin使各方能夠通過Filecoin區塊鏈上共享賬本中記錄的交易來交換FIL貨幣。
- 加密貨幣FIL是溝通資源使用者(用戶)和資源提供者(礦工)的中介橋梁,filecoin協議擁有兩個交易市場,數據檢索和數據存儲,雙方在市場里面提交自己的需求,達成交易。
- Filecoin并沒有使用Nakamoto風格的工作量證明來維持對鏈的共識,而是使用存儲證明本身:礦工在共識協議中的能力與其所提供的存儲量成正比。
- Filecoin區塊鏈不僅維護FIL交易和帳戶的狀態,而且實現Filecoin VM,這是一種復制狀態機,在網絡參與者之間執行各智能合約
filecoin與ifps的關系
filecoin與eth的相似之處
1.以太坊有evm,filecoin也有 filecoin vm
2.以太坊有交易(tx)的概念,對應filecoin的message
3.以太坊有外部賬戶和合約賬戶概念,對應filecoin的actor
架構概述
filecoin子系統
filecoin協議概述
無法上傳svg,點擊下載,用瀏覽器打開
鏈上交易流程圖
無法上傳svg,點擊下載,用瀏覽器打開
核心概念
Sectors
扇區,礦工提供存儲空間的最小單元,也就是說在我們創建礦工的時候抵押存儲空間大小必須是 Sector 的整數倍。目前測試網絡一個 Sector 的大小是 32GB。
Pieces
數據單元,是 Filecoin 網絡中最小存儲單位,每個 Pieces 大小為 512KB, Filecoin 會把大文件拆分成很多個 Pieces, 交給不同的礦工存儲。
AllocationTable
數據分配追蹤表,它記錄了每個 Pieces 和 Sector 的對應關系,如某個 Pieces 存儲在了哪個 Sector. 當某個 Sector 被存滿(Fill)了之后,系統將會把該 Sector 封存(Sealing the Sector),然后生成存儲證明,這是一個緩慢的操作
Pledge
抵押,礦工必須需要向 Filecoin 網絡抵押 FIL 代幣才能才能開始接受存儲市場的訂單。
工作流程
通過這張圖我們可以從橫向(操作)和縱向(角色)來了解整個流程。我們對文件的操作無非就兩種,存(Put)和取(Get), 而這兩種操作分別對應兩種角色,客戶和礦工。 外加一個區塊鏈網絡和市場管理者(Manage), 這就構成了整個 Filecoin 的 DSN 網絡,具體交易流程如下:
(1)客戶和礦工分別發送一個競價訂單和出價訂單到交易市場(Market),這里需要注意的是,如果是 bid order, 需要注明你這個文件的存儲時間(比如三個月), 以及需要備份的數量(比如 3 份),備份數量越多,文件丟失的概率就越低,當然價格也就更高一些。
(2)交易網絡管理中心(Manage)分別驗證訂單是否合法,如果是競價訂單,系統會鎖定客戶資金,如果是出價訂單,系統會鎖定礦工的存儲空間。
(3)分別執行 Put.MatchOrders 和 Get.MatchOrders 進行訂單撮合,成功之后會運行 Manage.AssignOrders 來標記該訂單為Deal Orders(成交訂單), 并在 AllocationTable 中記訂單的 Pieces 和 Sector 信息。
(4)執行文件的 Put 操作,即把文件存儲到礦工的硬盤,并生成 PoRep(復制證明)發送給交易網絡存儲到區塊鏈。
(5)礦工需要定期(every epoch)需要向交易網絡發送PoSt(時空證明)來證明你這段時間確實存儲了指定的文件,交易網絡在驗證之后,支付你相應費用(FIL).
核心算法
復制證明
“復制證明”(PoRep)是一個新型的存儲證明。它允許服務器(證明人P)說服用戶(驗證者V)一些數據D已被復制到它唯一的專用物理存儲上了。
PoRep協議其特征是多項式時間算法的元組:(Setup, Prove, Verify)
? PoRep.Setup(1λ, D) → R, SP, SV, 其中SP和SV是P和V的特點方案的設置變量,λ是一個安全參數。PoRep.Setup用來生成副本R,并且給予P和V必要的信息來運行PoRep.Prove 和 PoRep.Verify。一些方案可能要求證明人或者是有互動的第三方去運算PoRep.Setup。
? PoRep.Prove(SP, R, c) → πc,其中c是驗證人V發出的隨機驗證,πc是證明人產生的可以訪問數據D的特定副本R的證明。PoRep.Prove由P(證明人)為V(驗證者)運行生成πc。
? PoRep.Verify(Sv, c, πc) → {0, 1},用來檢測證明是否是正確。PoRep.Verify由V運行和說服V相信P已經存儲了R。
時空證明
“時空證明”(PoSt)使得有效的證明人P能夠說服一個驗證者V相信P在一段時間內已經存儲了一些數據D。
PoSt其特征是多項式時間算法的元組:(Setup, Prove, Verify)
? PoSt.Setup(1λ,D)->Sp,Sv,其中SP和SV是P和V的特點方案的設置變量,λ是一個安全參數。PoSt.Setup用來給予P和V必要的信息來運行PoSt.Prove和PoSt.Prove。一些方案可能要求證明人或者是有互動的第三方去運算PoSt.Setup。
? PoSt.Prove(Sp, D, c, t) → πc,其中c是驗證人V發出的隨機驗證,πc是證明人在一段時間內可以訪問數據D的證明。PoSt.Prove由P(證明人)為V(驗證者)運行生成πc。
? PoSt.Verify(Sv, c, t, πc) → {0, 1},用來檢測證明是否是正確。PoSt.Verify由V運行和說服V相信P在一段時間內已經存儲了R。
參考文獻
filecoin白皮書
filecoin spec
ipfs和filecoin的關系
filecoin工作原理
總結
以上是生活随笔為你收集整理的filecoin工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7屏保时间设置_三坐标计算机的设置
- 下一篇: 每日新闻丨马电信运营商与华为签署5G商