Giter Site home page Giter Site logo

analysis-of-ipfs-in-chinese's Introduction

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

第三方应用

analysis-of-ipfs-in-chinese's People

Contributors

waynewyang avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.