什么是filecoin

概念

  • Filecoin是基于区块链机制的分布式存储网络。
  • Filecoin 矿工可以选择提供网络存储,通过定期产生证明其正在提供指定容量的加密证明来获得Filecoin加密货币(FIL)
  • Filecoin使各方能够通过Filecoin区块链上共享账本中记录的交易来交换FIL货币。
  • 加密货币FIL是沟通资源使用者(用户)和资源提供者(矿工)的中介桥梁,filecoin协议拥有两个交易市场,数据检索和数据存储,双方在市场里面提交自己的需求,达成交易。
  • Filecoin并没有使用Nakamoto风格的工作量证明来维持对链的共识,而是使用存储证明本身:矿工在共识协议中的能力与其所提供的存储量成正比。
  • Filecoin区块链不仅维护FIL交易和帐户的状态,而且实现Filecoin VM,这是一种复制状态机,在网络参与者之间执行各智能合约

filecoin与ifps的关系

  1. IPFS不是区块链项目,它是一种分布式的、点对点的新型超媒体传输协议,对标目前的互联网 HTTP 协议,主要作用是提供数据的存储和传输。ipfs是一个协议也是一个p2p网络,它类似现在的bt网络,只是拥有更强大的功能,使得ipfs可以拥有了取代http的能力。所以,IPFS 可以成为区块链的底层基础设施,为区块链、DApp 提供数据存储服务。
  2. Filecoin 是运行在 IPFS 上的一个激励层,是一个区块链项目。Filecoin 和 IPFS 一样,两者均由Protocol Labs创建。 。filecoin是一个分布式存储网络,把云存储变为一个算法市场,代币和区块链在这里面起到很重要的作用。
  3. ipfs有巨大存储需求和节点需求,我们都知道p2p网络节点越多下载越快,如果没有激励机制,谁愿意贡献如此多的节点和存储呢,于是filecoin来了。filecoin可以为ipfs贡献很多很多节点,同时filecoin带着一个巨大的分布式存储空间,同时解决了ipfs的存储问题。

filecoin与eth的相似之处

1.以太坊有evm,filecoin也有 filecoin vm
2.以太坊有交易(tx)的概念,对应filecoin的message
3.以太坊有外部账户和合约账户概念,对应filecoin的actor

架构概述

filecoin子系统

filecoin协议概述

无法上传svg,点击下载,用浏览器打开

链上交易流程图

无法上传svg,点击下载,用浏览器打开

核心概念

Sectors

扇区,矿工提供存储空间的最小单元,也就是说在我们创建矿工的时候抵押存储空间大小必须是 Sector 的整数倍。目前测试网络一个 Sector 的大小是 32GB。

Pieces

数据单元,是 Filecoin 网络中最小存储单位,每个 Pieces 大小为 512KB, Filecoin 会把大文件拆分成很多个 Pieces, 交给不同的矿工存储。

AllocationTable

数据分配追踪表,它记录了每个 Pieces 和 Sector 的对应关系,如某个 Pieces 存储在了哪个 Sector. 当某个 Sector 被存满(Fill)了之后,系统将会把该 Sector 封存(Sealing the Sector),然后生成存储证明,这是一个缓慢的操作

Pledge

抵押,矿工必须需要向 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工作原理

filecoin工作原理相关推荐

  1. IPFS系列 - 工作原理和机制

    IPFS的工作原理和机制 (1) IPFS为每⼀个文件分配一个独一无⼆的哈希值(文件指纹:根据文件的内容进行创建),即使是两个文件内容只有1个比特的不相同,其哈希值也不相同.这个方式使得IPFS可以支 ...

  2. 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...

  3. 深入理解Nginx工作原理

    1 反向代理 1.1 概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给intern ...

  4. 高频开关电源原理_程控开关电源的工作原理

    本文介绍了开关电源的工作原理以及它的特点. 程控开关电源要要比线性电源复杂得多. 下图是典型的开关电源工作原理图. 首先对 220 V/50Hz 的 AC 输入,通过桥式整流器进行整流 储能电容对整流 ...

  5. Servlet生命周期与工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  6. java的工作原理你知道吗_每天用Mybatis,但是Mybatis的工作原理你真的知道吗?

    近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了. 核心部件:SqlSession Executor Stat ...

  7. linux网络管理原理,Linux__网络管理(物理层 数据链路层 网络层工作原理)

    千锋云计算逆战班11点后打卡 今天学习后,进行复习下,物理层 数据链路层  网络层 的工作原理 物理层关心的两件事情:1.信号 2.介质 先说信号:信号分为模拟信号和数字信号 模拟信号: 模拟信号,不 ...

  8. HDD工作原理 导图

    以上导图介绍了我们使用的 (HDD)机械硬盘的基本构造以及核心工作原理,对于大家扫盲有所帮助 参考文档: https://blog.csdn.net/yizhaoxin/article/details ...

  9. 路由和交换机工作原理

    路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成.如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种"互连"并没有什么实际意义.因 ...

最新文章

  1. [SDUT](3329)顺序表应用5:有序顺序表归并 ---有序表归并(线性表)
  2. [BUUCTF-pwn]——mrctf2020_shellcode
  3. 转:用人单位给计算机系学生的一封信
  4. 分享一个绝佳的实战机器学习的机会,边学边比拿奖金!
  5. Laravel Facades的实现原理
  6. gin post 数据参数_golang--gin获取post里body的参数
  7. 10-C++实现栈的常见操作
  8. Zoox又融5亿美元!这家腾讯投资的无人车公司现在估值32亿美元
  9. Apache 的 httpd.conf 详解(很实用)
  10. boot入门思想 spring_SpringBoot基础入门
  11. mysql高级学文章来源: [学习通](http://www.bdgxy.com/)http://www.bdgxy.com/<p>[普学网](http:/mysql高级习之索引的优劣势及规则使用
  12. Oracle JDBC 驱动
  13. python全栈工程师视频_python全栈工程师视频教程
  14. ViewPage的使用与介绍
  15. Chrome 扩展程序 CrxMouse 优化版 v3.0.1
  16. 500次 “LOVE“的歌词 Taylor Swift歌词数据可视化分享
  17. php 前端 java培训哪个好,php培训、前端培训、java培训哪个好
  18. Photoshop路径与笔刷轻松制作轻纱漫舞
  19. 关于MP4视频在浏览器上无法播放的问题(没有找到支持的视频格式和mime类型)
  20. AndroidStudio注解处理器无法生成文件

热门文章

  1. 合宙Air780E|iot|update|FOTA|LuatOS-Air开发|LuatOS-SOC接口|官方demo|学习(17):FOTA(远程升级)
  2. 20160325系统集成管理工程师(test2)
  3. 01无人机简介2020-07-11(作业:网上调研无人机公司和前景)
  4. Linux系统根目录下文件是啥
  5. JSAAS=云应用框架+SAAS+应用开发平台
  6. 机器学习-K均值聚类(python3代码实现)
  7. HBuilderX和微信小程序开发避坑
  8. C语言 实现 KMP算法
  9. 每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
  10. 2021-06-12Eclipse使用入门