FileCoin封装过程原理
2023-07-20 10:51:56 0 举报
FILECOIN封装过程原理,以及filecoin基本知识!
作者其他创作
大纲/内容
Car
在P2 阶段,系统要用到Poseidon哈希算法产生默克尔树。可以分解成如下3个部分的计算。1. column hash 2. 针对column hash的计算结果生成merkle树(八叉树,poseidon hash计算)3. 针对label的计算结果,再做一次encoding,生成merkle树(八叉树,poseidon hash计算)。注意:这个阶段因为支持并行。官方推荐采用GPU实现。效率和系统GPU的性能有关,也可以用CPU替代GPU,但性能就差很多。使用GPU时,这个阶段大概要花8-10分钟。
扇区封装获得算力的过程就像割麦子一样。我们用收割机来割麦子,就像我们通过搭建计算集群来对数据进行计算封装获取算力。
Pledge
“复制证明”(PoRep)是一个新型的存储证明。它允许服务器(证明人P)说服用户(验证者V)一些数据D已被复制到它唯一的专用物理存储上了。
矿机其实就是存储集群,就像我们用来装麦子的袋子。没有存储数据的矿机是没有什么价值,就像没有装满麦子的袋子也是没有什么价值的。
span style=\
C1是个过渡阶段,它为后续的证明工作进行各项准备工作,其性能与CPU有关,通常花费几十秒。
收割好的麦子没有进行妥善保存,麦子在仓库里被老鼠吃掉了、淋雨受潮变质甚至被偷掉了,你收割的麦子也会损失掉。而你封装好数据的扇区如果不能完成挑战提交时空证明,算力也会被扣罚。与传统的比特币挖矿原理不同的是,比特币挖矿的算力是恒定的,矿机接入网络之后,每天的产币量就是一个恒定值。但Filecoin挖矿则不同,Filecoin挖矿的算力值根据封装数据来定,这意味着它的算力是在不断累积的。
“时空证明”(PoSt)使得有效的证明人P能够说服一个验证者V相信P在一段时间内已经存储了一些数据D。
Sealing Commit的阶段1(C1)
Pieces
证明
数据分配追踪表,它记录了每个 Pieces 和 Sector 的对应关系
扇区,矿工提供存储空间的最小单元,也就是说在我们创建矿工的时候抵押存储空间大小必须是 Sector 的整数倍。目前测试网络一个 Sector 的大小是 32GB。
封装过程
最后一个阶段叫C2,要做的是零知识证明,就是为了将来提交时空证明而准备的,那么什么是零知识证明呢?就是存储这个阶段,在我不知道存储的内容的情况下,也能证明我已经保存了这个文件,那么这就是C2阶段。
抵押,矿工必须需要向 Filecoin 网络抵押 FIL 代币才能才能开始接受存储市场的订单
因为在IPFS网络里,文件都要进行切片,最大不能超过256K。那么把这个文件分割的这个阶段就叫做P1
下一步要做什么?就是给这些小箱子贴标签,这就是C1的阶段
收割好了麦子装进袋子,就像将数据封装进矿机的硬盘里,然后将收割好的麦子拿去卖掉换钱的过程,就是参与区块打包获得区块奖励一样。收割的麦子越多卖的钱越多,封装的数据越多、算力越大,获得的区块奖励也越多。
Sectors
Sealing Commit的阶段2(C2)
但是在preCommit阶段1和preCommit阶段2之间会进行大量的文件传输,主要是P1阶段的原始阶段SDR数据。对32GB的Seal单元来说,至少需要352G的SDR。如果处理这两个阶段的机器网络性能差,或者存储设备使用的是普通硬盘而非固态硬盘则会大大降低系统的整体效率。 注意:SDR 352G文件在P2和C2的处理,如果可以考虑和P1合并进行预计算。这样在不影响集群架构的情况下,降低网络数据传输要求。
Sealing preCommit的阶段2(P2)
FILECOIN
P1precommit111个32G文件
P2precommit2
第二阶段就是把这个装成小箱的数据碎片做好文件名和一些信息的记录。就是我们通常所说的动态哈希列表DHT的形成过程,那么以后要找文件。全凭这个DHT。这个生成动态哈希列表的过程就叫P2。因为这个过程需要生成默克尔苏,所以需要使用GPU。
C2commit2
Sealing preCommit的阶段1(P1)
第一阶段以箱子为例,来了一堆文件,数据怎么办?当然是把它们进行分割装箱了
deal
这个封装过程要进行零知识证明运算,它会对前面产生的结果再次进行压缩,然后将其广播到区块链。注意:这个过程支持并行计算,极度依赖GPU,通常要花费10至30分钟。 协议实验室发现,P2、C1和C2这三个阶段可以在算力配置强,配置GPU的同一台机器上运行。
矿机
在P1阶段,复制证明的SDR算法会进行编码运算。可以分解成2部分的计算。1. 计算原始数据的merkle树(二叉树,sha256 hash计算)2. label,也就是SDR的计算。原始数据的merkle树(tree _d),树根为comm_d。注意:由于SDR的算法特性,SDR的计算目前官网是采用CPU直接计算的,其计算效率和系统的CPU性能有关,是单线程运算(不能进行并行运算)。这个阶段可能会长达若干小时,具体花费的时间和所封装扇区的大小及机器的配置有关。 协议实验室的相应评估报告,支持SHA功能的AMD处理器在这方面有很大的优势,并且CPU的频率越高越好。这个原因是AMD高端CPU直接带SHA加速指令。
AllocationTable
抵押机制、释放机制、基准线
C1commit1
0 条评论
下一页