
Filecoin
文章平均质量分 90
StarLi_2020
这个作者很懒,什么都没留下…
展开
-
Filecoin - Precommit2计算介绍
Sector计算的部分分为Precommit1和Precommit2两部分。两部分合在一起,称为SDR算法。整个SDR算法的相关计算在之前的文章介绍过。本文着重介绍一下Precommit2的计算逻辑。Precommit2计算分为两部分:1/ Column Hash计算以及Merkle树构造 2/ Replica计算以及Merkle树的构造。相关的逻辑请查看rust-fil-proofs/storage-proofs/porep/src/stacked/vanilla/proof.rs中的transform原创 2021-05-16 16:28:28 · 925 阅读 · 0 评论 -
Filecoin - Trapdoor团队发现PoREP漏洞
Trapdoor团队发现PoREP电路V25版本存在严重漏洞。利用该漏洞,SDR(Precommit1)的计算可以直接省略。所有Sector的Replica的数据也只要存储一份。Trapdoor团队在第一时间和官方沟通后,官方已经快速提交补丁:PoREP电路也从V25版本,升级到V26。本文仔细讲讲该严重漏洞的攻击原理。众所周知,Sector数据会经过Labeling, Column Hash以及Encoding计算生成最后的Replica数据(Precommit1和Precommit2阶段)。整个计原创 2021-05-16 16:12:43 · 454 阅读 · 0 评论 -
Filecoin - Sector状态管理逻辑
好久不看go语言的代码了,最近有空换换脑子,看看Sector的状态管理,纯go语言实现。看看大型项目的代码设计,对代码以及项目的设计开发有莫大的好处。Lotus的go语言部分的最新的代码,采用模块化设计。Lotus的代码也是一步步演进的,第一版的代码也是所有的逻辑耦合在一起,后面才逐步的模块化。Lotus Miner将用户需要存储的数据“打包”成一个个Sector,并对Sector进行处理。本文就讲讲Sector的状态管理。模块框架Sector状态管理相关的模块如下:Sector的状态管理基于状态原创 2021-05-16 16:05:53 · 1086 阅读 · 2 评论 -
Filecoin - 深入理解WindowPoSt
Lotus的PoSt算法,分成两个场景:Winning PoSt和Window PoSt。Winning PoSt是在出块时,对已经提交的Sector数据进行证明。Window PoSt,每隔一段时间对提交的Sector的数据进行证明,证明Sector数据依然正确保存。Winning PoSt的逻辑,可以查看之前文章:https://blog.youkuaiyun.com/StarLi2020/article/details/108816235?spm=1001.2014.3001.5502本文详细介绍Window原创 2021-04-18 10:37:23 · 3008 阅读 · 0 评论 -
Filecoin - winningPoSt逻辑介绍
Lotus的PoSt的部分从electionPoSt变成两种新的PoSt,一种是winningPoSt,一种是windowPoSt。先讲讲winningPoSt吧。winningPoSt,顾名思义,在winning的时候进行的PoSt。所谓的winning,也就是获取出块权。简单的说,winningPoSt,随机抽查的一个sector,该sector中的66条随机抽查的merkle path都能正确。接着讲讲代码逻辑。从Lotus的go的代码说起。一切从出块开始 - lotus/miner/miner.g原创 2020-09-26 19:56:54 · 2359 阅读 · 1 评论 -
Filecoin - 深入理解NSE算法
PoREP算法,从window SDR改成SDR,时间并不长。新的PoREP算法NSE已经在酝酿中。NSE算法的全称:Narrow Stacked Expander PoRep。在rust-fil-proofs的feat/nse分支,可以查看NSE算法的实现。文章使用的源代码的最后一个提交信息如下:commit af4bdcb6da4b371230eed441218c459e99d32068 (HEAD -> feat/nse, origin/feat/nse)Merge: 7e7eab2 57原创 2020-09-26 19:54:09 · 1299 阅读 · 0 评论 -
Filecoin - 深入理解SDR算法
Lotus的Sector处理的算法,从window SDR切换到了SDR。所谓的SDR,就是Stacked DRG (Depth Robust Graph,深度鲁棒图)。重点,就在于算法去掉了“window”。切换算法后,在intel的CPU上,Sector处理(Precommit phase1)阶段的时间非常长,超过了30个小时。Filecoin官方,推荐AMD的RX 3970x,Sector处理时间在4个小时左右。本文深入SDR的逻辑,分析Sector处理慢的原因。相关的逻辑实现在rust-fil-pr原创 2020-07-25 12:14:02 · 5550 阅读 · 0 评论