IPFS的的”宏伟”目标是取代HTTP, 那么先来看看IPFS是如何工作的?

  1. IPFS为每一个文件分配一个独一无二的哈希值(文件指纹: 根据文件的内容进行创建), 即使是两个文件内容只有1个比特的不相同, 其哈希值也是不相同的.所以IPFS是基于文件内容进行寻址, 而不像传统的HTTP协议一样基于域名寻址.

  2. IPFS在整个网络范围内去掉重复的文件, 并且为文件建立版本管理, 也就是说每一个文件的变更历史都将被记录(这一点类似版本控制工具git, svn等), 可以很容易个回到文件的历史版本查看数据.

  3. 当查询文件的时候, IPFS网络根据文件的哈希值(全网唯一)进行查找. 由于每个文件的哈希值全网唯一, 查询将很容易进行.

  4. 如果仅仅使用哈希值来区分文件的话, 会给传播造成困难, 因为哈希值不容易记忆, 就像ip地址一样不容易记忆, 于是人类发明的域名. IPFS利用IPNS将哈希值映射为容易记的名字

  5. 每个节点除了存储自己需要的数据, 还存储了一张哈希表, 用来记录文件存储所在的位置. 用来进行文件的查询下载.

我们在<什么是IPFS?(一)>里面说了 HTTP 及一些中心化服务器的缺点.

那么问题来了, IPFS是如何来解决这些缺点的?

1 下载速度快, 不再依赖主干网, 中心化服务器

整个IPFS系统是一个分布式的文件存储系统, 那么在下载相关数据的时候, 将从多个节点同时下载, 相比于HTTP从中心服务器的下载速度要快很多, 大家都用过P2P下载(比如: 迅雷,BitTorrent), IPFS下载过程跟这个类似.

2 存储空间变得非常便宜: 

由于IPFS使用的是区块链技术, 利用 Filecoin(为了的文章中会将如何获取filecoin, 也就是挖矿)来激励矿工分享自己的硬盘, 并且IFPS从全网去掉了冗余存储(从整个网络空间考虑, 这将大大节省网络存储空间), 将来的IPFS存储将会变得非常便宜(与我们现在的云盘, 各种中心化的CND相比较).

3 安全:

中心化服务器目前很难抵挡DDoS攻击, 当大量的访问请求从四面八方涌来, 中心化的服务器几乎会在一瞬间瘫痪, 做过运维的同学应该深有感触, 比如每年双11, 不能睡觉的除了阿里, 腾讯的技术同学, 还有整个银行业的小朋友. 巨大的访问量随时可能造成服务器宕机. IPFS天生就拥有抵挡这种攻击的能力. 因为所有的访问将会被分散到不同的节点. 甚至攻击者自己也是节点之一. 某种程度上讲, IPFS甚至能抵挡量子计算的攻击.

4 开放: 

众所周知, 比特币是一种去中心化, 匿名的数据货币, 这些特性使得比特币无法被管制, 交易无法篡改. IPFS同样, 由于是建立在去中心化的分布式网络上的, 所以IFPS很难被中心化管理, 限制. 互联网将更加开放.

2017-12-05 18:10 飞向未来

最新文章

  1. AppBox_v2.0完整版免费下载,暨AppBox_v3.0正式发布!
  2. WCF初探文章列表
  3. 关于word excel 等的信息隐藏技术
  4. 为Page添加INotifyPropertyChanged功能
  5. HDAO
  6. 非IE内核浏览器支持activex插件
  7. WPF实现无窗体鼠标跟随
  8. python2.7读汉字的时候出现乱码,如何解决
  9. HTML5新特性之WebRTC[转]
  10. 3、树莓派的配置:改静态IP、连接ssh、安装中文字体、安装谷歌输入法、增加USB电流、修改触摸屏分辨率、扩展sd卡空间、修复vi和vim乱码问题、安装配置远程桌面vnc
  11. Linux命令及lamp搭建
  12. 字符编辑技术C语言实现
  13. CentOS 7 Squid代理服务器反向代理
  14. Python全栈开发之路 【第六篇】:Python基础之常用模块
  15. 《Android Studio开发实战 从零基础到App上线》资源下载和内容勘误
  16. 机器学习技法笔记:11 Gradient Boosted Decision Tree
  17. c#发送短信
  18. boost asio异步读写网络聊天程序client 实例具体解释
  19. Docker容器相互访问
  20. [CentOS]使用Jenkins配置Git+Maven的自动化构建

热门文章

  1. UVA - 10285 Longest Run on a Snowboard (线性DP)
  2. BZOJ3224/洛谷P3391 - 普通平衡树(Splay)
  3. TCP/IP卷一没提到的策略路由
  4. 自己编写的仿京东移动端的省市联动选择JQuery插件
  5. Effective Java 第三版——34. 使用枚举类型替代整型常量
  6. Java常见加密算法
  7. mysql字符设置
  8. ORACLE 中NUMBER类型默认的精度和Scale问题
  9. zTree实现删除树节点
  10. freemarker之数组