1. 定义

IPFS InterPlanetary File System 是基于P2P的分布式文件存储系统。

特点 HTTP IPFS
寻址方式 位置寻址 一维寻址,低效、脆弱 内容寻址 多维寻址,高效、稳定
效率 低效 高效
稳定性 脆弱 稳定
开放性 封闭、垄断 开放、共享

2. IPFS介绍

IPFS 结合了 Git,BitTorrent,Kademlia,SFS 和 Web 的优势,提供跟 HTTP web 一样简单的接口。

IPFS 分为 3 个代码库:
github.com/ipfs/ipfs - IPFS 规范
github.com/ipfs/go-ipfs - Go 实现
github.com/protocol/ipfs-webui - Web 工作台

它尝试为所有计算设备连接同一个文件系统。在某些方面,IPFS类似于万维网,也可以被视作一个独立的BitTorrent群、在同一个Git仓库中交换对象。换种说法,IPFS提供了一个高吞吐量、按内容寻址的块存储模型,及与内容相关超链接。这形成了一个广义的Merkle有向无环图(DAG)。IPFS结合了分布式散列表、鼓励块交换和一个自我认证的名字空间。IPFS没有单点故障,并且节点不需要相互信任。分布式内容传递可以节约带宽,和防止HTTP方案可能遇到的DDoS攻击。

该文件系统可以通过多种方式访问,包括FUSE与HTTP。将本地文件添加到IPFS文件系统可使其面向全世界可用。文件表示基于其哈希,因此有利于缓存。文件的分发采用一个基于BitTorrent的协议。其他查看内容的用户也有助于将内容提供给网络上的其他人。IPFS有一个称为IPNS的名称服务,它是一个基于PKI的全局名字空间,用于构筑信任链,这与其他NS兼容,并可以映射DNS、.onion、.bit等到IPNS。

3. Merkle数据格式

每个Merkle都是一个有向无环图 ,因为每个节点都通过其名称访问。每个Merkle分支都是其本地内容的哈希,它们的子节点使用它们的哈希而非完整内容来命名。因此,在创建后将不能编辑节点。这可以防止循环(假设没有哈希碰撞),因为无法将第一个创建的节点链接到最后一个节点从而创建最后一个引用。
对任何Merkle来说,要创建一个新的分支或验证现有分支,通常需要在本地内容的某些组合体(例如列表的子哈希和其他字节)上使用一种哈希算法。

【参考】

[1] “IPFS 官网”
[2] 星际文件系统 wiki

IPFS (1) 初步简介相关推荐

  1. [蓝牙]蓝牙的初步简介与应用 及其技术要点--更新中

    蓝牙的初步简介与应用 及相关技术概念 蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换(使用2.4-2.485GHz的ISM波段的UHF ...

  2. 神经网络与推荐系统初步简介

    作者:一人 1.深度神经网络对于任何领域都是适用的 深度神经网络(Deep Neural Networks, DNN)在过去的数年已经在图像分类.语音识别.自然语言处理中取得了突破性的进展.在实践中的 ...

  3. 《自然语言处理实战入门》---- 神经网络与推荐系统初步简介

    作者:一人 1.深度神经网络对于任何领域都是适用的 深度神经网络(Deep Neural Networks, DNN)在过去的数年已经在图像分类.语音识别.自然语言处理中取得了突破性的进展.在实践中的 ...

  4. Hadoop初步简介

    Hadoop产生背景: 传统方式,我们使用数据库来对数据进行管理.可是随着数据量的增加,我们要对这个数据库中的海量数据进行处理, 从中提取出有效的信息,这时候面临的问题随之而来: 1.海量数据读取,采 ...

  5. 概率论0—概率初步简介

    生活中的概率 在生活中有些现象是注定的,比如往空中丢个色子最后必然落到地上,这叫作确定性现象 . 当然也有不确定的现象,色子落到地上后哪个面会朝上: 虽然充满不确定性,但其结果又有迹可循: 首先,必然 ...

  6. Nginx和Redis初步简介

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  7. 网络分析概述之网络基础简介

    网络分析概述之网络基础简介 本文转载自小白名的生统笔记,原文链接:https://mp.weixin.qq.com/s/Bp-u663WUhFxPfeP7pBh0w 从本节开始介绍网络分析.本篇暂且对 ...

  8. Alibaba Druid 源码阅读(一) 数据库连接池初步

    Alibaba Druid 源码阅读(一) 数据库连接池初步 简介 本文将初步探索数据库连接池的应用场景,为后面的源码分析做些准备 数据库连接池的应用场景 在没有连接池之前,在使用中,需要访问数据库时 ...

  9. 浅谈分布式存储架构: IPFS和HDFS

    分布式存储架构是一个复杂的系统工程,针对特定应用的数据存储有不同的系统架构解决方案.不同的存储方法会影响存储性能.存储成本.冗余度.工程复杂性等. 分布式存储的历史 分布式存储最早是由谷歌提出的,其目 ...

最新文章

  1. 5_python将多张图片显示在一张图片上(20181218)
  2. php 隐式路由,关于Laravel 7 的简单隐式路由模型绑定
  3. AnkhSVN 1.0.2778 简体中文版发布
  4. 用Macbook开发桌面应用,使用Alamofire链接.Net Core Webapi的注意事项!
  5. [javascript]图解+注释版 Ext.extend()
  6. mysql log table_mysqlbinlog功能扩展--table参数
  7. wan口有流量但电脑上不了网_wan口有ip地址但是上不了网怎么办?
  8. logstash 使用glusterfs网络存储偶发性文件解析异常的问题
  9. dwz框架在网站群项目中的应用(2)—html拓展之页面形式
  10. 标准燃料计算机准,油表显示的油耗真的准确吗?教你最准确的油耗计算方法
  11. VS2005 中网站转为Web应用程序的方法
  12. cada0图纸框_a0标准图框|autocad a0标准图纸框模板下载免费版 - 欧普软件下载
  13. pymysql长时间连接自动断开解决方案
  14. POP3、SMTP和IMAP 协议
  15. win2003服务器安全设置技术实例(一)
  16. SSRS 锁定标题栏
  17. 使用python解析Wordpress导出的xml文件
  18. AD20/Altium designer——如何对线宽进行设置、布线过程中快速改线宽的方法
  19. 路由器什么牌子好?消灭卡顿畅快吃鸡
  20. 2017年该到哪里买房?只需看这个指标!(GDP含税量、人均国税)

热门文章

  1. Java 基础之 Random类和Math.random()方法
  2. mysql - 要问 varchar 能存几个汉字? 能存几个 字母? 能存几个数字?请看下文讲解 (Java)
  3. Android --- SharedPreferences的详细介绍
  4. 运维分级发布_华为杨超斌发布面向“1+N”目标网的5G全系列解决方案
  5. python如何将生成的随机数存入文件中_用python在excel中读取与生成随机数写入excel中...
  6. c++ 浮点数转换成字符串_Python如何处理数据?如何把数据转换成我们想要的?三种处理方法...
  7. 7000更换控制器电源步骤_恒温恒湿试验箱几大故障的检查步骤及解决方法说明...
  8. ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)
  9. 成功解决ImportError: Could not find 'msvcp140.dll'. TensorFlow requires that this DLL be installed in a
  10. DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测