TOR:Filecoin技术分析:深入理解存储管理

Filecoin的存储单元称为扇区(Sector)。对传统硬盘结构理解的小伙伴,对这个术语应该比较亲切,传统硬盘的最小存储单元就叫Sector。为了证明Sector的存储,Filecoin进行了一系列的处理,传说中的P1/P2/C1/C2。在处理过程中,一个Sector的计算会生成若干文件,最终会生成replica。相关文件是如何组织的?Cache都是由哪些文件组成,分别是多大?本文就从存储的角度看看这些过程和逻辑。

Filecoin的存储管理的逻辑主要实现在sector-storage项目中。在深入理解Sector存储逻辑之前,先讲讲Worker和Manager。

01 相关术语

Worker - 处理P1/P2/C1/C2的服务,Worker又分为两种:local worker和remote worker。local worker处理本地服务处理,remote worker支持远程服务处理

Manager - 管理多个Worker

Filecoin网络近24小时产出33.9万枚FIL:据IPFS100报道,Filfox浏览器数据显示,Filecoin网络当前区块高度为1098361,全网有效算力为10.544EiB,总质押量约为1.0916亿枚FIL,活跃矿工数为3177个,每区块奖励为24.0348FIL,近24小时产出338958枚FIL,24小时平均挖矿收益为0.0309FIL/TiB,目前FIL流通量为168793887。当前销毁27912803枚FIL。当前FIL最新价格为88.49美元。

目前有效算力排名前三的分别为:f0127595(MetaverseInfrast)以132.70PiB暂居第一,f0688165(MetaverseInfrastructure)以132.39PiB位居第二,f0142720(RRM-雅典娜)以119.74PiB位居第三。

注:根据Filecoin官方释放规则,Filecoin将于2021年10月15号迎来第二次减产。[2021/9/10 23:15:33]

Scheduler - 调度器,调度多个Worker,一个Manager通常有一个Scheduler

火币商城将开放购买Filecoin满存算力:据官方消息,火币商城将于2021年2月1日16:00(GMT+8)开售Filecoin满存算力,“Filecoin满存算力”产品是火币商城推出的Filecoin硬件租赁及软件管理服务业务,旨在为用户提供安全、透明、可靠、便捷的渠道参与IPFS挖矿。更多详情请登录官网查看。[2021/1/29 14:20:15]

Store - Sector存储系统

02 Sector存储

Sector处理相关的文件存储在Store中。Store通过sectorstore.json进行配置:

CanSeal表明Store可以用来Seal(存储Seal相关的临时文件),CanStore表面Store可以持久存储Seal的结果(replica)。Weight 是权重,在多个Store选择时使用。ID是Store的UUID编号。

库币已于10月16日1:25 上线?Filecoin (FIL):据库币KuCoin交易所消息,库币已于10月16日1:25 上线Filecoin (FIL),并支持FIL/USDT交易服务。Filecoin是IPFS网络的激励代币,通过区块链的Token激励模型构建了一个去中心化存储网络。库币数字货币交易所,为来自207个国家的600万用户提供币币、法币、合约、矿池、借贷等一站式服务。[2020/10/16]

一个Store中存在三种存储,分别对应三种目录:unsealed (未封存的文件),cache(缓存文件),sealed(封存后的文件)。

03 Worker & Store

sector-storage项目的README中的这张图很好的解释了sector storage的各个模块以及相互的关系:

Gate.io已为FIL交易K线添加FIL6历史参考数据,现货价格最高达237美元:据官网公告,Gate.io已为用户完成首批FIL转换和开通FIL交易,主网上线第一天Gate.io平台释放总量约为1.3w枚,截止今日18:00,FIL现货价格最高达237美元,当前报价204.66美元。Gate.io已为FIL交易K线添加FIL6历史参考数据,用户可在FIL的交易K线中查看历史FIL6的行情数据。

Gate.io提示:K线交易数据仅作为用户分析价格走势的参考,并不作为投资依据,请务必知晓。详情点击原文链接。[2020/10/15]

整幅图分为上下两个部分:上部分是Manager,下部分是Remote Worker。Manager中包括一个Local Worker。stores.Index是所有Sector存储的索引。Scheduler,上部分的中间,管理所有的Worker,并且调度Sector相关的存储。

