如果大家经常关注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 团队是一个致力于实现去中心