大佬都在感叹?原来IPFS火到今天,靠的是…
关注星系云科技 获取更多最新IPFS资讯!
靠的是超强的底层技术及其应用,
今天讲解关于IPFS协议和应用层那点事!
I P F S
八层协议
IPFS至少有八层子协议栈,从上至下为身份、网络、路由、交换、对象、文件、命名、应用,每个协议栈各司其职,又互相搭配。
1
IPFS的架构
-Framework-

网络层,这是一个基础层,这一层的技术细节过多,并且也非常复杂,已经超出了软件编程的范围,可以将这一层理解为基础的网络设备或者是网络能力,并以此能力构建了点对点链接的基石,其中增加了加密传输,网络穿越,多链接混合等技术。该层使用的LibP2P可以支持任意传输层协议,比如TCP/UDP/SCTP等。NAT技术能让内网中的设备共用同一个外网IP。从上面的描述我们应该不难得出一个结论,IPFS可以近似看做是建立在 tcp/ip协议栈传输层之上的一个应用,类似于应用层的一个存在。
身份层和路由层可以一起解释。对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定,KAD协议实质是构建了一个分布式松散Hash表,简称DHT,每个加入这个DHT网络的人都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。如同微信名片分享,在无法通过直接搜索微信号的情况下,如果你要找一个人,可以通过有这个人联系方式的朋友分享名片来建立联系。
交换层,该层主要的功能是实现节点相互之间的块的交换,该层使用的协议是类似迅雷这样的BT工具。IPFS团队把BitTorrent进行了创新,叫作Bitswap,它增加了信用和帐单体系来激励节点去分享。如果用户只去检索数据而不存数据,信用分会越来越低,其它节点会在嵌入连接时优先选择信用分高的。这一设计可以解决女巫攻击,信用分不可能靠机器刷去提高,一直刷检索请求,信用分越刷越低。

层层相叠

对象层和文件层适合结合来谈,它们管理的是IPFS上80%的数据结构,大部分数据对象都是以MerkleDag的结构存在,这为内容寻址和去重提供了便利。文件层是一个新的数据结构,和DAG并列,采用Git一样的数据结构来支持版本快照。同时,该层也可实现将IPFS的数据当作unix文件系统的文件来管理。
命名层, 该层引入sfs,自证明文件系统,具有自我验证的特性(当其他用户获取该对象时,使用指纹公钥进行验签,即验证所用的公钥是否与NodeId匹配,这验证了用户发布对象的真实性,同时也获取到了可变状态),并且加入了IPNS这个巧妙的设计来使得加密后的DAG对象名可与节点绑定,把可变的内容固定在节点ID这个相对固定的字符串上,实现了分布式网站等功能。
应用层,IPFS核心价值就在于上面运行的应用程序,我们可以利用它类似CDN的功能,在成本很低的带宽下,去获得想要的数据,从而提升整个应用程序的效率。
新的技术取代老的技术,无非就两点:第一,能提高系统效率;第二,能够降低系统成本。而IPFS把这两点都做到了。
2
IPFS的应用
-Application-

刚才所说的八层协议,其实每一层的实现都绑定在对应的模块下,进行了一个直观的图表设计。IPFS的团队在开发时,采用高度模块集成化的方式,像搭积木一样去开发整个项目。像IPSOU、IPLD、LibP2P、Multiformats它们服务于IPFS底层。
IPSOU是一个基于IPFS网络的中心化的分布式搜索引擎,可以让用户快速检索IPFS网络上的文件,寻找到所需要的数据,同时用户参与挖矿还能获得通证激励。被誉为区块链版Google。IPFS是要彻底革新TCP/IP的底层基础协议,让我们用上比http:/https更好的互联网协议。


Mutiformats是一系列hash加密算法和自描述方式(从值上就可以知道值是如何生成)的集合,它具有SHA1SHA256 SHA512Blake3B等6种主流的加密方式,用以加密和描述nodeID以及指纹数据的生成。
LibP2P是IPFS核心中的核心,面对各式各样的传输层协议以及复杂的网络设备,它可以帮助开发者迅速建立一个可用P2P网络层,快速且节约成本,这也是为什么IPFS技术被众多区块链项目青睐的缘由。
IPLD其实是一个转换中间件,将现有的异构数据结构统一成一种格式,方便不同系统之间的数据交换和互操作。现在IPLD支持的数据结构,是比特币、以太坊的区块数据,也支持IPFS和IPLD。这也是IPFS为什么受到区块链系统欢迎的原因之二,它的IPLD中间件可以把不同的区块结构统一成一个标准进行传递,为开发者提供了成功性比较高的标准,不用担心性能、稳定和BUG。
Filecoin则把应用的数据价值化,通过的激励政策和经济模型,让更多的人去创建节点,去让更多的人使用IPFS。
1
END
1
/ 加入星系云 /
更多有价值的悄悄话,欢迎进入IPFS星系云