IPFS 原理以及如何准备挖矿
IPFS它是一个去中心化的分布式的存储系统。
我们每天使用的网络是建立在底层通讯协议上的,这个底层通讯协议就是 OSI 参考模型,分为7层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
image.png
物理层和数据链路定义了信号怎么让网卡接受并识别。
网络层和传输层定义了网络节点之间如何寻址,也叫 TCP/IP层。
会话层、表示层、应用层其实可以合称为应用层,http协议在这一层让当今的互联网生态繁荣发展,手机,电脑,pad 使用浏览器体现了 HTTP 协议的应用。
以上协议都是建立在中心化的网络上的,中心化网络带来的问题现在已经相当的突出,文字审查,信息垄断等,而IPFS是一个点对点的传输网络,每个文件在这个网络上都有一个唯一的hash指纹 id。那么,文件寻址通过这个id就可以了。
用户将自己的硬盘贡献出来成为矿工,获取filecoin得到回报。存储文件的过程大约如下:
1.用户发出订单(用 filecoin出价,请求存储文件),系统撮合矿工和订单,一旦撮合成功,进入第二步。
2.用户发送文件给矿工,矿工收到文件之后放到数据库里,进行加密,验证之后放到链上。
3.矿工不断以复制证明的方式和规则来证明他们在工作,客户端支付的金额是分期付款进行的,随着出块,线性像前推进给矿工进行支付。
4.文件索引:用户请求文件并支付filecoin到检索市场之后,相应速度最快的矿工拿到这个文件的分发权。
为了确保矿工诚实地工作并且能公平获取代币,在共识算法上,IPFS使用的是复制量证明。这种共识能够防范以下三种常见的攻击方式:女巫攻击,外源攻击和生成攻击,他们的共同特点是不诚实的矿工实际存储的数据大小要比声称存储的数据小,这样不诚实的矿工就能获得本不该他获得的报酬。
女巫攻击(Sybil Attack):利用n个身份,承诺存储n份数据D,而实际上存储小于n份(比如1份),但是却提供了n份存储证明,攻击成功。
外部数据源攻击(Outsourcing Attack):当攻击者矿工收到检验者要求提供数据D的证明的时候,攻击者矿工从别的矿工那里生成证明,证明自己一直存储了数据D,而实际上没有存储,攻击成功
生成攻击(Generation Attack):攻击者A可以使用某种方式生成数据D,当检验者验证的时候,攻击者A就可以重新生成数据D来完成存储证明,攻击成功
Filecoin 基于 Storage Provider 单位时间提供给网络的空间来决定他们的投票权,这种机制就叫 PoSt,PoSt 是由一系列 Proof of Replication(PoReps)推算得来。因为存储了所要求的数据的 replicas 的 Provider 需要向客户出示证明( Proofs),方式就是通过解决 Client 提出的密码学问题(Cryptographic Problems),这根比特币的挖矿形式上是一样的,不同之处在于,这个密码学问题是基于数据文件(sealed version of data)的,而作为存储提供商,必须在其实际保存了客户的全部文件副本的情况下才能解决该问题,因为只有 Provider 可以轻易访问这些数据 。当他们提出证明时,可以很容易的被其他节点验证,而这些节点无需存有数据。
ipfs上挖矿主要需要做以下几件事情:
1.文件存储。拥有硬盘容量将在共识机制上扮演比较重要的角色,容量越大越好。
2.打包区块
3.文件检索请求服务。当有用户要求检索文件时,最快交付给用户的矿工将获取挖矿奖励收益。所以拥有带宽+SSD的矿工将具有一定的优势。
简单总结挖矿的几点核心为:
硬盘容量和挖矿回报成正比
分发相应能力和挖矿回报成正比
专线带宽,必须是大城市的专线带宽,因为大城市使用量更高
具有自我恢复的能力