14个版本

0.2.9 2024年6月12日
0.2.8 2023年11月13日
0.2.7 2023年10月18日
0.2.2 2023年7月26日
0.1.1 2023年3月20日

#434 in 密码学

Download history 58466/week @ 2024-05-01 54480/week @ 2024-05-08 58164/week @ 2024-05-15 65289/week @ 2024-05-22 62548/week @ 2024-05-29 50128/week @ 2024-06-05 59688/week @ 2024-06-12 52633/week @ 2024-06-19 56808/week @ 2024-06-26 57762/week @ 2024-07-03 58226/week @ 2024-07-10 71518/week @ 2024-07-17 74854/week @ 2024-07-24 65171/week @ 2024-07-31 77890/week @ 2024-08-07 75714/week @ 2024-08-14

307,139 个月下载
326 个crate中使用(58直接使用)

MIT 许可证

105KB
2K SLoC

libp2p工作的中心仓库

dependency status Crates.io docs.rs docs.rs master

此仓库是libp2p规范Rust开发的中心位置。

入门

仓库结构

此仓库的主要组件结构如下

  • core/:实现了具有其TransportStreamMuxer API的libp2p-core,几乎所有其他crate都依赖于它。

  • transports/:基于libp2p-coreTransport API实现的传输协议(例如TCP)和协议升级(例如用于认证加密、压缩等)。

  • muxers/:实现了libp2p-coreStreamMuxer接口,例如在(通常是TCP)连接上实现的(子)流多路复用协议。多路复用协议是(必需的)Transport升级。

  • swarm/:基于libp2p-core,使用核心接口NetworkBehaviourConnectionHandler实现应用协议的libp2p-swarm实现(见protocols/)。

  • protocols/:基于libp2p-swarm API的应用协议实现。

  • misc/:实用库。

  • libp2p/examples/:内置应用协议(见protocols/)的工作示例,带有常见的Transport配置。

社区指南

libp2p项目遵循IPFS行为准则

tl;dr

  • 请尊重他人。
  • 我们在此提供帮助:[email protected]
  • 我们绝不容忍任何恶意行为。
  • 违反本准则可能会导致迅速且永久地从IPFS[和libp2p]社区中除名。
  • “太长,没看”不是不了解本文件内容的合理借口。

维护者

(按字母顺序排列。)

知名用户

(如果您希望将项目添加到这里,请提交一个pull request)

  • COMIT - 比特币–门罗币跨链原子交换。
  • Forest - 使用Rust编写的Filecoin实现。
  • fuel-core - Rust实现的Fuel协议。
  • HotShot - 由Espresso Systems开发的Rust语言编写的去中心化序列器。
  • ipfs-embed - 由Actyx使用和维护的小型可嵌入ipfs实现。
  • Homestar - 由Fission使用和维护的星际虚拟机(IPVM)实现。
  • beetle - 用于云和移动平台的下一代IPFS实现。
  • Lighthouse - Rust语言的以太坊共识客户端。
  • Locutus - 全球、可观察的去中心化键值存储。
  • OpenMina - 在浏览器中运行的Mina Rust实现。
  • rust-ipfs - Rust语言的IPFS实现。
  • Safe Network - Rust语言的Safe Network实现。
  • Starcoin - 通过分层扩展的智能合约区块链网络。
  • Subspace - Subspace网络参考实现
  • Substrate - 区块链创新框架,由Polkadot使用。
  • Taple - 由OpenCanarias提供的资产和流程可追溯的可持续DLT。
  • Ceylon - 多智能体系统(MAS)开发框架。

lib.rs:

节点的网络身份密钥。

这样的身份密钥可以在每次启动时随机生成,但通常需要使用已经存在的固定密钥。尽管libp2p在内部使用其他crate(例如 ed25519_dalek),但这些细节不会作为libp2p公共接口的一部分公开,以保持其易于升级或替换(例如,到ed25519_zebra)。因此,外部ed25519或secp256k1 crate的密钥不能直接转换为libp2p网络身份。相反,加载固定密钥必须使用特定密钥类型的标准、更便携的二进制表示(例如ed25519二进制格式)。所有密钥类型都有函数可以启用它们与其二进制表示之间的转换。

依赖项

~0.5-10MB
~123K SLoC