KOGUN 算力共享平台 技术说明书 v8.2.1
最后更新: 2026年6月29日
当前版本: v8.2.1 (实战就绪版)
平台规模: 65用户 · 47节点 · 80任务 · 58已完成
E2E测试通过率: 75/75 = 100%
目录
- 平台概述
- 系统架构
- 认证与安全
- 消息与通信层
- GPU 虚拟化与算力调度
- 智能缓存系统
- 设备 Worker
- 一键部署
- API 参考
- 算力社区
- 数据库 Schema
- 运维监控
- v8.2.1 变更日志
- 版本历史
1. 平台概述
1.1 核心定位
KOGUN 是一个去中心化 AI 算力共享平台,允许任何拥有 GPU 的用户贡献闲置算力并获得收益。平台采用贡献者优先的调度策略,支持从个人工作站到社区算力盒子的多层次资源池。
1.2 核心特性
| 功能模块 |
说明 |
版本 |
| 🔌 GPU 虚拟化 |
VRAM 感知调度,单卡并发 1-3 任务 |
v2.4 |
| 💾 智能缓存 |
Worker 本地 NVMe 缓存,命中率 100%,推理延迟 90s→2s |
v2.2 |
| 📡 实时推送 |
WebSocket 毫秒级任务分发,HTTP 轮询兜底 |
v2.3 |
| 🔔 消息总线 |
PostgreSQL LISTEN/NOTIFY,零新依赖,天然持久化 |
v8.1 |
| 📦 一键部署 |
curl kogun.site/deploy \| bash,3 分钟上线 |
v8.2 |
| 🏘️ 算力社区 |
全球节点分布、社区排行榜、设备共享广场 |
v8.2.1 |
| 🏥 自动运维 |
systemd 自愈,/health 健康检查,实时监控 |
v8.0 |
| 💰 财务体系 |
充值/提现/收益/账单/企业预付全链路 |
v8.2.1 |
| 🏆 成就系统 |
里程碑/VIP/推荐奖励/碳减排统计 |
v8.2.1 |
1.3 平台规模(v8.2.1 发布快照 · 2026-06-29)
下表为文档发布时(2026-06-29)的平台规模快照,非页面实时数值;实时口径请见 /api/public/overview。
| 指标 |
数值 |
| 注册用户 |
65 人 |
| 节点总数 |
47 个 |
| 累计任务 |
80 个 |
| 已完成 |
58 个 |
| 数据库表 |
27 张 |
| LLM 模型 |
4 个 |
| 缓存条目 |
13 条 |
| API 端点 |
264 条(HTTP 路由实测) |
| E2E 通过率 |
100% (75/75) |
2. 系统架构
2.1 整体架构
┌──────────────────────────────────────────────────────┐
│ 用户层 │
│ 浏览器 SPA │ curl | bash │ REST API │ WS │
│ index.html │ community │ /v1/* │ /ws │
└──────────────────────┬───────────────────────────────┘
│
┌──────────────────────▼───────────────────────────────┐
│ API 服务层 │
│ FastAPI + Uvicorn (systemd 自愈, 1 worker) │
│ ├─ 认证: JWT (HS256) + bcrypt + SHA256 兼容 │
│ ├─ 调度: KogunScheduler (5协程) │
│ ├─ 消息: WebSocket + PG NOTIFY 双通道 │
│ ├─ 定价: 五因子 AHP 加权算力模型 │
│ ├─ 社区: 地图聚合 + 排行榜 + 设备广场 │
│ ├─ 财务: 充值/提现/账单/企业预付 │
│ └─ 监控: /health + /api/admin/system-status │
└──────────────────────┬───────────────────────────────┘
│
┌──────────────────────▼───────────────────────────────┐
│ 数据层 │
│ PostgreSQL (kogun_v7, 34表) │
│ ├─ 业务表: users, nodes, tasks, transactions... │
│ ├─ GPU虚拟: gpu_slots, device_capabilities │
│ ├─ 缓存管理: node_caches │
│ ├─ LLM管理: llm_models, llm_providers │
│ ├─ 财务表: withdrawals, payment_accounts │
│ ├─ 企业表: enterprises │
│ ├─ LISTEN/NOTIFY 消息总线 │
│ └─ 调度器内存缓存 (CacheIndex + GPUManager) │
└──────────────────────┬───────────────────────────────┘
│
┌──────────────────────▼───────────────────────────────┐
│ Worker 层 │
│ kogun-worker.py v2.4 (Python) │
│ ├─ GPU 检测: nvidia-smi → VRAM → 并发数 │
│ ├─ 推理引擎: Hermes Agent (LLM) / Python脚本 │
│ ├─ 本地缓存: NVMe SSD (LRU, 50GB上限) │
│ ├─ 通信: WS 实时 + HTTP 轮询兜底 + PG NOTIFY │
│ └─ 部署: systemd 自愈 + 一键安装 │
└──────────────────────────────────────────────────────┘
2.2 代码规模
| 文件 |
行数 |
功能 |
main.py |
11,022 |
API 主应用 (FastAPI, 264 条 HTTP 路由) |
database.py |
2,150 |
ORM 模型 + CRUD 操作 (含 WithdrawalModel) |
scheduler.py |
760 |
智能调度器 (5协程): 心跳监控 + 任务调度 + 模拟数据 + 缓存失效 + 消息监听 |
message_bus.py |
265 |
PG LISTEN/NOTIFY 消息总线 |
pricing.py |
479 |
五因子 AHP 定价引擎 |
ws_manager.py |
191 |
WebSocket 双模式连接管理 |
proxy.py |
221 |
LLM 推理代理 (火山引擎/OpenAI) |
| 后端小计 |
15,088 |
上列 7 个模块 |
kogun-worker.py |
931 |
Worker v2.4 (GPU虚拟化 + 缓存 + Hermes) |
kogun-deploy.sh |
447 |
一键部署脚本 |
templates/index.html |
11,006 |
SPA 前端 (内嵌JS) |
templates/*.html(17 个) |
19,638 |
全部页面模板 |
口径核对(2026-10-05 于生产机逐文件 wc -l 实测,含当日 09:15 端点加固施工后复测):上表行数由 wc -l 逐文件实测,路由数由
AST 解析 @app.get/post/put/delete/patch 装饰器得出(get 161 / post 96 / delete 6 / patch 1,
另含 3 个 WebSocket 端点)。运行形态为 uvicorn main:app --port 8800 --workers 1
(4 核 / 7.6 GB,单 Worker + 全异步)。此前版本记的「2 workers / 3,864 行 / 90+ 端点」
为 v8.2.1 发布时的快照,已不反映当前代码。
2.3 调度器协程清单(5个)
| 协程 |
间隔 |
功能 |
heartbeat_monitor |
30s |
心跳超时检测,自动标记 offline |
task_scheduler |
10s |
多级智能调度 + 进度推进 |
sim_data_generator |
5s |
模拟节点数据波动 |
cache_invalidator |
300s |
缓存过期清理 |
message_bus_listener |
30s |
PG 消息总线监听 |
3. 认证与安全
3.1 用户认证
| 特性 |
实现 |
| 认证方式 |
JWT (HS256), 24小时过期 |
| 密码存储 |
bcrypt (生产) / SHA256 (测试), 双格式兼容 |
| 用户角色 |
admin / user / enterprise |
| 设备认证 |
Device Token (kdt-前缀) → JWT转换 |
| 协议签署 |
agreement_signed + real_name + id_number |
3.2 认证流程
用户注册 → POST /api/auth/register
→ bcrypt 哈希密码 → 存入 users 表 → 返回 JWT
用户登录 → POST /api/auth/login
→ 验证 bcrypt/SHA256 → 返回 JWT (24h)
设备认证 → POST /api/devices/auth
→ device_token → 查询 DB → 返回短期 JWT (2h)
API 调用 → Authorization: Bearer <jwt>
→ get_current_user 依赖注入 → 验证 JWT → 查询 DB
3.3 API Key 认证 (OpenAI 兼容)
外部平台可通过 API Key 调用 /v1/* 端点:
POST /api/api-keys/create → 生成 sk-kogun-{uuid} 格式密钥
GET /api/api-keys → 列出用户所有密钥
# 调用方式
curl https://api.kogun.site/v1/chat/completions \
-H "Authorization: Bearer sk-kogun-xxxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4","messages":[{"role":"user","content":"hello"}]}'
3.4 权限控制模型(v8.2.1 改进)
| 操作 |
v8.2.0 |
v8.2.1 |
| 暂停/恢复节点 |
仅管理员 |
节点所有者 + 管理员 |
| 删除设备 |
仅管理员 |
节点所有者 + 管理员 |
| 切换算力贡献 |
不支持 |
节点所有者 (toggle-compute) |
| 提现申请 |
50元最低 |
10元最低 (finance/withdraw) |
4. 消息与通信层
4.1 WebSocket 实时推送
任务从创建到 Worker 接收,延迟从轮询的 3-15 秒降至毫秒级。
端点:
| WS 端点 |
用途 |
认证 |
/ws |
浏览器端广播通道 |
无 |
/ws/device?token=kdt-xxx |
设备专用通道 |
Device Token |
消息协议:
// 设备 → 服务端
{"type":"device.heartbeat","gpu_load":45.2,"cpu_load":23.1,"ram_used_gb":8.5,
"is_computing":false,"uptime_hours":1.5,"agent_version":"2.4",
"gpu_virt":{"max_concurrent":3,"free_slots":2},"cached_models":["abc123"]}
{"type":"task.progress","task_id":123,"progress":45,"message":"处理中"}
{"type":"task.complete","task_id":123,"output":"result...","compute_time":125.3}
// 服务端 → 设备
{"type":"server.connected","device_id":"123","message":"设备已连接"}
{"type":"task.dispatch","task_id":123,"task_type":"llm_inference",
"payload":{"model":"qwen2.5:7b","prompt":"你好"},"priority":2}
4.2 PostgreSQL 消息总线
替代 NATS/JetStream,零新依赖,利用已有 PostgreSQL 实现发布/订阅。
频道设计:
| 频道 |
发布者 |
用途 |
task_assigned |
scheduler/main |
任务分配到节点 |
task_completed |
WS handler |
任务完成通知 |
node_online |
WS handler |
节点上线 |
node_offline |
WS handler |
节点离线 |
cache_invalidate |
CacheIndex |
缓存失效通知 |
5. GPU 虚拟化与算力调度
5.1 VRAM 感知并发
根据 GPU 显存自动计算最大并发数:
| 显存 |
并发数 |
适用 GPU |
| ≥24GB |
3 |
RTX 4090, RTX 3090, A100 |
| ≥16GB |
3 |
RTX 4080, A5000 |
| ≥12GB |
3 |
RTX 4070 Ti, RTX 3080 Ti |
| ≥8GB |
2 |
RTX 3070, RTX 4060 Ti |
| <8GB |
1 |
RTX 3050, T4 |
| 无 GPU |
1 |
CPU 模式 |
5.2 四级调度策略
任务到达 → ① 缓存感知路由 (CacheIndex — 优先选已缓存模型的节点)
→ ② 贡献者优先 (GPU评分 + free_slots + 可靠性排序)
→ ③ 平台节点兜底 (无贡献者时)
→ ④ 社区算力盒子 (预留)
→ ⑤ 云弹性扩容 (预留)
5.3 五因子 AHP 定价模型
| 因子 |
权重 |
说明 |
| GPU TFLOPS |
41% |
原始算力性能 (RTX 4090 = 82.6 TFLOPS 基准) |
| GPU VRAM |
26% |
显存容量决定模型规模上限 |
| CPU |
19% |
核心数 × 架构代际 |
| RAM |
9% |
容量 + 类型 (DDR4/DDR5) |
| Storage |
5% |
容量 + 类型 (NVMe/SSD/HDD) |
综合算力 = GPU_TFLOPS/BENCHMARK × 0.41 + VRAM系数 × 0.26 + CPU系数 × 0.19
+ RAM系数 × 0.09 + Storage系数 × 0.05
时收益 = 时基价 × 综合系数 × 阶梯加成 × 高峰溢价
贡献者收益 = 时收益 × 70%(平台抽成 25% + 公益捐赠 5%)
6. 智能缓存系统
6.1 调度器 CacheIndex
内存维护 model_hash → {node_ids} 映射,实现缓存感知路由。
6.2 Worker 本地缓存
~/.kogun/cache/
├── models/ # 模型权重缓存
│ ├── <md5_hash>/ # 每个模型独立目录
│ └── .cached # 标记文件
└── results/ # 推理结果缓存
└── <hash>.json # LRU 淘汰,上限 1000 条
6.3 性能提升
| 指标 |
冷启动 |
缓存命中 |
提升 |
| 执行时间 |
10-30s |
<0.1s |
100-300x |
| GPU 消耗 |
100% |
0% |
无限 |
| 模型加载 |
90s (网络) |
2s (本地) |
45x |
7. 设备 Worker
7.1 kogun-worker.py v2.4
kogun-worker.py v2.4
├── WorkerConfig # 配置管理 (JSON/YAML)
├── HardwareDetector # 硬件检测: CPU/GPU/RAM/Storage
├── GPUManager # GPU虚拟化: VRAM→并发数 + Semaphore控制
├── LocalCache # 本地NVMe缓存: 模型权重 + 推理结果
├── HermesConnector # LLM推理引擎代理
├── ThreadPoolExecutor # 多任务并发执行
├── WSClient # WebSocket 实时通道 (主)
├── PGPoller # PG NOTIFY 兜底通道 (备)
├── HeartbeatManager # 心跳上报 (15s间隔, 含gpu_virt+cache)
└── TaskExecutor # 任务执行抽象层
7.2 使用方式
# 使用已有 Token
python3 kogun-worker.py --token kdt-xxxxxxxx
# 自动登录 + 注册
python3 kogun-worker.py --login 用户名 密码
# 一键部署
curl -sL https://api.kogun.site/deploy | bash
8. 一键部署
8.1 快速开始
curl -sL https://api.kogun.site/deploy | bash
8.2 部署流程 (5步)
| 步骤 |
操作 |
详情 |
| Step 1/5 |
检测硬件 |
nvidia-smi → GPU型号 + VRAM → 自动计算并发数 |
| Step 2/5 |
安装依赖 |
Python3 + pip; httpx, psutil, websocket-client |
| Step 3/5 |
下载 Worker |
从平台下载 kogun-worker.py |
| Step 4/5 |
注册节点 |
输入账号密码; 自动获取 device_token |
| Step 5/5 |
systemd 服务 |
自动启动; 崩溃自愈 |
9. API 参考
9.1 公开端点
| 方法 |
路径 |
说明 |
| GET |
/ |
SPA 首页 |
| GET |
/landing |
实时数据大屏 |
| GET |
/community |
算力社区页面 (v8.2.1) |
| GET |
/deploy |
一键部署页面 |
| GET |
/docs/tech |
在线技术说明书 |
| GET |
/health |
健康检查 |
| GET |
/api/health |
健康检查 JSON |
| GET |
/api/dashboard |
公开统计面板 |
| GET |
/api/platform/stats |
平台统计 |
| GET |
/api/pricing |
定价引擎 |
| GET |
/api/pricing/tiers |
定价层级 (v8.2.1) |
| GET |
/api/nodes |
节点列表 |
| GET |
/api/tasks/pool |
公开任务池 |
| GET |
/api/community/map |
社区地图数据 (v8.2.1) |
| GET |
/api/leaderboard |
算力排行榜 (v8.2.1) |
| GET |
/api/public/overview |
公开概览 (v8.2.1) |
| GET |
/api/public/charity |
公益信息 (v8.2.1) |
| GET |
/api/announcements |
公告列表 (v8.2.1) |
| GET |
/api/queue/stats |
队列统计 (v8.2.1) |
| GET |
/api/calculator/gpu_list |
GPU列表 (v8.2.1) |
| GET |
/api/calculator/earnings |
收益计算器 (v8.2.1) |
9.2 认证
| 方法 |
路径 |
说明 |
| POST |
/api/auth/register |
用户注册 |
| POST |
/api/auth/login |
用户登录 (返回 JWT) |
| GET |
/api/auth/me |
当前用户信息 |
| GET |
/api/auth/device-status |
设备绑定状态 (v8.2.1) |
| POST |
/api/auth/change-password |
修改密码 |
| POST |
/api/auth/update-profile |
更新资料 |
| POST |
/api/auth/logout |
退出登录 (v8.2.1) |
| POST |
/api/auth/forgot-password |
忘记密码 (v8.2.1) |
| POST |
/api/auth/reset-password |
重置密码 (v8.2.1) |
9.3 节点管理
| 方法 |
路径 |
说明 |
| POST |
/api/devices/register |
注册设备 (返回 device_token) |
| POST |
/api/devices/{id}/verify |
验证设备 |
| POST |
/api/devices/{id}/heartbeat |
设备心跳 |
| POST |
/api/devices/{id}/toggle-compute |
切换算力贡献 (v8.2.1) |
| DELETE |
/api/devices/{id} |
删除设备 (v8.2.1) |
| GET |
/api/devices/{id}/status |
设备状态 |
| GET |
/api/devices/{id}/tokens |
Token 列表 |
| GET |
/api/devices/{id}/tasks |
设备任务 |
| GET |
/api/devices/profile |
设备档案 (v8.2.1) |
| POST |
/api/devices/locate |
设备定位 (v8.2.1) |
| POST |
/api/devices/report-capability |
能力上报 (v8.2.1) |
9.4 任务管理
| 方法 |
路径 |
说明 |
| POST |
/api/tasks |
创建任务 |
| GET |
/api/tasks |
任务列表 |
| GET |
/api/tasks/{id} |
任务详情 |
| GET |
/api/tasks/pool |
公开任务池 |
| POST |
/api/tasks/{id}/claim |
设备领取任务 |
| POST |
/api/tasks/{id}/complete |
完成任务 |
| POST |
/api/tasks/{id}/cancel |
取消任务 |
9.5 任务市场
| 方法 |
路径 |
说明 |
| GET |
/api/marketplace/categories |
市场分类 |
| GET |
/api/marketplace/tasks |
市场任务模板 |
| GET |
/api/marketplace/stats |
市场统计 |
| GET |
/api/marketplace/my-tasks |
我的市场任务 |
| POST |
/api/marketplace/submit |
提交市场任务 |
9.6 财务体系(v8.2.1 新增)
| 方法 |
路径 |
说明 |
| GET |
/api/finance/overview |
财务概览 |
| GET |
/api/finance/transactions |
财务交易记录 |
| GET |
/api/finance/accounts |
收款账户 |
| GET |
/api/finance/withdraw/rules |
提现规则 |
| POST |
/api/finance/withdraw |
提现申请 (前端接口) |
| POST |
/api/finance/recharge |
在线充值 |
| GET |
/api/finance/enterprise/billing |
企业账单 |
| POST |
/api/finance/enterprise/prepay |
企业预付 |
| GET |
/api/my-earnings |
我的收益 |
| GET |
/api/my-transactions |
交易记录 |
| GET |
/api/withdraw/history |
提现历史 |
| POST |
/api/withdraw/request |
提现申请 (API接口) |
9.7 用户体系(v8.2.1 新增)
| 方法 |
路径 |
说明 |
| GET |
/api/user/stats |
用户统计 |
| GET |
/api/user/milestones |
里程碑 |
| GET |
/api/vip/status |
VIP状态 |
| POST |
/api/vip/upgrade |
VIP升级 |
| GET |
/api/referral/info |
推荐信息 |
| POST |
/api/referral/claim |
领取推荐奖励 |
| GET |
/api/achievements |
成就列表 |
| POST |
/api/achievements/check |
检查成就更新 |
| GET |
/api/carbon/stats |
碳减排统计 |
| GET |
/api/tickets |
工单列表 |
9.8 管理员
| 方法 |
路径 |
说明 |
| GET |
/api/admin/users |
用户管理 |
| GET |
/api/admin/finance |
财务管理 |
| GET |
/api/admin/monitor |
系统监控 |
| GET |
/api/admin/data-stats |
数据统计 (v8.2.1修复) |
| GET |
/api/admin/system-status |
系统状态 |
| GET |
/api/admin/cache-debug |
缓存调试 |
| GET |
/api/admin/enterprise |
企业客户 (v8.2.1修复) |
| GET |
/api/admin/withdrawals |
提现列表 (v8.2.1修复) |
| GET |
/api/admin/finance/pending-withdrawals |
待审提现 (v8.2.1) |
| GET |
/api/admin/dashboard |
管理仪表盘 (v8.2.1) |
| POST |
/api/scheduler/auto-schedule |
手动触发调度 |
9.9 OpenAI 兼容 API
| 方法 |
路径 |
说明 |
| GET |
/v1/models |
模型列表 |
| POST |
/v1/chat/completions |
Chat 补全 |
| POST |
/v1/images/generations |
图像生成 |
| POST |
/v1/audio/transcriptions |
语音转文字 |
| POST |
/v1/embeddings |
文本嵌入 |
| POST |
/v1/compute/submit |
提交计算任务 |
| GET |
/v1/compute/status/{task_id} |
计算状态 |
| GET |
/v1/compute/result/{task_id} |
计算结果 |
| GET |
/v1/dashboard/billing |
用量计费 |
9.10 健康检查示例
curl https://api.kogun.site/api/health
# {
# "api": "ok",
# "version": "8.2.1",
# "database": "ok",
# "scheduler": "running",
# "scheduler_coroutines": 5,
# "ws_connections": 0
# }
10. 算力社区
10.1 功能概述
v8.2.1 新增独立算力社区页面 (/community),包含三大板块:
| 板块 |
功能 |
数据源 |
| 🌍 地区分布 |
按地区聚合节点和社区 |
GET /api/community/map |
| 🏆 社区排行榜 |
按算力评分排名 |
GET /api/leaderboard |
| 📱 设备共享广场 |
社区内可共享设备 |
GET /api/community/map |
10.2 社区地图 API
GET /api/community/map
# 返回:
{
"地区": [
{
"地区": "北京",
"节点数": 15,
"社区数": 3,
"社区列表": [
{
"社区名": "中关村算力社区",
"设备数": 8,
"总分数": 750.5,
"设备列表": [...]
}
]
}
],
"总计": {
"地区数": 2,
"节点数": 29,
"社区数": 2,
"总算力分": 1234.5
}
}
10.3 设备注册社区字段
设备注册时支持社区位置信息:
POST /api/devices/register
{
"gpu_name": "RTX 4090",
"community": "中关村算力社区",
"region_city": "北京",
"region_district": "海淀区"
}
11. 数据库 Schema
11.1 数据库信息
| 项目 |
值 |
| 数据库名称 |
kogun_v7 |
| 数据库引擎 |
PostgreSQL |
| 表数量 |
27 张 |
| ID 策略 |
SERIAL 整数自增 |
| 连接串 |
postgresql+asyncpg://kogun:kogun2026@localhost:5432/kogun_v7 |
11.2 核心表结构
users — 用户表
| 列名 |
类型 |
说明 |
版本 |
| id |
SERIAL |
主键 |
|
| username |
VARCHAR(100) UNIQUE |
用户名 |
|
| password_hash |
VARCHAR(255) |
密码哈希 (bcrypt) |
|
| role |
VARCHAR(20) |
角色: admin/user |
|
| credit_balance |
NUMERIC(18,4) |
信用余额 |
|
| email |
VARCHAR(255) |
邮箱 |
|
| phone |
VARCHAR(20) |
手机号 |
|
| status |
VARCHAR(20) |
状态: active/banned |
|
| invite_code |
VARCHAR(50) |
邀请码 |
|
| vip_level |
VARCHAR(20) |
VIP等级: free/standard/premium |
|
| community |
TEXT |
所属社区 |
|
| region_city |
TEXT |
城市 |
|
| region_district |
TEXT |
区县 |
|
| agreement_signed |
BOOLEAN |
协议签署状态 |
v8.2.1 |
| real_name |
VARCHAR(100) |
真实姓名 |
v8.2.1 |
| id_number |
VARCHAR(20) |
身份证号(脱敏) |
v8.2.1 |
| total_earnings |
NUMERIC(18,4) |
总收益 |
|
| balance |
NUMERIC(18,4) |
可用余额 |
|
nodes — 节点表
| 列名 |
类型 |
说明 |
| id |
SERIAL |
主键 |
| user_id |
INTEGER FK |
所属用户 |
| gpu_name |
VARCHAR(100) |
GPU 型号 |
| gpu_score |
FLOAT |
GPU 评分 |
| cpu_cores |
INTEGER |
CPU 核心数 |
| ram_gb |
FLOAT |
内存容量 |
| status |
VARCHAR(20) |
online/computing/offline/paused |
| community |
TEXT |
所属社区 |
| region_city |
TEXT |
城市 |
| region_district |
TEXT |
区县 |
| fingerprint |
VARCHAR(255) UNIQUE |
设备指纹 |
| hourly_rate |
NUMERIC(10,4) |
时薪 |
| reliability_score |
FLOAT |
可靠性评分 |
| tasks_completed |
INTEGER |
完成任务数 |
tasks — 任务表
| 列名 |
类型 |
说明 |
| id |
SERIAL |
主键 |
| user_id |
INTEGER FK |
提交者 |
| type |
VARCHAR(50) |
任务类型 |
| model |
VARCHAR(100) |
模型名 |
| prompt |
TEXT |
提示词 |
| status |
VARCHAR(20) |
pending/running/completed/failed |
| assigned_node |
INTEGER FK |
分配节点 |
| priority |
INTEGER |
优先级 |
| progress |
FLOAT |
进度 0-100 |
| estimated_cost |
NUMERIC(18,4) |
预估费用 |
| actual_cost |
NUMERIC(18,4) |
实际费用 |
withdrawals — 提现记录表 (v8.2.1 完善)
| 列名 |
类型 |
说明 |
| id |
SERIAL |
主键 |
| user_id |
INTEGER FK |
用户 |
| amount |
NUMERIC(18,4) |
金额 |
| fee |
NUMERIC(18,4) |
手续费 |
| account_type |
VARCHAR(20) |
alipay/wechat/bank |
| account_info |
TEXT |
账户信息 |
| status |
VARCHAR(20) |
pending/approved/rejected |
| reviewed_by |
INTEGER FK |
审核人 |
| reviewed_at |
TIMESTAMP |
审核时间 |
enterprises — 企业客户表
| 列名 |
类型 |
说明 |
| id |
SERIAL |
主键 |
| user_id |
INTEGER FK |
用户 |
| company_name |
VARCHAR(200) |
公司名称 |
| license |
VARCHAR(100) |
营业执照 |
| contact_name |
VARCHAR(100) |
联系人 |
| contact_phone |
VARCHAR(30) |
联系电话 |
| status |
VARCHAR(20) |
pending/approved/rejected |
11.3 v8.2.1 数据库迁移
-- migration_v8_community.sql
ALTER TABLE users ADD COLUMN IF NOT EXISTS agreement_signed BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE users ADD COLUMN IF NOT EXISTS real_name VARCHAR(100);
ALTER TABLE users ADD COLUMN IF NOT EXISTS id_number VARCHAR(20);
CREATE TABLE IF NOT EXISTS agreements (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id),
agreement_type VARCHAR(50),
signed BOOLEAN NOT NULL DEFAULT TRUE,
signed_at TIMESTAMP,
created_at TIMESTAMP NOT NULL DEFAULT NOW()
);
ALTER TABLE agreements ADD COLUMN IF NOT EXISTS signature_data TEXT;
ALTER TABLE agreements ADD COLUMN IF NOT EXISTS real_name VARCHAR(100);
ALTER TABLE agreements ADD COLUMN IF NOT EXISTS id_number VARCHAR(20);
CREATE INDEX IF NOT EXISTS idx_agreements_user_id ON agreements(user_id);
CREATE INDEX IF NOT EXISTS idx_users_community ON users(community) WHERE community IS NOT NULL;
12. 运维监控
12.1 服务管理
# API 服务
sudo systemctl status kogun
sudo systemctl restart kogun
sudo journalctl -u kogun -f
# Worker 服务
systemctl --user status kogun-worker
systemctl --user restart kogun-worker
12.2 健康检查
curl https://api.kogun.site/health
# {"api":"ok","version":"8.2.1","database":"ok","scheduler":"running",
# "scheduler_coroutines":5,"ws_connections":0}
12.3 实时监控
curl -H "Authorization: Bearer <token>" \
https://api.kogun.site/api/admin/system-status
# 返回: WS连接、缓存索引、GPU虚拟化、任务吞吐、PG消息总线状态
12.4 服务端口
| 端口 |
服务 |
说明 |
| 80 |
Nginx (HTTP) |
自动重定向到 HTTPS |
| 443 |
Nginx (HTTPS) |
SSL 终端 + 反向代理 |
| 8800 |
Uvicorn |
FastAPI 后端 (仅内网) |
| 5432 |
PostgreSQL |
数据库 (仅内网) |
12.5 SSL 证书
- 提供商: Let's Encrypt (Certbot)
- 过期时间: 2026-09-25
- 自动续期: 已配置
12.6 数据库运维
PGPASSWORD=kogun2026 psql -h localhost -U kogun -d kogun_v7
# 常用查询
SELECT id, username, role FROM users;
SELECT id, status, gpu_name FROM nodes WHERE status='online';
SELECT status, count(*) FROM tasks GROUP BY status;
SELECT count(*) FROM withdrawals WHERE status='pending';
13. v8.2.1 变更日志
13.1 新增功能
| 功能 |
说明 |
| 🏘️ 算力社区页面 |
独立HTML页面,地区分布/排行榜/设备广场 |
| 📊 社区地图API |
GET /api/community/map 按地区聚合节点 |
| 🔧 设备状态API |
GET /api/auth/device-status 设备绑定状态 |
| 🔄 算力贡献开关 |
POST /api/devices/{id}/toggle-compute 节点所有者可操作 |
| 💰 财务体系 |
充值/提现/账单/企业预付/交易记录全链路 |
| 🏆 成就系统 |
里程碑/VIP/推荐奖励/碳减排 |
| 📈 收益计算器 |
GPU列表 + 实时收益估算 |
| 📋 工单系统 |
用户工单管理 |
| 🌍 公开概览 |
无需登录的平台统计数据 |
13.2 Bug修复
| # |
Bug |
根因 |
修复方式 |
| 1 |
前端按钮无响应 |
onclick="showTab(\\'download\\')" 双转义引号导致JS语法错误 |
替换为 ' HTML实体 |
| 2 |
算力社区tab 404 |
/community 路由不存在 |
新建 community.html + 路由 |
| 3 |
community/map 404 |
API端点不存在 |
新增社区地图聚合API |
| 4 |
device-status 404 |
API端点不存在 |
新增设备状态API |
| 5 |
agreement_signed 丢失 |
UserModel缺少列 |
添加3列 + DB迁移SQL |
| 6 |
设备注册不存community |
后端未读取字段 |
持久化社区位置数据 |
| 7 |
种子数据 int("demo001") |
字符串ID传给int() |
使用数据库返回的整数ID |
| 8 |
admin/enterprise 500 |
list.values() 调用在list上 |
兼容list/dict返回 |
| 9 |
withdraw/history 500 |
get_withdrawals_by_user 方法不存在 |
新增WithdrawalModel + 方法 |
| 10 |
marketplace/my-tasks 500 |
get_tasks_by_user 方法不存在 |
新增方法 |
| 11 |
admin/data-stats 500 |
get_data_stats 方法不存在 |
新增方法 |
| 12 |
admin/withdrawals 500 |
get_all_withdrawals 方法不存在 |
新增方法 |
| 13 |
节点暂停 403 |
require_admin 限制 |
改为 get_current_user + 所有者校验 |
| 14 |
toggle-compute 404 |
前端调用端点不存在 |
新增端点 |
| 15 |
finance/withdraw 404 |
前端调用端点不存在 |
新增匹配端点 |
| 16 |
auto-schedule 500 |
started_at 用ISO字符串给DateTime列 |
改为 datetime.now() 对象 |
| 17 |
/docs/tech 404 |
版本改名后md文件路径不匹配 |
多路径fallback |
| 18 |
排行榜500 |
None值排序崩溃 |
(n.get("gpu_score") or 0) |
| 19 |
调度器持续报错 |
所有update_*方法绕过_prepare_data |
统一通过_prepare_data转换日期 |
| 20 |
遗留v7.3.0版本号 |
启动日志和模型版本未更新 |
统一升级到v8.2.1 |
13.3 E2E测试结果
测试模块 端点数 结果
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
公开页面 6 ✅ 6/6
仪表盘 Tab 6 ✅ 6/6
设备节点 Tab 5 ✅ 5/5
任务市场 Tab 6 ✅ 6/6
收益中心 Tab 8 ✅ 8/8
算力社区 Tab 4 ✅ 4/4
我的 Tab 8 ✅ 8/8
下载 Tab 6 ✅ 6/6
协议 Tab 2 ✅ 2/2
通知 Tab 4 ✅ 4/4
企业 Tab 2 ✅ 2/2
Admin管理面板 10 ✅ 10/10
POST操作 7 ✅ 7/7
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
合计 75 100%
14. 版本历史
| 版本 |
日期 |
主要变更 |
| v7.2 |
2026-05 |
初始版本,基础算力共享 |
| v7.3 |
2026-05 |
+设备心跳 + 任务领取 + 五因子定价 |
| v8.0 |
2026-06-10 |
+调度器v6 + 负载均衡 + 认证修复 |
| v8.1 |
2026-06-15 |
+PG消息总线 + Health端点 + 系统监控面板 |
| v8.2.0 |
2026-06-28 |
+GPU虚拟化 + 智能缓存 + Worker v2.4 + 一键部署 + Landing大屏 + Device Token认证 |
| v8.2.1 |
2026-06-29 |
+算力社区 + 财务体系 + 成就系统 + 20项Bug修复 + 30+新API + 实战就绪 |
v8.2.1 修改文件清单
| 文件 |
操作 |
说明 |
main.py |
修改 (3,370→3,864 行,@v8.2.1 发布时快照) |
+30 API端点, 修复5个500错误, 权限模型改进 |
database.py |
修改 (861→1,009行) |
+WithdrawalModel, +8方法, update_*统一_prepare_data |
scheduler.py |
修改 (616行) |
修复isoformat()→datetime对象 |
templates/community.html |
新建 (273行) |
算力社区独立页面 |
templates/index.html |
修改 |
版本号升级 + JS缓存版本号 |
templates/landing.html |
修改 |
版本号升级 |
deploy/db/migration_v8_community.sql |
新建 |
DB迁移: +3列 +索引 |
技术支持: admin@kogun.site
部署命令: curl -sL https://api.kogun.site/deploy | bash
API 文档: https://api.kogun.site/docs
在线说明书: https://api.kogun.site/docs/tech
算力社区: https://api.kogun.site/community
当前版本: v8.2.1 · 2026-06-29 · 实战就绪