worker management APIs通过/rpc/v0的jsonRPC接口实现remote worker的管理。通过/remote的HTTP API实现存储的Fetch操作,简单的说,传输文件。specs-storage.Prover/Sealer/Storage是Manager暴露出来的接口,实现Sector的证明,封存和存储。

李贝宁:从技术角度看Filecoin还处于成长期:金色财经现场报道,7月6日,由杭州市余杭区政府指导,杭州未来科技城管委会、巴比特主办的2020杭州区块链国际周在杭州举办。在主题为《颠覆云存储,IPFS引领新一轮数字革命?》的圆桌上,江西正舵者网络科技有限公司CTO李贝宁表示,从技术角度看,Filecoin还处于成长期,很多方面还有待发展。我的观点是,大家短期高估了它的能力,长期低估了它的潜力,Filecoin要建立的是全球性的分布式存储网络,所以不要过度关注短期FIL的价格。[2020/7/6]

每个连接到Manager的Worker会和Manager同步它的内存/CPU以及显存的信息。Scheduler在接受到新的请求时,会针对请求(Task)的类型以及资源的需求,从当前Worker中挑选最合适的Worker进行请求的处理。如何选择Worker,感兴趣的小伙伴,可以查看selector的相关逻辑。

从存储的角度,重新整理一下,这些关系:

以一个Manager连接两个Worker为例。Worker只能Seal,但是不能Store。为了更清楚展示Worker之间的数据传输,第一个Worker只做Precommit1,第二个Worker做Precommit2和Commit。

04 Seal Task

理解Seal Task,最好对照了Sector的状态管理一起看。对Sector状态管理还不熟悉的小伙伴,可以查看之前的文章:

Filecoin - Sector状态管理逻辑

接下来,看看每个Seal Task对应的存储数据的变化。

如果其中左边的Worker接收到任务,AddPiece任务会在unsealed目录中创建原始数据。

PreCommit1阶段,简称P1,针对SDR算法,计算若干层数据。如果Sector是32G,需要计算11层。对SDR算法不熟悉的小伙伴,可以看看之前的文章:

经过PreCommit1,生成的数据存储在Cache中:

PreCommit2

PreCommit2的阶段,简称P2,生成Replica,计算Column Hash,并生成Merkle树(tree_d, tree_c, tree_r_last)。因为P2,不在同一个Worker处理,在进行处理之前,需要先传输给合适的Worker,处理的结果同样存储在Cache中:

在Commit生成证明后,进入Finalize状态,Finalize可以理解成“归档”。因为在Worker上没有Store能力,删除不需要持久化的数据,需要持久化存储的数据,将传输回Manager。

05 数据存储量

以32G的Sector为例,在处理过程中需要存储的数据如下:

原始数据 - 32G

原始数据Merkle - 32G

P1 layer - 32*11G

P2 - Column Hash  & tree_c - 32*2 G

P2 - Replica & tree_r_last - 32G + 9.2M*8

总共:512G多一点。

06 持久化数据

Sector经过P1/P2/C1/C2处理后,也就是说,经过PoREP处理后,需要持久化存储Replica的数据和tree_r_last的数据。tree_r_last的数据需要存储的原因是PoSt要用到。特别注意的是,tree_r_last的数据并不是完整的Merkle树数据,删除了其中一些层的数据。

32G的Sector,对应的tree_r_last分成了8棵子树,每棵子树是8叉树,默认存储的时候,忽略了最低的两层。也就是,去除最低两层的存储量为:

所以每棵子树的存储数据为4G*0.00223 = 9.13M。

也就是说,Sector持久化存储比例在1.0022左右。

总结:

Filecoin存储管理的逻辑主要在sector-storage中。Sector的处理任务,可以通过多个Worker完成。每个Worker的存储目录结构一致,Sector数据可以在多个Worker之间通过Http服务传输。Sector处理过程中,最大的存储需求量在512G左右。持久化存储比例为1.0022。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

比特币交易所ETH:一文详解信标链的创世

人生中能见证庞大的、分布式的多客户端区块链创世的机会是非常难得的。不久前的7月30日是以太坊1.0区块链创世的五周年——真正重大的创世事件很罕见且相隔甚远.

[0:0ms0-1:84ms