IPFS分析笔记——Wayne

作者:先河系统杨尉(waynewyang),转载请注明出处

此资源库编写于2018年9月-10月,开源于2019年5月。

目录

IPFS定义及参考技术

  • 定义

    白皮书:IPFS是一种内容可寻址、版本化、点对点超媒体的分布式文件系统

    官网:IPFS是分布式Web,一种点对点超媒体协议,使网络更快,更安全,更开放。

  • 参考技术

    • ice协议——网络连通性

    解释:解决peers之间的连通性

    • DHT技术,KAD、coral算法——分布式路由

    解释:解决peers之间的路由、内容路由(内容寻址)、以及分布式哈希key-value存储

    重要特征:内容寻址、或者说哈希寻址

    • bt——交换技术

    解释:解决peers之间的内容交换

    重要特征:P2P分布式、更快、更开放

    • git——数据结构

    解释:MerkleDAG借鉴git的数据存储方式,解决数据的防篡改、去重

    重要特征:防篡改、去重

    • sfs——命名系统

    解决哈希难以记忆、以及由于DAG特性导致的动态数据变更导致的更新成本问题

    重要特征:版本化(通过ipns的发布记录)、ipns解析(人类更容易识别操作)、dns解析

    • unixfs系统

    特征:unixfs挂载特性,挂载的ipfs类似一个文件系统,可以使用unix方式访问全球哈希。

第一步:在PEER A上,在IPFS添加another.txt文件
D:\go-ipfs>ipfs add another.txt
 29 B / 29 B [===================================================
added QmamQ2prV7FTfFm1eJc5o6QRA2BAkUJAbc5JCrLpu9dY2z another.txt

第二步:在peer B上,挂载ipfs文件系统(全球性的),直接通过unix的方式,cat第一步的哈希,可以查询到文件内容
wayne@wayne:~$ ipfs mount
IPFS mounted at: /ipfs
IPNS mounted at: /ipns
wayne@wayne:~/go/src$ cat /ipfs/QmamQ2prV7FTfFm1eJc5o6QRA2BAkUJAbc5JCrLpu9dY2z
"This is new another file" 

协议总览

  • [IPFS项目进度]
    • pm记录
    • - 规范制定中,不成熟。
    • - 草稿完成,很有可能做较大变更。
    • -接近稳定,只会做较小变更。
    • - 规范稳定,本质不变,可能做小的改善。
    • - 完全稳定,永久不变。
  • 协议总览
    • MerkleDAG vs IP 瘦腰图
      • ipfs通过MerkleDAG访问资源、http通过IP访问资源
      • 向下提供支撑,向上提供应用

语言基础

基础模块分析

协议层分析

应用层数据结构

协议debug方法

ipfs log tail

对外接口

IPFS-Cluster

ipfs-companion

ipfs-desktop

第三方应用