Libp2p:IPFS与Polkadot的双剑合璧

ouyi交易所
bitget

欧易OKX交易所

欧易OKX交易所,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务。

点击注册 进入官网

暨5月20日Dr.GavinWood宣布启动Substrate接入IPFS的开发工作 - 作为2020年最为瞩目的两大公链项目,IPFS(filcoin)和Polkadot的合作已悄然开始。

文章面向Polkadot和IPFS生态的开发者与技术爱好者

如果大家有关注过Polkadot、Substrate、IPFS的动态,可能都对libp2p这一名词比较眼熟。Libp2p是一个点对点网络协议堆栈。最初的标准版本是由协议实验室(Protocol Lab)开发,并基于libp2p打造出IPFS星际文件系统,同时多个开发团队基于开源的libp2p框架又开发出适合自己的X-libp2p点对点网络底层。

图:Web3技术栈 - Lay0 ,Lay1

Libp2p作为一个模块化和可拓展的网络堆栈,已由IPFS,波卡, Substrate(波卡开发公司打造的区块链开发框架)等很多开源项目所应用。Libp2p实际上是众多点对点网络协议的的统称,并由众多开发者帮助实现了Rust, Python等语言、以及面向不同对象的衍生版本;

例如Gossip协议,BitTorrent,TOR,都是libp2p协议的一部分 -- 最初是由协议实验室发起,一直在维持libp2p的Go语言和JavaScript语言实现的开发和运维,波卡的开发公司Parity Technologies实现了Rust语言版的Libp2p。作为一个开源项目,Libp2p网络栈可以由任何开发者开发并不断扩张到任何应用。

波卡之中的IPFS protocol

图:IPFS协议与libp2p协议 - Polkadot技术栈

在开发的过程中,波卡自己使用了由Rust语言开发的版本跟协议实验室的“标准”libp2p版本有所不同。首先以林嘉文博士(Dr.GavinWood)带领的Polkadot项目与Parity开发团队推出了自己的区块链开发框架Substrate,Substrate框架下的libp2p网络协议是“标准libp2p协议和自研点对点网络协议的混合”。

在libp2p官方标准协议方面,波卡共享了IPFS的libp2p,共同的功能包括connection-checking (Ping协议),information on peers (Identity协议),以及Kademilia ramdon walking等。

图:Crate sc_network - Parity

而同时基于Libp2p,Substrate框架为此专门研发一套点对点网络协议:Legacy Substrate stream:用于获取区块信息(同步)的请求-响应、轻量级客户端、事务通知和区块声明等。

Substrate与IPFS:

为区块链搭建框架赋能

星际文件系统 - IPFS是一种点对点的超媒体协议,它允许将文件上传到网络,并与内容可寻址URI共享。尽管IPFS和Substrate都使用libp2p,但不能说Substrate“使用”IPFS,因为除了共享用于联网的底层库之外,更多的是基于IPFS和libp2p的技术扩展。

图:Substrate技术栈

那么Polkadot和Substrate会选择libp2p作为网络层呢?首先目前的事实是几乎所有的分布式的点对点的网络协议都存在 传统中心授信式网络的遗留问题。

Libp2p的开源属性使其成为开发者可以即插即用的工具套件。首先在去分布式计算中,最重要的转变之一就是Client/Server(客户端与服务器)的概念不复存在。以你的家用宽带路由器为例,所有连接到宽带的设备都会有一个私人的IP地址。当你向服务器(传统互联网服务器)请求服务时,你的宽带路由器就会将你的私人IP地址替换成一个家庭网络内的公用IP地址。

如果你自己的所有设备就是该宽带的所有连接的客户端,那就不会产生中心化服务器造成的问题,但如果一个来自外界的陌生客户端会连接到你的宽带路由器并想你的设备发出“请求” --> 此时你的设备就会行使服务器的角色并向外界的请求者发出所对应的数据或命令回复 - 导致数据泄漏。这个状态就是典型的NAT穿透问题。

而Libp2p就可以处理这一问题,点对点网络框架下客户端同时也是服务器,每个点与点之间会相互请求和传输数据并由设定好的算法对网络行为进行通过或不通过的验证。一个网络节点之外包装的形式可以是各种硬件、或是操作系统、或者通信协议。Libp2p既支持未加密的(如TCP、UDP),也支持开箱即用的加密协议(如TLS、Noise)。

