libp2p-rs开源项目的落地实现

如果大家经常关注IPFS的动态,那对libp2p应该会有所了解。libp2p是一个为p2p网络构建的基础模块,源于开源项目IPFS。IPFS团队将点对点(peer-to-peer)网络的网络层从IPFS工程里面分离出来,形成一个独立的项目,这就是libp2p。从本质上说,libp2p是一个模块化和可拓展的网络堆栈,专注于传输不可知论,模块化和可移植编码,最终实现无论设备所处的环境、运行的协议如何,libp2p都能让设备的互联成为现实。

libp2p 发展至今,已由众多开发者帮助实现了Python、Go等语言以及面向不同对象的衍生版本。如今,Netwarps 参考 libp2p 实现了一个基于Rust语言的 p2p 底层网络——libp2p-rs。libp2p-rs大量使用了最新的 async/await 语法,是一个简洁的高性能、轻量化的p2p网络方案。

libp2p-rs 摈弃传统的poll 方式,尝试完全使用 async/await 书写异步代码,系统框架主要参考 go-libp2p,部分代码重用 rust-libp2p,以此探索使用 async/await 方式开发大型网络项目的可行性。短期目标为 go-libp2p 中 BasicHost 对应的功能,不涉及Routing,因此可以看作为 libp2p 的一个子集。

Netwarps 团队是一个致力于实现去中心化网络和存储技术的创业团队,目标在于使用去中心化技术支撑各类 IOT 应用,以及保障数据安全。基于此目标,Netwarps 开发了去中心化文件存储系统(DFS)和去中心化计算平台(DCP)。

Netwarps 团队早期使用 C 语言构建了产品的底层 p2p 网络,但随着技术的发展,一个基于更新的语言、更新的设计范式的底层网络系统成为了必需品。因此 Netwarps 团队使用 Rust 语言开发了libp2p,实现了libp2p项目的基本功能,并将其开源。

随着物联网、区块链等技术的发展,我们传统的中心化网络会成为应用快速扩展的瓶颈,我们需要一个能适应各种设备、在低功耗、低网络速率的环境下运行的网络基础设施,libp2p-rs 就是基于这个目的的一个尝试。

libp2p-rs 已经开源,目前发布的版本是v0.1.0,大体上完成了相当于 Go 语言版本发布中的 basic host 功能,实现了不同语言之间互联互通,可以用来构建基于 Rust 的网络应用程序,计划在接下来的一段时间继续完善一些缺失的功能,包括异步并行协议升级处理,多地址同时连接,完整的统计,同时会积极探索如何实现路由等高级功能,最终完成一个全功能的版本,这部分主要包括 DHT 分布式哈希表,Gossip 协议以及 mDns 等等,是 libp2p 网络寻址,特别是基于内容寻址的基础设施,也是 IPFS 所依赖的重要功能。由于功能的复杂性,相应地工作量也是巨大的。未来会和各个开源组织合作,推广这个项目,不断完善去中心化网络的技术生态,帮助各种去中心化应用场景快速实现和落地。推动 IOT 和区块链技术的快速发展。Netwarps 欢迎感兴趣的 Rust 爱好者一起参与到这个开源项目的开发和维护中来。

Netwarps 由国内资深的云计算和分布式技术开发团队组成,该团队在金融、电力、通信互联网行业有非常丰富的落地经验。Netwarps 目前在深圳、北京均设立了研发中心,团队规模30+,其中大部分为具备十年以上开发经验的技术人员,分别来自互联网、金融、云计算、区块链以及科研机构等专业领域。

Netwarps 专注于安全存储技术产品的研发与应用,主要产品有去中心化文件系统(DFS)、去中心化计算平台(DCP),致力于提供基于去中心化网络技术实现的分布式存储和分布式计算平台,具有高可用、低功耗和低网络的技术特点,适用于物联网、工业互联网等场景。

(0)
上一篇 2020年10月28日 15:54
下一篇 2020年10月28日 15:59