Filecoin中的存儲和檢索交易的用法

本篇內(nèi)容主要講解“Filecoin中的存儲和檢索交易的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Filecoin中的存儲和檢索交易的用法”吧!

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十余年品質(zhì),值得信賴!

Filecoin網(wǎng)絡(luò)由分布在全球各地的數(shù)百個存儲提供者組成。內(nèi)容尋址和加密存儲證明驗證了數(shù)據(jù)在礦工的硬件上長期正確安全地存儲,從而創(chuàng)造了一個強大可靠的服務(wù)。

本文闡述了Filecoin中兩種交易類型,存儲交易 和 檢索交易 運作的各個階段,并詳解其生命周期。并解釋了密碼學(xué)證明是如何用于驗證系統(tǒng)中的參與者是否按照承諾履行職責(zé)的。

Filecoin中的存儲和檢索交易的用法

Filecoin 上的數(shù)據(jù)

在Filecoin上存儲文件,用戶必須首先在其本地Filecoin節(jié)點中導(dǎo)入文件。這一步會產(chǎn)生一個數(shù)據(jù)CID ——即內(nèi)容標(biāo)識符,描述該內(nèi)容的唯一ID。之后,數(shù)據(jù)被傳給礦工。

將數(shù)據(jù)導(dǎo)入本地的Filecoin節(jié)點,可以通過lotus client import命令來完成。要記住所產(chǎn)生的數(shù)據(jù)CID(之后在本地節(jié)點上也可獲?。驗橐院髲牡V工那里檢索數(shù)據(jù)時會用到。

將數(shù)據(jù)導(dǎo)入本地節(jié)點后,用戶需發(fā)起交易。這步通過lotus client deal命令來完成。該命令將一個數(shù)據(jù)CID作為輸入,產(chǎn)生一個 Filecoin Piece ,并交互式引導(dǎo)用戶完成存儲交易流程。

Filecoin Piece 是用戶在Filecoin網(wǎng)絡(luò)上存儲數(shù)據(jù)的主要協(xié)商單位。Filecoin Piece 并沒有特定的大小,而是以扇區(qū)大小為上限,受網(wǎng)絡(luò)參數(shù)控制。如果一個 Filecoin Piece 大于礦工支持的扇區(qū)大小,它必須被分割成更多的碎片,以便每個碎片都適合一個扇區(qū)。

Filecoin中的存儲和檢索交易的用法

Filecoin Piece

每個 Filecoin Piece 是一個 CAR 文件,包含一個IPLD DAG,有對應(yīng)的數(shù)據(jù)CID和piece CID。

Filecoin中的存儲和檢索交易的用法

CAR 即 內(nèi)容可尋址檔案,每個 CAR 文件是一個 IPLD DAG 的序列化表示,即將其數(shù)據(jù)塊串起來,再加上描述DAG圖的頭部信息(還有根CID )。

當(dāng)用戶要在Filecoin網(wǎng)絡(luò)中存儲文件時,首先要用UnixFS制作文件的 IPLD DAG (這就是lotus client import命令的作用)。代表DAG根節(jié)點的哈希是一個IPFS風(fēng)格的CID,稱為 數(shù)據(jù) CID 。

UnixFS是一種基于protobuf的格式,用于描述IPFS中的文件、目錄和軟鏈接。在Filecoin中,UnixFS是文件格式標(biāo)準(zhǔn),文件以此格式提交給Filecoin網(wǎng)絡(luò)。

所產(chǎn)生的 CAR 文件用額外的零位來補齊,以便使文件寫為二叉merkle樹。

存儲交易流程

用戶在 Filecoin 網(wǎng)絡(luò)中通過交易存取數(shù)據(jù)。網(wǎng)絡(luò)的參與者,包括礦工(供給方)和用戶(需求方),通過存儲交易和檢索交易來與對方交互。

存儲交易的生命周期如下:

1. 發(fā)現(xiàn)

用戶先確定礦工及其定價,即礦工為了接受交易而希望收到的每epoch(30秒)每GiB的價格,單位為attoFIL。目前,F(xiàn)ilecoin中一筆交易的最短期限為180天。

您可以通過 JSON RPC API 查詢已同步的節(jié)點,列出所有當(dāng)前活躍的礦工,使用 Filecoin.StateListMiners 方法。您可以根據(jù)礦工在網(wǎng)絡(luò)中的信譽和能力進(jìn)行選擇。礦工的信譽指標(biāo)還未進(jìn)入 Filecoin 協(xié)議。

當(dāng)您選好礦工之后,可以用諸如 Filecoin.StateMinerInfo 方法來獲取礦工的 PeerID ,用于在 libp2p 協(xié)議中來與對方建立安全連接。

接下來,您可以用 Filecoin.ClientQueryAsk 方法獲取一個帶簽名的 StorageAsk 。

結(jié)果包括該礦工愿意接受的交易細(xì)節(jié),如接納的 Filecoin Piece 大小的范圍和每GiB每epoch的價格。需要注意的是,提出與礦工的存儲要求相匹配的存儲交易,只是一個前提條件,但并不足以確保交易被接受 - 存儲提供者可能會在之后運行自己的決策邏輯。

2. 議價和數(shù)據(jù)發(fā)送

在這一階段,雙方就交易條款達(dá)成協(xié)議,如交易成本、交易期限、交易起始時間等。

然后,數(shù)據(jù)從用戶發(fā)至礦工。

3. 發(fā)布

通過 PublishStorageDeals 消息在鏈上發(fā)布交易,使存儲提供方對交易公開負(fù)責(zé)。

4. 完成

交易一旦在鏈上發(fā)布,就會被交給挖礦子系統(tǒng) ,打包成扇區(qū),隨后封裝 ,再不斷地被證明可用。

存儲挖礦子系統(tǒng)

存儲挖礦子系統(tǒng)確保 Filecoin 網(wǎng)絡(luò)的數(shù)據(jù)由礦工有效保存,并且:

  • 參與 Filecoin 存儲市場 ,承接用戶數(shù)據(jù),參與存儲交易。

  • 參與 Filecoin 存儲算力共識 ,驗證和產(chǎn)出區(qū)塊,讓 Filecoin 區(qū)塊鏈增長,并獲得區(qū)塊獎勵。

該系統(tǒng)監(jiān)督以下進(jìn)程:

承諾新存儲和注冊新扇區(qū)

為了在Filecoin中注冊一個扇區(qū),礦工必須對該扇區(qū)進(jìn)行 封裝 。_封裝_過程需要大量計算,以證明的形式產(chǎn)生數(shù)據(jù)的唯一表示,即復(fù)制證明或 PoRep 。一旦證明生成,礦工會對其進(jìn)行壓縮,并將結(jié)果提交給區(qū)塊鏈。這就證明礦工確實復(fù)制了他們同意存儲的數(shù)據(jù)副本。

證明存儲持續(xù)可用,所有存儲礦工需要持續(xù)提交鏈上證明,以驗證扇區(qū)被完整存儲。

宣布存儲故障和從故障中恢復(fù),如果扇區(qū)所需的上述證明如果未成功提交,將導(dǎo)致故障,礦工會受到處罰。

存儲礦工和用戶的考量,如上文所述,存儲交易是在鏈上發(fā)布后,才會被激活和封裝。這一點很重要,因為發(fā)布交易會將用戶的資金鎖定在鏈上托管。只有如此,在封存數(shù)據(jù)進(jìn)扇區(qū)之后,礦工的收益才有保障。

可以將在鏈上發(fā)布交易視為簽署合同,將封裝和激活交易視為開始做承諾的工作。

從用戶的角度來看,想要用 Filecoin 存儲數(shù)據(jù),交易大致經(jīng)過以下幾個階段:

  1. 交易入金,用戶將資金鎖入代管中

  2. 向礦工提出 交易提議

  3. 檢查意向來接受交易

  4. 數(shù)據(jù)傳輸給礦工來進(jìn)行交易 ,這是通過GraphSync協(xié)議完成的。GraphSync是節(jié)點之間同步IPLD圖的協(xié)議。該協(xié)議允許本地節(jié)點向遠(yuǎn)程節(jié)點發(fā)出請求,以獲取在遠(yuǎn)程節(jié)點的IPLD圖上按選擇器搜索所得的結(jié)果。Lotus使用的是GraphSync協(xié)議的實現(xiàn)ipfs/go-graphsync。

  5. 檢查是否接受 - 確保礦工已經(jīng)接受了交易并在鏈上發(fā)布。

  6. 封裝 - 交易已在鏈上,礦工正在封裝包含交易的扇區(qū)。

  7. 激活 - 交易已被封存并處于活躍狀態(tài)。從這里開始,存儲提供商/礦工應(yīng)定期證明他們繼續(xù)存儲數(shù)據(jù)。 

從礦工的角度來看,通過存儲用戶的數(shù)據(jù)來提供服務(wù),交易大致經(jīng)過以下幾個階段:

  1. 驗證交易 - 收到交易提議,并檢查其參數(shù)(大小、價格等)。

  2. 檢查是否有鎖定資金 - 確保用戶有鎖定資金,可以支付交易。

  3. 等待數(shù)據(jù) - 接收客戶提供的交易數(shù)據(jù)。

  4. 為交易提供抵押 用于鏈上交易。

  5. 在鏈上發(fā)布交易上鏈。

  6. 封裝扇區(qū)激活交易,存儲提供者(礦工)定期提交WindowPoSt,證明他們在持續(xù)存儲數(shù)據(jù)。

檢索交易流程

檢索交易與存儲交易不同,使用支付通道,主要在鏈下完成。數(shù)據(jù)傳輸是按量計價的,用戶在數(shù)據(jù)傳輸?shù)倪^程中逐步向礦工支付費用。整個過程中,只有創(chuàng)建支付通道、兌換憑證,是涉及與 Filecoin 區(qū)塊鏈交互的。