Libp2p的“中继”理念

众多使用libp2p网络底层的项目会共享libp2p带来的优势,以libp2p的“子协议Relay”为例。

图:两个网络节点的Relay协议,通过Multiformats(协议实验室旗下另一个项目)的Multiaddr自描述地址对传输的地址进行解释

当众多网络节点依附于各种不一样的NAT路由和服务器平台时,节点们是不允许外部的连接接入的。如果必须要把这些节点连接起来形成一个去中心化的网络环境,Libp2p的Relay协议就把proxy设置在并生成连接于任意两个节点之间:这样所有的信息传输都会被加密并由远端的多数节点进行验证,因此使proxy本身无法成为验证中间人但仍担任传输中继的角色。

图:2020年5月20日波卡项目领导人林嘉文博士宣布启动Substrate接入IPFS的开发工作。据了解,Web3基金会在2019年已与一家头部IPFS矿机品牌初步达成波卡上线后数据存储合作意向。

在Libp2p网络底层通过IPFS从其他链上调用数据,其中IPFS数据交换协议“Content Transfer”: 此版本包括主要的Bitswap重构,运行新的和向后兼容的Bitswap协议。借助重构的Bitswap协议,一是可以实现从使用新协议的其他节点获取数据时,几乎没有重复区块;二是Bitswap协议将从从多个节点获取数据时会实现更好的并行性(parallelism)。

图:IPFS – Bitswap: the data exchange protocol

生态互赢:为什么波卡和Substrate需要libp2p与IPFS

Libp2p协议自诞生以来承担着Web3.0的使命,为众多分布式网络项目赋能。而Polkadot之所以在众多解决方案中,能够成为引领跨链的生态之一,很大程度上和它的可拓展性(Scalability)分不开。其基础的Substrate区块链搭建框架在底层也应用到了IPFS。

Libp2p定位为未来去中心应用程序的标准,一种灵活的跨平台网络框架,用于点对点应用程序。可以处理Polkadot生态系统中的对等方的发现和通信。现在多个网络都采用了Libp2p技术。如EOS、以太坊2.0(进行中)、Substrate (Polkadot)、Agoric、Filecoin(IPFS激励层)。

根据Substrate的技术文档:目前不可能也不打算使用libp2p网络堆栈和rust-libp2p库之外的其他更优秀的网络堆栈。可以说是目前任何分布式网络协议都会与libp2p这个网络底层产生关联。

开源的Libp2p技术为去分布式网络源源不断注入新鲜血液, “No Proxy” – 一个无需授信的世界,波卡与IPFS在libp2p网络上搭建着共通的宏伟愿景 – Web3.0

Libp2p协议自诞生以来承担着Web3.0的使命,为众多分布式网络项目赋能。而Polkadot之所以在众多解决方案中,能够成为引领跨链的生态之一,很大程度上和它的可拓展性(Scalability)分不开。其基础的Substrate区块链搭建框架在底层也应用到了IPFS。

Libp2p定位为未来去中心应用程序的标准,一种灵活的跨平台网络框架,用于点对点应用程序。可以处理Polkadot生态系统中的对等方的发现和通信。现在多个网络都采用了Libp2p技术。如EOS、以太坊2.0(进行中)、Substrate (Polkadot)、Agoric、Filecoin(IPFS激励层)。

根据Substrate的技术文档:目前不可能也不打算使用libp2p网络堆栈和rust-libp2p库之外的其他更优秀的网络堆栈。可以说是目前任何分布式网络协议都会与libp2p这个网络底层产生关联。

开源的Libp2p技术为去分布式网络源源不断注入新鲜血液, “No Proxy” – 一个无需授信的世界,波卡与IPFS在libp2p网络上搭建着共通的宏伟愿景 – Web3.0

https://github.com/ipfs/go-ipfs/releas

bitget

欧易OKX交易所

欧易OKX交易所,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务。

点击注册 进入官网

ouyi交易所

ouyi交易所V

ouyi交易所为用户提供ouyi最新版下载,ouyi官网app下载,欧亿ok交易所最新注册地址等相关业务,致力于为全球用户提供更安全、优质的数字资产交易、管理及金融服务。

10649 文章数
0 评论数
102244 浏览数

最近发表

热门文章

标签列表

目录[+]