1.以太坊有evm,filecoin也有 filecoin vm
2.以太坊有交易(tx)的概念,对应filecoin的message
3.以太坊有外部账户和合约账户概念,对应filecoin的actor
无法上传svg,点击下载,用浏览器打开
无法上传svg,点击下载,用浏览器打开
扇区,矿工提供存储空间的最小单元,也就是说在我们创建矿工的时候抵押存储空间大小必须是 Sector 的整数倍。目前测试网络一个 Sector 的大小是 32GB。
数据单元,是 Filecoin 网络中最小存储单位,每个 Pieces 大小为 512KB, Filecoin 会把大文件拆分成很多个 Pieces, 交给不同的矿工存储。
数据分配追踪表,它记录了每个 Pieces 和 Sector 的对应关系,如某个 Pieces 存储在了哪个 Sector. 当某个 Sector 被存满(Fill)了之后,系统将会把该 Sector 封存(Sealing the Sector),然后生成存储证明,这是一个缓慢的操作
抵押,矿工必须需要向 Filecoin 网络抵押 FIL 代币才能才能开始接受存储市场的订单。
通过这张图我们可以从横向(操作)和纵向(角色)来了解整个流程。我们对文件的操作无非就两种,存(Put)和取(Get), 而这两种操作分别对应两种角色,客户和矿工。 外加一个区块链网络和市场管理者(Manage), 这就构成了整个 Filecoin 的 DSN 网络,具体交易流程如下:
(1)客户和矿工分别发送一个竞价订单和出价订单到交易市场(Market),这里需要注意的是,如果是 bid order, 需要注明你这个文件的存储时间(比如三个月), 以及需要备份的数量(比如 3 份),备份数量越多,文件丢失的概率就越低,当然价格也就更高一些。
(2)交易网络管理中心(Manage)分别验证订单是否合法,如果是竞价订单,系统会锁定客户资金,如果是出价订单,系统会锁定矿工的存储空间。
(3)分别执行 Put.MatchOrders 和 Get.MatchOrders 进行订单撮合,成功之后会运行 Manage.AssignOrders 来标记该订单为Deal Orders(成交订单), 并在 AllocationTable 中记订单的 Pieces 和 Sector 信息。
(4)执行文件的 Put 操作,即把文件存储到矿工的硬盘,并生成 PoRep(复制证明)发送给交易网络存储到区块链。
(5)矿工需要定期(every epoch)需要向交易网络发送PoSt(时空证明)来证明你这段时间确实存储了指定的文件,交易网络在验证之后,支付你相应费用(FIL).
“复制证明”(PoRep)是一个新型的存储证明。它允许服务器(证明人P)说服用户(验证者V)一些数据D已被复制到它唯一的专用物理存储上了。
PoRep协议其特征是多项式时间算法的元组:(Setup, Prove, Verify)
• PoRep.Setup(1λ, D) → R, SP, SV, 其中SP和SV是P和V的特点方案的设置变量,λ是一个安全参数。PoRep.Setup用来生成副本R,并且给予P和V必要的信息来运行PoRep.Prove 和 PoRep.Verify。一些方案可能要求证明人或者是有互动的第三方去运算PoRep.Setup。
• PoRep.Prove(SP, R, c) → πc,其中c是验证人V发出的随机验证,πc是证明人产生的可以访问数据D的特定副本R的证明。PoRep.Prove由P(证明人)为V(验证者)运行生成πc。
• PoRep.Verify(Sv, c, πc) → {0, 1},用来检测证明是否是正确。PoRep.Verify由V运行和说服V相信P已经存储了R。
“时空证明”(PoSt)使得有效的证明人P能够说服一个验证者V相信P在一段时间内已经存储了一些数据D。
PoSt其特征是多项式时间算法的元组:(Setup, Prove, Verify)
• PoSt.Setup(1λ,D)->Sp,Sv,其中SP和SV是P和V的特点方案的设置变量,λ是一个安全参数。PoSt.Setup用来给予P和V必要的信息来运行PoSt.Prove和PoSt.Prove。一些方案可能要求证明人或者是有互动的第三方去运算PoSt.Setup。
• PoSt.Prove(Sp, D, c, t) → πc,其中c是验证人V发出的随机验证,πc是证明人在一段时间内可以访问数据D的证明。PoSt.Prove由P(证明人)为V(验证者)运行生成πc。
• PoSt.Verify(Sv, c, t, πc) → {0, 1},用来检测证明是否是正确。PoSt.Verify由V运行和说服V相信P在一段时间内已经存储了R。
filecoin白皮书
filecoin spec
ipfs和filecoin的关系
filecoin工作原理