整體流程如下:

  • 發(fā)現(xiàn) - 用戶找出擁有其所需數(shù)據(jù)的礦工,并向其索取檢索報價詳情 - 每字節(jié)價格、解封價格、付款間隔。

  • 設(shè)立支付通道 - 用戶需要和礦工之間設(shè)立一個支付通道(如果還不存在的話)。

  • 數(shù)據(jù)傳輸與支付 - 礦工向用戶發(fā)送數(shù)據(jù),直到需要支付。當(dāng)達(dá)到一定的閾值時,會要求進(jìn)行支付處理,之后繼續(xù)進(jìn)行數(shù)據(jù)傳輸。根據(jù)礦工是否在他們的 區(qū)塊存儲 中擁有數(shù)據(jù),他們可能需要首先 解封 數(shù)據(jù) - 這是一個非常規(guī)和非瞬時的操作,這是存儲交易一節(jié)中描述的 封裝 的反向操作。

  • 此時用戶還未獲取完整數(shù)據(jù)。

時空證明

上面的章節(jié)快速列舉了許多使 Filecoin 獨一無二的細(xì)節(jié),在概率上對用戶數(shù)據(jù)提供了保證。本節(jié)介紹了 Filecoin 使用的兩種證明,并解釋了它們是如何成為協(xié)議的一部分,以及它們所解決的問題。

