Filecoin Spec —— 概述(下)

2020-12-24 騰訊網

本文由星際聯盟Boni Liu翻譯,轉載請註明出處。

星際聯盟計劃提供對Filecoin Spec 的全文翻譯,便於Filecoin項目廣大中國參與者理解Filecoin的深層原理。文章將定期更新章節,請持續關注"IPFS星際聯盟"&"星際聯盟Filecoin"公眾號。

1.5 更改日誌 - 版本歷史

1.5.1 v1.1 - 2019-10-30 - c3f6a6dd -

鏈上交易

存儲交易

完整的存儲市場Actor邏輯:

客戶和礦工的收支:押金,鎖定,費用和取款

質押削減

完整的StorageMinerActor邏輯:

故障扇區,掉電,到期等等

扇區驗證,故障,恢復和到期

sector狀態,狀態轉換,狀態核算,算力核算

故障聲明 + 修復Sectors流程

提交扇區流程

提交選舉或SubmitSurprisePoSt流

OnMissedSurprisePost流

StoragePowerActor

算力核算基於StoragePowerActor狀態的更改

抵押品:存款,鎖定,提款

削減質押

Interactive-Post

StorageMinerActor: 預提交扇區 和 提交扇區

Surprise-Post

挑戰流程為 CronActor -> StoragePowerActor -> StorageMiner -

虛擬機

InitActor基本流程,插入運行時

CronActor全流程,靜態註冊表

申請消息

-> 轉移 - 更安全

gas核算

縮小的界面

安全狀態獲取,釋放,提交流程

退出碼 - 完整的調用流程

更安全的遞歸上下文構造

錯誤級別和處理

檢測和處理gas錯誤

方法調用表示

代碼和狀態的分離

從區塊鏈中提取VM系統

地址

Actors

消息

運行時間

解釋程序

VM系統參與者

AccountActor基本流程

數據傳輸

push, pull, 1-RTT pull

協議,數據結構,接口

圖表

完整的數據傳輸流程

區塊鏈/鏈同步

鏈同步協議描述的第一個版本

包括協議狀態機描述

網絡引導程序–連接性和狀態

漸進區塊驗證 - 漸進區塊傳播

其他

細則部分狀態指示燈

變更日誌

1.5.2 v1.0 - 2019-10-07 - 583b1d06

全面細則重組

工具

添加了構建系統以編譯工具

添加了繪圖工具(dot, mermaid等)

添加了附屬圖安裝

添加了Orient以計算協議參數

內容

系統總覽

完整的協議美人魚流

filcrypto-密封,PoRep,PoSt算法

ipld - cids, ipldstores

libp2p - 主機/節點表示

ipfs - graphsync 和 bitswap - 多種格式

multihash,multiaddr

確定模型和區塊大小的orient模型

交易:存儲市場交易基礎

存儲市場:StorageMarketActor基礎

存儲礦工:控制和協調存儲挖礦的模塊

扇區:存儲單位,密封,加密工件等

扇區索引:描述扇區數量和元數據

儲存證明:印章,posts等

骨架部分

blocks - 基本的區塊鏈數據結構(blocks, tipset, chain等)

存儲算力共識 - SPC的基本算法和加密工件

StoragePowerActor 基礎

file - 數據的基本表示

piece - 表示存儲在filecoin中的數據

類型 - 不同FileCoin節點類型的概述

存儲庫 - 本地數據結構存儲

網絡接口 - 連接到libp2p

時鐘 - 掛鍾

filecoin節點

文件和數據

區塊鏈

代幣

存儲挖礦

市場

Orient

圖書館

圖表

1.5.3 pre v1.0

文件共享協議的擴展寫入 - 可見 詳情

查看所有更改日誌:github.com/filecoin-pr…

1.6 系統分解

1.6.1 什麼是系統?它們如何工作?

Filecoin將其功能解構並模塊化為鬆散連接的系統。每個查看重要的功能,通常用來實現一系列重要且緊密相關的目標。

