Ipfs应用场景分析报告

ipfs 应用场景分析报告

ipfs 核心组件

  • merkle p2p种子算法
  • kademlia网络拓扑算法
  • p2p内网穿透技术
  • lmdb/leveldb 数据库、git切片/融合技术
  • fuse应用层文件系统,实现目录挂载。仅支持linux版本

HTTP + git + BitTorrent = IPFS
分别对应:应用层网络协议、数据切片融合、p2p网络拓扑

ipfs概述

ipfs基于以及bt网络、迅雷、电驴为代表的p2p网络分发技术,结合git切片技术、加密技术、base58/Protobuf编码技术,
使用http、tcp、udp网络协议,组件p2p数据存储和内容分发网络。

ipfs与http的关系

ipfs是部分基于http的更上层技术,ipfs可以协助而不能替代http。http有协议格式,也就是报文格式,Ipfs目前并没有类似的格式,所谓的ipfs替代http可以看作是一句口号,类似口号这种东西也许都并不陌生。作为技术人员,一定要有自己完全独立的分析判断能力。
ipfs将tcp、udp、http、SCTP、TOR洋葱网络、等底层网络抽象出一个统一的接口,以数据流的形式提供api。接口采用multihash、multiaddr,
准确来说,就是将原来的tcp/udp/ihttp、pv4/6、ip、port、url统一编码为一个字符串,用’/'作为分割符。在应用层,将请求按照这种编码格式,经过一个协议过滤器(编码格式验证),通过后传入编码解析器,底层对应的还是http、tcp、udp等底层服务器。也就是这种设计其实比较多余,强行粘结的痕迹比较明显。

ipfs接口

ipfs有三个端口。
4001是p2p网络端口
5001是http代理端口,二开程序通过5001端口使用Ipfs提供的所有功能:文件操作、ipfs节点网络操作/监控、
8080是网关端口,ipfs ui管理平台通过目标节点的8080端口,以全网视图查看Ipfs网络:节点数量、上下行流量、ipfs网络容量使用情况、节点地图分布、还提供一个单文件操作功能

ipfs api

github有golang、js、c++、java、python、shell、等主流开发语言的api可用。也可以自行实现:使用http协议(推荐使用curl),按照官方白皮书手册传入指定参数即可实现。
api 是cli的http版本。

对ipfs一些观察

  • ipfs使用golang,众多的依赖库是用github "http//githubg/…"导入,看代码不方便。ipfs中引入github项目不下20个。且有版本依赖关系。
  • ipfs组织结构松散,社区人员不太注重统一协作能力。主要功能一直处于变更阶段,bug测试工作做的比较少。
  • 文件的索引需要全网广播,形成比较大的流量风暴。
  • 目前为止,数据冗余切片未被提及。由于Ipfs是将一个文件的整体切片存放在某一台节点,而不是将切片分散存储在不同节点,因此即便考虑做数据冗余,在现有框架下也比较难以实现。
  • ipfs是一个单一的文件存取功能,没有配套的其它组件(发单系统、计费系统、服务引擎系统),不能单独形成完整的产品。关于filecoin,实际定位是发币,区块链的速度不可能达到实时,而现在的中心化文件存储都是实时访问。你不可能对第1万个用户说,你稍等一下,排个队,先把前面9999个文件一个一个存储一下,每次存储都需要区块确认。而,如果有10万个矿机,只有100个用户来存储文件,100个用户也撑不起10万个矿工的电费。
  • 用区块链来做订单系统是一个伪命题,天生存在一个不可调和的矛盾。 订单系统,必须是完全中心化的,或者完全去中心化的p2p委托行为。也就是如果只有一个入口,必须用利用中心化的速度,文件元数据由中心化的引擎提供。如果是有N个入口,客户必须自行记录文件元数据。
  • Ipfs适合流媒体文件,不适合word,excel,ppt这一类经常变动的文件。

ipfs适应场景

ipfs基于p2p网络并进行优化,迅雷适用的场景,ipfs同样适用。

Ipfs应用举例

商业化技术架构推荐两个方案:

  • 1.中心化的商业入口 + 去中心化的存储网络。元数据存储在中心化的引擎服务器上面。
  • 2.完全去中心化的入口,客户端作为轻量级节点,可接入网络,价格在全网平均价格的基础上面上下20%的浮动自行协商。由于没有中心化的存储引擎,元数据需要客户自行存储和维护。

为像抖音、火山小视频、微博、今日头条,这样的新闻传播类公司提供热点文件散发网络。优势:

  • 市场需求可持续
  • 技术需求且合度高

开源世界,有很多优秀的团队和程序员,写出了很多改变世界的好产品,例如linux,还例如gnu,gdb,openssl,opencv,nginx,mariadb,这些知名的项目无私奉献给全世界人民免费使用,写这些软件的程序员是真的有技术追求,有理想。几万亿的服务器市场是基于linux,创造了如此辉煌的业绩,也没有见linux torvalds去募资几十个亿。 开源世界,推动了全人类现文明的发展。
当然也有若干开源社区的人,趁着一些风口,也包装了一些没有多少技术含量,也没有显著商业价值的东西,就以为自己很了不起,某些社区人员还全世界飞为某某链站台,跟linux torvalds这些大神相比,某些社区的技术人员是餐位素食。

发布了61 篇原创文章 · 获赞 63 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/jacky128256/article/details/100744528