時空證明(PoSt)是礦工向 Filecoin 網(wǎng)絡(luò)提交的證明,證明其正在繼續(xù)為網(wǎng)絡(luò)存儲數(shù)據(jù)的唯一副本。

目前,時空證明在 Filecoin 中以兩種類型存在:

  • WindowPoSt

  • WinningPoSt

WinningPoSt

WinningPoSt是獎勵存儲礦工對 Filecoin網(wǎng)絡(luò)貢獻(xiàn)的機制。在每個epoch開始時,一小部分存儲礦工被選出來,每個礦工挖出一個新的區(qū)塊。具體要求是,這些礦工提交指定扇區(qū)的壓縮存儲證明。每個成功創(chuàng)建區(qū)塊的當(dāng)選礦工都會獲得FIL(區(qū)塊獎勵),以及向其他想在區(qū)塊中包含信息的 Filecoin 參與者收取費用的機會。

存儲礦工如果在必要的時間窗口內(nèi)沒按要求做到,將失去生產(chǎn)區(qū)塊的機會,但不會因為沒產(chǎn)出區(qū)塊而受到其他懲罰。

WindowPoSt

WindowPoSt是 Filecoin 區(qū)塊鏈對存儲礦工做出的承諾進(jìn)行審核的機制。

每個存儲礦工都應(yīng)該維護(hù)他們的承諾扇區(qū)。這些扇區(qū)包含與用戶達(dá)成的交易,或也可能為空。后者被稱為承諾容量,也就是說,礦工可以做出容量承諾,用任意數(shù)據(jù)填充一個扇區(qū),而非用戶數(shù)據(jù)。維護(hù)這些扇區(qū)可以讓存儲礦工證明他們在代網(wǎng)絡(luò)預(yù)留空間。

