全球数字财富领导者

Filecoin封装流程介绍

2023-06-20 18:55:26
金色财经
金色财经
关注
0
0
获赞
粉丝
喜欢 0 0收藏举报
— 分享 —
摘要:Filecoin封装流程介绍

本文作者:ZKLink 原创作品,转载请注明出处

lotus-worker 密封一个扇区,通常需要经历以下几个过程:

  • AddPiece (简称 AP) :主要填充一个扇区,不耗时

  • PreCommitPhase1 (简称 PC1) : 进行大量的、不可并行的哈希计算(使用 SHA256 哈希算法),非常耗时

  • PreCommitPhase2 (简称 PC2) : 进行大量的、可并行的哈希计算(使用 Poseidon 哈希算法),比较耗时

  • CommitPhase1 (简称 C1) : 做一些检查和配置,没有实际计算,不耗时

  • CommitPhase2 (简称 C2) : 做存储证明(PoRep)过程,比较耗时

有关密封流程的详细信息,可参考官方的 【Specification说明文档】。

1. AP 计算过程

Worker接收到任务后,AddPiece任务会在unsealed目录中创建原始数据

2. PC1 计算过程

对于 32GB 的扇区,P1 计算过程是生成 11 层数据,每层数据都是 32GB 大小,并且除了第一层之外,剩下的 10 层数据的生成过程是完全一样的。 这里涉及到一个节点的概念,其实就是把一个 32 字节的数据当做一个节点,一层 Layer 由 1G(1G=1024*1024*1024) 个连续的节点组成,仅此而已。

v2-0bd02c62f97a9a3a4b70e3044f109423_1440w.webp

3. PC2 计算过程

P2 的运算过程其实也很简单,只是使用的哈希算法是 Poseidon 哈希算法而已,本质上还是进行哈希运算。 P2 分为两个阶段,一个是 Building column hash(也叫做 Building tree c),另一个叫做 Building tree r last。 只不过,在 Building column hash 的时候,会把每层的 1G 个节点的划分为大小相等的 8 份,每一份都是 128M 个节点,最后生成一个 8 个 tree-c(tree-c-0 ~ tree-c-7)(下图为了简洁,没有体现划分 8 份的操作)。 Building tree r last 和 Building column hash 基本一样,只是使用的数据不一样罢了,最后生成 tree-r-last-0 ~ tree-r-last-7。

v2-643c620dbbfb799318221afc8f22dac8_1440w.webp

PC2 的过程可以进行大规模的并行运算,前后没有依赖关系,因此,更适合使用显卡进行计算,唯一需要克服的一点就是:从磁盘读取大量数据并传输到显存的过程。

来源:金色财经

敬告读者:本文为转载发布,不代表本网站赞同其观点和对其真实性负责。FX168财经仅提供信息发布平台,文章或有细微删改。
go