基本知识结构
概括
IPFS是一种点对点的超媒体文件存储,索引,交换协议。
特点
- 内容可寻址
- 版本管理功能
- 点对点超媒体传输协议
IPFS 有挖矿软件吗?
IPFS没有挖矿软件,IPFS只是一个协议, 并不是用来挖矿的。Filecoin系统才需要挖矿, 代币名字是 FIL。
Filecoin使用了IPFS 协议来运行系统。
Filecoin 如何挖矿赚钱?
Filecoin 的一些基本入门知识
FileCoin 挖矿教程 (一)准备事项
FileCoin 挖矿教程(二)挖矿的架构
FileCoin 挖矿教程(三)挖矿的奖励
FileCoin 挖矿教程 (四)惩罚
FileCoin 挖矿教程(五)Lotus Miner:设置高性能矿工程序
IPFS 原理
IPFS为每一个文件分配一个独一无二的哈希值,基于文件内容进行寻址, 而不像传统的HTTP协议一样基于域名寻址。
IPFS借鉴了Git的版本管理技术,在整个网络范围内去掉重复的文件, 并且为文件建立版本管理, 也就是说每一个文件的变更历史都将被记录, 可以很容易个回到文件的历史版本查看数据。
当查询文件的时候, IPFS网络根据文件的哈希值(全网唯一)进行查找。 由于每个文件的哈希值全网唯一, 查询将很容易进行。
如果仅仅使用哈希值来区分文件的话,会给传播造成困难,因为哈希值不容易记忆,就像ip地址一样不容易记忆,于是人类发明的域名。IPFS利用IPNS将哈希值映射为容易记的名字。
每个节点除了存储自己需要的数据,还存储了一张哈希表, 用来记录文件存储所在的位置,用来进行文件的查询下载。
IPFS 架构
IPFS 协议栈
IPFS 身份与路由
S/Kademlia生成 对等身份信息生成
分布式松散哈希表(DSHT) 定位对等点和存储对象需要的信息
对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定,KAD协议实质是构建了一个分布式松散Hash表(distributedhash table),简称DHT,每个加入这个DHT网络的人都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。
IPFS 网络
任意传输层协议 ICE NET & NAT穿透
LibP2P可以支持任意传输层协议。
ICE NAT traversal框架整合STUN、TURN和其他类型的NAT协议,该框架可以让客户端利用各种NAT方式打通网络,从而完成NAT通信,这对于IPFS的p2p网络非常重要。
IPFS 交换
BitTorrent& BitSwap 管理区块如何分布
类似迅雷这样的BT工具,IPFS团队把BitTorrent进行了创新,叫作Bitswap,它增加了信用和帐单体系来激励节点去分享,用户在发送给其他节点数据可以增加信用值,从其他节点接受数据降低信用值。如果用户只去接收数据而不分享数据,信用分会越来越低而被其他节点忽略掉。
IPFS 对象和文件
Merkle-DAG 内容可寻址的不可篡改、去冗余的对象链接
类似Git 版本控制的文件系统:blob,list, tree, commit
共同管理IPFS上80%的数据结构。
大部分数据对象都是以MerkleDag的结构存在,这为内容寻址和去重提供了便利。
文件层是一个新的数据结构,和DAG并列,采用Git一样的数据结构来支持版本快照。
IPFS 命名
具有SFS(Self-CertifiedFilesystems)IPNS:DAG对象命名可变
具有自我验证的特性(当其他用户获取该对象时,使用指纹公钥进行验签,即验证所用的公钥是否与NodeId匹配,这验证了用户发布对象的真实性,同时也获取到了可变状态),并且加入了IPNS这个巧妙的设计来使得加密后的DAG对象名可定义,增强可阅读性。
IPFS 应用
在IPFS上运行的应用程序利用最近节点提供服务提供效率、降低成本
IPFS核心价值就在于上面运行的应用程序,可以利用它类似CDN的功能,在成本很低的带宽下,去获得想要的数据,从而提升整个应用程序的效率。