每一天分成若干 時間窗口 ,目前48個時間窗口,每個持續(xù)時間為30分鐘(60個epoch,因為1個epoch等于30秒)。

每個礦工的承諾扇區(qū)分成若干組,每組對應(yīng)一個時間窗口。

在一個時間窗(30分鐘)內(nèi),每個存儲礦工必須為其該時間窗中的每個扇區(qū)提交一份時空證明。這需要隨時訪問該時間窗輪到的每個扇區(qū),并生成 zk-SNARK 證明加入?yún)^(qū)塊發(fā)布到 Filecoin 區(qū)塊鏈上。這樣,每個承諾存儲的扇區(qū)在每24小時內(nèi)至少會被審核一次,并保留一個永久的、可驗證的、公開的記錄,證明每個存儲礦工保守承諾。

Filecoin中的存儲和檢索交易的用法

在上圖例子中,您能看到一個礦工應(yīng)該在 deadline 0(> 16TB)、deadline 1(< 8TB) 和 deadline 2 (< 8TB) 提交窗口時空證明,其中大部分扇區(qū)都在 deadline 0 。每個礦工的 deadline 是隨機的,對于這個特定的礦工來說,分別從 epoch 1635、epoch 1695和epoch 1755 開始。你可以在SpaceGap工具上檢查這些 deadline 和更多關(guān)于礦工的細(xì)節(jié)。

Filecoin 網(wǎng)絡(luò)期望所存儲的數(shù)據(jù)持續(xù)可用。未能為一個扇區(qū)提交WindowPoSt將導(dǎo)致一個 故障 ,而供應(yīng)該扇區(qū)的存儲礦工將被 懲罰 。這激勵存儲礦工健康運轉(zhuǎn)。

故障

當(dāng)因為網(wǎng)絡(luò)連接丟失、存儲故障或惡意行為導(dǎo)致證明未在期限內(nèi)被納入Filecoin區(qū)塊鏈時,故障就發(fā)生了。

當(dāng)一個扇區(qū)被登記為故障時,F(xiàn)ilecoin 網(wǎng)絡(luò)將對本應(yīng)存儲該扇區(qū)的存儲礦工進(jìn)行懲罰;也就是說,將對礦工未能持續(xù)存儲的行為進(jìn)行處罰評估(從礦工預(yù)付的抵押品中支付)。

扇區(qū)故障費分為三類:

  • 扇區(qū)故障費:需由每個處于故障狀態(tài)的扇區(qū)每天支付。該費用的大小略高于該扇區(qū)每天預(yù)計獲得的區(qū)塊獎勵額。如果一個扇區(qū)連續(xù)2周以上處于故障狀態(tài),該扇區(qū)將支付終止費,并從區(qū)塊鏈狀態(tài)中移除。

  • 扇區(qū)故障檢測費:這是一次性支付的費用,如果該故障是由鏈上機制檢測發(fā)現(xiàn)而非礦工誠實上報時收取??紤]到時空證明檢查的概率性,該收費額設(shè)為對應(yīng)扇區(qū)在若干天時間中的區(qū)塊獎勵。

  • 扇區(qū)終止費:一個扇區(qū)可能因為故障或礦工主動而在到期日之前終止。收取的終止費原則上相當(dāng)于一個扇區(qū)當(dāng)前所產(chǎn)生的收益,且不超過一個限額,以免阻礙長時扇區(qū)。

結(jié)論

本文描述了關(guān)于存儲和檢索 Filecoin 上數(shù)據(jù)的一些概念、用戶和礦工為存取數(shù)據(jù)使用的協(xié)議以及這些流程中所涉的各類證明和保證。

從用戶和礦工的視角,詳細(xì)介紹存儲交易和檢索交易的流程;以及在某一方出現(xiàn)惡意行為時, Filecoin 協(xié)議對其的懲罰措施。

到此,相信大家對“Filecoin中的存儲和檢索交易的用法”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前標(biāo)題:Filecoin中的存儲和檢索交易的用法
當(dāng)前路徑:http://bm7419.com/article48/igsshp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、虛擬主機、App設(shè)計、網(wǎng)站排名面包屑導(dǎo)航、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司