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