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
Scheduler - 调度器,调度多个Worker,一个Manager通常有一个Scheduler
Store - Sector存储系统
02 Sector存储
Sector处理相关的文件存储在Store中。Store通过sectorstore.json进行配置:
CanSeal表明Store可以用来Seal(存储Seal相关的临时文件),CanStore表面Store可以持久存储Seal的结果(replica)。Weight 是权重,在多个Store选择时使用。ID是Store的UUID编号。
报告:BTC和ETH两种加密货币占银行风险敞口的近90%:金色财经报道,尽管全球银行对加密货币市场的敞口仍然相对较小,但这些金融机构正在慢慢向数字资产敞开大门,国际清算银行 (BIS) 的一份新报告列出了这些银行中最受欢迎的加密货币报告了加密货币风险。
根据巴塞尔协议 III?,按市值计算的两种最大的加密货币比特币和以太坊处于领先地位,据报道,31%的加密资产敞口属于比特币,22%属于以太坊。这两种主要加密货币“占报告风险敞口的近 90%”,而银行中其他加密资产包括:DOT占报告风险暴露的2%,XRP占报告风险暴露的 2%,ADA占1%,SOL占 1%,LTC占 0.4%,XLM占 0.4%。
BIS 解释说:根据巴塞尔委员会当前的咨询提案,这些风险敞口很可能被归类为第 2 组加密资产。银行还报告了少量稳定币和代币化资产。[2022/10/4 18:38:49]
一个Store中存在三种存储,分别对应三种目录:unsealed (未封存的文件),cache(缓存文件),sealed(封存后的文件)。
03 Worker & Store
sector-storage项目的README中的这张图很好的解释了sector storage的各个模块以及相互的关系:
整幅图分为上下两个部分:上部分是Manager,下部分是Remote Worker。Manager中包括一个Local Worker。stores.Index是所有Sector存储的索引。Scheduler,上部分的中间,管理所有的Worker,并且调度Sector相关的存储。
现货黄金向上触及1860美元/盎司:行情显示,现货黄金向上触及1860美元/盎司,日内涨0.52%。[2021/11/17 21:58:05]
worker management APIs通过/rpc/v0的jsonRPC接口实现remote worker的管理。通过/remote的HTTP API实现存储的Fetch操作,简单的说,传输文件。specs-storage.Prover/Sealer/Storage是Manager暴露出来的接口,实现Sector的证明,封存和存储。
每个连接到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。
标签:CTOOINCOINNBAVictory Impact CoinEXMO Coincoinbase股票Moonbase
8月6日,证监会科技监管局局长姚前、蚂蚁集团董事长井贤栋做客由蚂蚁链、罗汉堂和新浪财经联合主办的对话访谈节目《寻找区块链力量》。 姚前指出,基于区块链的可信数据是高质量数字化转型的关键,“如果数字时代的数据不可信,那么所有的数字化建设都是空中楼阁”。他建议要严把区块链入口,防止大量垃圾数据和低价值数据上链。
本周早些时候,我们朝着在 Polkadot 上实现平行链功能迈出了重要的一步,我们推出了专门为平行链及其相关技术设计的新测试网,称为洛可可( Rococo)。Rococo 测试网将 Polkadot 与 Cumulus 和 HRMP(Horizontal Relay-chain Message Passing) 集成在一起。
我们都知道,Coinbase现在正在计划上市。最近有媒体报道,在对Coinbase2020年上半年的机构性分析当中,揭示出Coinbase现在拥有3500万的用户,包括机构和个人用户。这个报道没有说这些用户在全球范围内的分布如何。但是鉴于Coinbase的发展历史,我认为它的相当一部分用户是在美国海外的。
一、Defi引爆牛市 最近,BTC终于涨破10000U,各币友们纷纷高呼牛市来了,连《富爸爸,穷爸爸》作者都发推称:如果你有钱,不妨购买比特币和白银。 每一轮行情都有一个新故事带动,比如2017年牛市,是由ETH的IXO带动起来的。2018年的小牛,是由公链故事带动起来的。
比特币CME(芝加哥商品交易所)期货图表上的跳空缺口(Gap)一直是加密社区的热议话题。 我们知道,在主流交易所上,比特币交易7乘24小时持续进行,永不停歇。但是,CME在周末是不进行交易的,因此等CME在工作日恢复交易时,通常会在图表上形成缺口。 物理学中有一句名言,“自然是厌恶真空的。
联盟链已占据了区块链江湖的半壁江山。但我们似乎对联盟链的崛起并未感知。 自2015年Linux发起了Hyperlegder项目,联盟链也是经历了技术和解决方案上的快速进化。在2020年,联盟链在中国拥有了更前沿的发展方式,这来源于联盟链在传统IT领域的创新和融合。 链,是将多个节点的资源聚集而成的一条网络。