例如,區塊鏈系統提供了諸如區塊,區塊集合、鏈之類的結構,並提供了諸如區塊同步,區塊廣播,區塊驗證,鏈選擇和鏈訪問之類的功能。這與文件,片段,片段準備和數據傳輸分開。這些系統都是與市場分開,提供訂單,交易,市場可見性和交易結算。

1.6.1.1 為什麼系統解耦是有用的?

這種解耦對於以下方面很有用:

實現邊界:可以只用一部分子系統來構建實現Filecoin。這對於實現多樣性特別有用:我們需要安全性關鍵系統(例如,區塊鏈)的許多實現,但不需要可以解構的系統的許多實現。

運行解耦:系統耦使後,構建和運行將系統隔離到單獨程序甚至單獨物理計算機中的Filecoin節點變得更加容易。

安全隔離:一些系統比其他系統需要更高的操作安全性。系統解耦使實現能夠滿足其安全性和功能性需求。一個很好的例子是將區塊鏈處理與數據傳輸分開。

可伸縮性:系統和各種用例可能會為不同的操作者帶來不同的性能要求。系統解耦使得操作者更容易根據系統邊界來衡量他們的部署。

1.6.1.2 Filecoin節點不需要所有系統

Filecoin節點差異很大,並且不需要所有系統。大多數系統僅在部分用例中才需要。

例如,需要區塊鏈系統來同步鏈,參與安全共識,存儲挖掘和鏈驗證。許多Filecoin節點不需要鏈,只需從其信任的節點中從最新StateTree中獲取內容即可執行其工作。當然,這樣的節點:

注意:Filecoin不使用在比特幣和其他區塊鏈網絡中廣泛使用的「完整節點」或「輕客戶端」術語。在Filecoin中,這些術語定義不明確。最好根據節點的功能來定義節點,因此也要根據它們所運行的系統來定義節點。例如:

鏈驗證節點:運行區塊鏈系統。可以同步和驗證鏈;無法挖掘或生產區塊。

客戶端節點:運行區塊鏈。市場和數據傳輸系統;可以同步和驗證鏈;無法挖掘或生產區塊。

檢索礦工節點:運行市場和數據傳輸系統;不需要鏈;可以進行檢索交易(檢索提供方);可以發送客戶端的數據並得到報酬。

存儲礦工節點:運行區塊鏈,存儲市場,存儲挖掘系統。可以同步和驗證鏈。可以進行存儲交易(存儲提供方)。可以將存儲的數據密封到扇區中。可以獲得存儲共識算力。能夠挖掘和生產區塊。

1.6.1.3 分離系統

我們如何確定一個功能是屬於哪個子系統?

在系統之間劃定界限是將緊密相關的功能與無關部分分開的藝術。從某種意義上說,我們試圖將緊密集成的組件保持在同一系統中,並遠離其他無關的組件。有時這很簡單,界限來自數據的結構或功能。例如,我們可以很容易觀察到,客戶和礦工彼此協商交易與虛擬機執行無關。

有時這很難,並且需要整理,添加或刪除抽象概念。例如,StoragePowerActor和StorageMarketActor以前是單個Actor。這導致整個StorageDeal製造,StorageMarket,整個市場與存儲採礦,扇區密封,PoSt生成等之間的功能耦合。理順這兩組相關功能需要將一個參與者分成兩個。

1.6.1.4 在系統內分解

系統本身分解為較小的子單元。這些有時稱為「子系統」,以避免與更大的一流系統混淆。子系統本身可以進一步分解。此處的命名沒有嚴格執行,這些細分與協議和實現工程方面的問題更多地相關,而不是與用戶功能有關。

1.6.2 實施系統

1.6.2.1 系統要求

為了使將功能與系統解耦更加容易,Filecoin協議假定了一組可用於所有系統的功能。此功能可以通過實現以多種方式來實現,並應將此處的指南作為建議(應當)。

所有的系統,如本文檔中定義,要求如下:

資料庫

本地IpldStore。用於數據結構(小型結構化對象)的一定數量的持久本地存儲。系統期望使用IpldStore進行初始化,其中的存儲數據結構在崩潰中也會持續存在。

用戶配置值。少量用戶可編輯的配置值。這些應該使終端用戶易於訪問,查看和編輯。

