#p2p #nat #protocols

bin+lib zz-p2p

A Rust library for managing cryptocurrency p2p network

6 releases

Uses new Rust 2024

0.1.5 Jan 20, 2026
0.1.4 Jan 19, 2026

#40 in #nat

GPL-3.0-or-later

140KB
3.5K SLoC

zz-rust-mod-p2p

zz rust library for peer to peer connections and interactions.

zz rust 点对点 连接与交互库。

目标:

  1. 支持同一ip,端口下,同时可以响应udp, tcp, http, ws的请求
  2. 同时支持以上所有协议下的点对点连接
  3. 支持webrtc下的点对点连接方式
  4. 开发透明的点对点协议,只需要按点对点协议编写代码,就可以提供四种协议下的点对点服务。
  5. 提供点对点的应用平台基础。包括(消息,音频,视频)。

技术设定

  1. 将同一个节点的所有网络连接分为服务端节点与客户端节点,统一管理
  2. 将不同的服务器端单独列出来进行管理,也就是一个节点要同时管理 udp, tcp, http, web socket等至少四种服务器,让这个服务器,即可以服务于纯tcp的连接,也可以是http的连接,以及web socket的连接
  3. session共享,对于http连接来说,分享用户登录信息是一件比较麻烦的事情,但是在free web movement的p2p项目里,他通过Address里的公钥与地址系统可以实现session的共享
  4. 为不同的协议设定应用层面的统一接口。

架构图景

┌────────────────┐
│    CLI/UI      │   ← 人类操作
└────┬───────────┘
     │
┌────▼──────────────────────┐
│           Node             │  ← 节点生命周期 & 协调者
└────┬──────────────────────┘
     │
┌────▼──────────┐  ┌────────▼────────┐
│   TCPHandler  │  │   UDPHandler     │  ← 网络 IO
└────┬──────────┘  └────────┬────────┘
     │                         │
┌────▼─────────────────────────▼─────┐
│              Context                │  ← 全局共享状态
└────┬─────────────────────────┬─────┘
     │                         │
┌────▼──────────────┐   ┌──────▼───────────┐
│ ConnectedClients  │   │ ConnectedServers │
└────┬──────────────┘   └──────┬───────────┘
     │                         │
┌────▼───────────────────────────────────┐
│        Protocol Layer (Frame / Command) │
└────┬───────────────────────────────────┘
     │
┌────▼─────────────────────────┐
│ MessageCommand/EventCommand  │ ← 业务层(文本消息)
└──────────────────────────────┘

Dependencies

~25–43MB
~528K SLoC