mirror of
https://github.com/ayflying/p2p.git
synced 2026-03-04 17:29:22 +00:00
122 lines
2.4 KiB
Go
122 lines
2.4 KiB
Go
# P2P 通信系统
|
||
|
||
一个基于 Go 语言和 libp2p 构建的对等网络通信系统,提供可靠的分布式节点间通信功能。
|
||
|
||
## 功能特点
|
||
|
||
- 基于 libp2p 的去中心化 P2P 网络通信
|
||
- GoFrame 框架支持的高效 Web 服务
|
||
- Redis 缓存集成
|
||
- 模块化架构设计
|
||
- 命令行工具支持
|
||
|
||
## 技术栈
|
||
|
||
- **Go 语言**: 1.24.0
|
||
- **框架**: GoFrame v2.9.3
|
||
- **P2P 库**: libp2p v0.43.0
|
||
- **存储**: Redis
|
||
- **多地址格式**: multiaddr v0.16.0
|
||
|
||
## 安装要求
|
||
|
||
- Go 1.24.0 或更高版本
|
||
- Redis 服务器
|
||
- Git
|
||
|
||
## 快速开始
|
||
|
||
### 克隆项目
|
||
|
||
```bash
|
||
git clone https://github.com/ayflying/p2p.git
|
||
cd message
|
||
```
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
go mod tidy
|
||
```
|
||
|
||
### 构建项目
|
||
|
||
```bash
|
||
go build -o message
|
||
```
|
||
|
||
### 运行项目
|
||
|
||
```bash
|
||
./message
|
||
```
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
├── api/ # API 定义
|
||
│ └── p2p/ # P2P 相关 API
|
||
├── internal/ # 内部代码
|
||
│ ├── cmd/ # 命令行工具
|
||
│ ├── consts/ # 常量定义
|
||
│ ├── controller/ # 控制器
|
||
│ ├── logic/ # 业务逻辑
|
||
│ ├── model/ # 数据模型
|
||
│ ├── packed/ # 打包文件
|
||
│ └── service/ # 服务层
|
||
├── main.go # 程序入口
|
||
├── go.mod # Go 模块定义
|
||
├── go.sum # 依赖锁定文件
|
||
├── Makefile # 构建脚本
|
||
└── README.MD # 项目文档
|
||
```
|
||
|
||
## 核心模块
|
||
|
||
### P2P 通信
|
||
|
||
提供基于 libp2p 的节点发现、连接和通信功能,支持分布式网络中的节点间数据传输。
|
||
|
||
### Web 服务
|
||
|
||
基于 GoFrame 框架构建的 Web 服务,提供 RESTful API 接口。
|
||
|
||
### 缓存系统
|
||
|
||
集成 Redis 缓存,提高系统性能和数据访问效率。
|
||
|
||
## 命令行工具
|
||
|
||
项目提供了命令行工具,支持节点管理、网络状态查询等功能。
|
||
|
||
```bash
|
||
./message --help # 查看帮助信息
|
||
```
|
||
|
||
## 开发指南
|
||
|
||
### 代码规范
|
||
|
||
- 遵循 Go 语言标准编码规范
|
||
- 保持代码简洁、可读
|
||
- 添加适当的注释
|
||
|
||
### 提交代码
|
||
|
||
1. Fork 项目仓库
|
||
2. 创建功能分支
|
||
3. 提交代码变更
|
||
4. 创建 Pull Request
|
||
|
||
## 许可证
|
||
|
||
本项目使用 MIT 许可证,详见 `LICENSE` 文件。
|
||
|
||
## 联系方式
|
||
|
||
如有问题或建议,请通过以下方式联系我们:
|
||
- GitHub Issues: https://github.com/ayflying/p2p/issues
|
||
|
||
---
|
||
|
||
*最后更新时间: 2025-10-30* |