本地安全密鑰庫。用於生成和使用加密密鑰的工具,必須對Filecoin節點保密。系統不能直接訪問密鑰,必須通過抽象(即KeyStore)來實現,該抽象提供了加密,解密,籤名,籤名驗證等功能。

本地文件存儲。某些文件的持久的本地存儲(大字節數組)。系統期望使用能存儲大文件的FileStore進行初始化。某些系統(例如Markets)可能需要存儲和刪除大量較小的文件(1MB-10GB)。其他系統(如存儲挖礦)可能需要存儲和刪除大量的大型文件(1GB - 1TB)。

網絡。大多數系統需要訪問網絡,才能連接到他們對應的Filecoin節點。系統會使用libp2p.Node進行初始化,並可以在其上安裝自己的協議。

時鐘。有些系統需要訪問當前的網絡時間,而有些系統對浮動的容差較低。系統初始化會使用一個時鐘來得知網絡時間。一些系統(如區塊鏈)需要很少的時鐘浮動,並且需要安全的時間。為此,我們使用FilecoinNode數據結構,該數據結構會在初始化時傳遞給所有系統:

import repo"github.com/filecoin-project/specs/systems/filecoin_nodes/repository"

import filestore"github.com/filecoin-project/specs/systems/filecoin_files/file"

import clock"github.com/filecoin-project/specs/systems/filecoin_nodes/clock"

import libp2p "github.com/filecoin-project/specs/libraries/libp2p"

import message_pool"github.com/filecoin-project/specs/systems/filecoin_blockchain/message_pool"

typeFilecoinNode struct {

Node libp2p.Node

Repository repo.Repository

FileStore filestore.FileStore

Clock clock.UTCClock

MessagePool message_pool.MessagePoolSubsystem

}

import ipld"github.com/filecoin-project/specs/libraries/ipld"

import key_store"github.com/filecoin-project/specs/systems/filecoin_nodes/repository/key_store"import config"github.com/filecoin-project/specs/systems/filecoin_nodes/repository/config"

typeRepository struct {

Config config.Config

KeyStore key_store.KeyStore

ChainStore ipld.GraphStore

StateStore ipld.GraphStore

}

1.6.2.2 系統限制

此外,系統必須遵守以下限制:

隨機崩潰。一個Filecoin節點可能隨時崩潰。當崩潰時,系統必須是安全且一致的。這主要是通過限制持久狀態的使用,通過Ipld數據結構持久化這種狀態,以及通過使用檢查狀態的初始化例程,以及糾正可能錯誤來實現的。

隔離。系統必須通過定義明確的獨立接口進行通信。他們不得在共享內存空間上構建關鍵功能。(注意:為了提高性能,共享內存抽象化可用於為IpldStore,FileStore和libp2p提供算力,但是系統本身不應該需要它)。這不僅僅是操作上的問題;它還顯著的簡化了協議,並使之更易於理解,分析,調試和更改。

無直接訪問主機操作文件系統或磁碟。系統無法直接訪問磁碟,而是通過FileStore和IpldStore抽象來進行。這將為最終端用戶提供高度的移動性和靈活性,尤其針對於存儲礦工和需存儲大量數據的客戶,這需要能夠簡單替換其Filecoin節點訪問本地存儲的方式。

無直接訪問主機作業系統的網絡堆棧或TCP / IP。系統無法直接訪問網絡-它們通過libp2p庫進行訪問。不得有任何其他種類的網絡接入。這為跨平臺和網絡協議提供了高度的移動性,使Filecoin節點(及其所有關鍵系統)在多種設置下可以使用各種協議(例如,藍牙,LAN等)運行。

相關焦點

  • Filecoin實現偉大前景:關於Filecoin四大實現
    和大部分區塊鏈項目只擁有一個實現所不同的是,Filecoin擁有四大實現,分別是Lotus、Forest、Fuhon、Venus(go-filecoin),這四種協議雖然是互相獨立的,但是都能在Filecoin網絡啟動、升級和不足夠穩定時保護和幫助網絡。 1.
  • Filecoin官方經濟模型解讀助力太空競賽
    分布式存儲項目Filecoin(FIL)正式發布了一份長達32頁的Filecoin經濟報告,詳細闡述了代幣經濟模型設計的原理和細則。按照Filecoin代幣分配細則:Filecoin代幣總量為20億枚,5%分配給Filecoin基金會,10%用於融資,15%分配給協議實驗室,70%分配給礦工。
  • Filecoin官方太空競賽第二輪AMA答疑整理
    您可以在這裡了解更多信息:https://filecoin.io/blog/space-race-2/2、我們什麼時候能得到太空競賽獎勵的結果?答:我們正在計算最終的數字,希望是周五;如果沒有,那就下周初。
  • Filecoin太空競賽第二階段AMA全文實錄
    您可以在這裡了解更多信息https://filecoin.io/blog/space-race-2/問:我們什麼時候可以獲得第一階段太空競賽獎的結果?答:正如我們所說的,最終的數字-希望星期五; 如果沒有的話,下周初。問:SR2中是否密封有真實數據(或經過驗證的數據)?
  • IPFS-Filecoin是什麼意思?靠譜嗎?
    IPFS-filecoin介紹01filecoin的未來價值創造了全球區塊鏈中融資時間最短、金額最大的項目,受到資本的青睞。2017年,在不到一個小時的時間裡募集到2.57億美元,一夜之間成為熱點。03filecoin的抵押機制是與比特幣和以太坊挖礦最大的區別。Filecoin礦業將公平對待市場中的供需雙方。這樣,flecoin網絡才更加穩定和長遠的發展,保護了所有參與者的利益,進而形成良性循環。
  • 寶二爺在線喊單,讓Filecoin又火了一把?
    存儲礦工用戶將自己的閒置硬碟空間貢獻出來,成為存儲礦工,獲取filecoin得到獎勵。存儲文件的過程大約如下:1、用戶發出存儲需求訂單,系統撮合礦工和訂單,一旦撮合成功後,進入第二步。2、用戶發送文件給礦工,礦工收到文件後放在資料庫裡,進行加密,驗證之後放到鏈上。
  • 精彩實錄:Filecoin官方第二階段太空競賽AMA
    你可以在這裡了解更多https://filecoin.io/blog/space-race-2/。2、什麼時候能拿到太空競賽獎的結果?我們正在核實最終的數字, 希望周五; 如果沒有,下周。這仍然是WIP(應該會在接下來的24小時內完成),但這是我們推薦的安全遷移扇區的工作流程:https://deploy-preview-407--filecoin-docs.netlify.app/mine/lotus/miner-lifecycle/#changing-storage-locations。
  • Filecoin什麼時候上線 Filecoin啟動活動將於10月19日至23日開始
    目前有至少85個組織正在Filecoin網絡上進行協作——創建應用程式、開發者工具、基礎設施等等。Filecoin點燃計劃黑客松系列活動和加速器吸引了成千上萬的社區成員參與,他們在Filecoin網絡上學習、構建和啟動他們的的項目。
  • Filecoin太空競賽啟動儀式
    北京時間8月27日6:00,Filecoin太空競賽開幕式正式啟動,Filecoin是人類最重要的分布式存儲網絡,太空競賽是Filecoin主網啟動前最後一次重大版本的更新,其核心代碼和主網相同。為期三周的太空競賽旨在對網絡進行壓力測試,並為礦工提供一個在主網啟動之前測試技術方案的機會。
  • filecoin幣價預估以後會到多少錢?2024年最低100美元
    IPFs正式發布了使用區塊鏈技術的激勵層filecoin。 自誕生以後,filecoin一直受到世界投融資界的關注,並創造了2.57億美元的區塊鏈融資世界紀錄。根據filecion的分配規則,未上市金額已達25.7億美元。
  • 到底是誰在破壞Filecoin的共識?
    這兩天,Filecoin官方關於解決Gas費的FIP-9提案刷屏了,不明真相的投資者們以為讓礦工們焦頭爛額怨聲載道的高額Gas終於要被解決了。然而我要說一個殘酷的事實,FIP-9並沒有實際解決Gas費,各位千萬不要被某些賣礦機的廠家扭曲解讀而忽悠了。
  • 官方版塊——Filecoin Liftoff Week活動第二天回顧
    (搬自於:https://filecoin.io/blog/mainnet-liftoff-day2/)今天我們結束了Filecoin Liftoff Week第二天的活動。所有人都同意相同的總體思想:Filecoin挖礦適用於其設置,而不管其大小如何。在今天活動開始的礦工聚光燈下,ChainSafe的Eric Tu談到了BigChungus項目以及他的任務,即證明小規模採礦是可行的。後來,Filecoin礦工Benjamin Hoesjbo展示了自己的單礦機設備,解釋了他如何將其連接到地板採暖設備上以實現最大效率。
  • Filecoin官方隔空喊話中國礦工!
    8月11日中午11:05,Filecoin項目成員momack2在slack頻道發文,表示Filecoin校準網絡本周五重置,大礦工測試或將於下周開啟。目前,filecoin太空競賽預覽儀錶盤上,已有30名礦工的交易率達到了100%,但仍然有大量的失敗者。因此,官方呼籲更多的礦工參與到競賽中,以便能夠發現更多的問題,並解決問題。
  • Filecoin太空競賽進行時 你關注的都在這裡
    8月27日北京時間早上6點的Space Race開幕式會上,胡安對filecoin的現狀和及未來做了闡述,太空競賽後主網上線,上線時間在9月中下旬,這是一個利好消息,側面體現了官方的信心以及網絡的成熟度。
  • ipfs/filecoin項目怎麼挖礦賺錢?投資挖礦收益回報率怎麼樣?
    這要從Filecoin的基本功能跟IPFS運行原理說起來,簡單講,就是IPFS打造了一個全球的共享雲存儲服務網絡,任何人可以接入IPFS,角色有兩種:一種是伺服器運營商即礦工,幫助別人存儲文件;一種是存儲用戶。
  • Filecoin第二輪太空競賽第三場AMA精彩答疑摘要
    作為太空競賽活動計劃的一部分,Filecoin團隊將與Filecoin社區一起每周舉辦一次實時AMA。9月30日,Filecoin團隊舉辦了第五次AMA,回答了有關太空競賽2,Filecoin挖掘和Mainnet Liftoff的20多個問題。
  • Filecoin太空競賽,北京時間8月25日上午6點,正式開啟
    「下一個」分支正式合併為「 master」,以準備重置Filecoin Testnet來啟動太空競賽。Epoch將於確切的UTC時間,開始於8月24日星期一晚上10點,大約提前2小時發布,以供礦工使用。02競賽太空競賽是一項協作競賽,旨在對網絡進行壓力測試,鼓勵全世界的參與者參與,並幫助礦工準備運行世界上最大的分散式存儲網絡。
  • 【TokenClub直播】火星雲礦總裁商思林:從比特幣到Filecoin,新礦工的越級之戰|幣安區塊101
    我舉一個例子,filecoin礦機在沒上線之前,filecoin挖礦在整個礦業吸引的資金已經超過百億人民幣,我們自己的一個大概測算,它在上線後第一年整個filecoin礦機的投入在中國可能也超過百億人民幣,這幾乎是跟比特幣2020年整個礦機投資是一個體量的
  • 一文讀懂Filecoin分叉項目Filestar文曲星
    FileStar 項目將致力於連結 鏈下的物理世界,不同於預言機只能連結簡單的價格信息,並提供到鏈上,FileStar 文曲星 將致力於連結網際網路上真實的 計算、存儲、帶寬資源,並形成統一的資源 度量衡和資源表示方法,將這些資源遷移到區塊鏈世界,來構建未來分布式網際網路的物理基礎設施。
  • Filecoin礦工:有人關機,有人分叉,有默默發財
    Filecoin在一個月內籌集了2.57億美元,打破了ICO的世界紀錄,並說服了許多投資者相信Filecoin的實力和前景。Filecoin官員表示,主要網站將在2017年底上線。當時很多人選擇往Filecoin裡投錢,卻發現要等到2020年10月...