news 2026/10/22 23:02:36

个人开发者实战:从0到1手搓局域网 GPU 算力共享平台,并成功上架微软商店

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
个人开发者实战:从0到1手搓局域网 GPU 算力共享平台,并成功上架微软商店

个人开发者实战:从0到1手搓局域网 GPU 算力共享平台,并成功上架微软商店

前言:为什么要做这个项目?

作为一个全栈独立开发者,我手头有一台带 RTX 3060 的主机。平时除了跑跑本地大模型、做做 AI 漫剧,大部分时间它的算力都在闲置。而另一边,很多高校学生、小型工作室在跑深度学习、ComfyUI 出图时,却因为云端 GPU 太贵而发愁。

于是,我萌生了一个想法:能不能做一个局域网内的“算力 Airbnb”?让闲置的显卡安全地共享给同网段的开发者使用。

经过几周的爆肝开发,这个名为「算力集市 (Compute Bazaar)」的项目不仅跑通了完整的业务闭环,还成功打包上架了微软商店。今天把开发过程中的架构设计与踩坑经验分享给大家。

项目官网:https://computebazaar.netlify.app
开源地址:https://gitee.com/tianyeHome/compute_bazaar (已采用 Apache-2.0 协议开源)
技术栈:Flutter (GetX + MVVM) + Python FastAPI + Docker + WSL2


一、核心功能与技术架构

为了保证安全性和极客感,平台采用了“双模式”设计:租客模式和出租模式。

🛠️ 整体架构

  • 前端:Flutter + GetX + MVVM (Monorepo 架构),打包为 Windows 桌面端 MSIX。
  • 后端:Python FastAPI +pynvml(硬件监控) + SQLite (任务持久化)。
  • 通信:UDP 广播 (局域网节点发现) + HTTP REST (指令下发) + SSE (实时监控流)。
  • 隔离环境:Docker 容器。

✨ 四大核心亮点

  1. 局域网秒级发现:无需公网 IP,基于 UDP 广播自动发现同网段节点。
  2. Docker 沙盒隔离:所有任务在容器中执行,绝对保护房东的宿主机安全。
  3. 受控任务包 (YAML):支持自定义 YAML 定义镜像和命令,严格过滤特权模式。
  4. 虚拟算力点计费:不碰真实资金,通过心跳与时间片机制,精准计算消耗的“算力点”。

二、硬核踩坑实录(技术干货)

在开发过程中,我遇到了几个极其棘手的技术难点,这里重点复盘一下:

1. WSL2 下的 Docker GPU 透传(地狱难度)

为了让 Windows 用户能通过 Docker 隔离任务,必须让 WSL2 里的 Docker 能够使用宿主机的 NVIDIA 显卡。

  • 踩坑:一开始试图在 WSL2 里装 K8s 和 HAMi 做显存切片,结果遇到了致命的unresolvable CDI devices和 cgroups 格式错误。因为 WSL2 的 GPU 透传机制(/dev/dxg)与原生 Linux 完全不同。
  • 解决:放弃复杂的硬切片,改用 Docker 原生 CDI 模式。将nvidia-container-runtime配置为cdi,并手动修补 CDI spec 文件,注入libdxcore.so。最终成功实现了“单卡多容器”共享。

2. 幽灵 IP 与 UDP 发现

在局域网广播时,经常扫出172.25.xxx.xxx这样的幽灵节点。

  • 踩坑:Python 在获取本机 IP 时,优先拿到了 WSL 虚拟网卡的 IP,导致前端连不上。
  • 解决:废弃传统的遍历网卡方式,改用最稳健的UDP 路由探测法(向8.8.8.8发送 UDP 包获取出口 IP),完美避开了所有虚拟网卡。

3. 动态 YAML 任务包与安全校验

如果让用户随便传 YAML,会有严重的安全隐患。

  • 解决:后端引入PyYAML和Pydantic,在接收 YAML 时做三层校验:语法校验 -> 必填字段校验 -> 安全拦截(直接拦截privileged: true和挂载C:/盘的特权操作)。只要校验不通过,直接打回。

4. 自动化拉起与心跳防误判

用户点击“开启服务”时,Flutter 需要自动静默拉起 Python 打包的后端 exe。

  • 踩坑:拉起需要时间,此时前端的心跳检测会连续失败,导致界面疯狂闪红灯报错。
  • 解决:引入HeartbeatController.markAgentStarting()状态机。在 Agent 启动期间跳过失败计数,只有真正连续 3 次(90秒)未确认才判定断线。

三、界面展示

(发布到 CSDN 时,记得在这里插入你的 4 张高清截图)

1. 节点发现与 GPU 监控

真实的显卡利用率、显存与温度监控,基于pynvml和fl_chart绘制的心电图式折线图。

2. 自定义 YAML 任务提交

支持用户粘贴自定义 YAML 任务包,实时进行安全校验,下方绿灯提示通过。

3. 任务管理与算力点计费

跑通完整的商业闭环,任务秒级完成,准确扣除 1 个算力点。


四、如何体验?

目前 v0.1.0 单机版已经正式发布,并且已提交微软商店审核。

  • 源码编译:直接 clone Gitee 仓库,进入apps/compute_bazaar_local执行flutter run -d windows。
  • 绿色免安装版:在 Gitee 的 Releases 页面,下载ComputeBazaar-v0.1.0-Windows-x64.zip,解压双击即可运行。

⚠️ 运行环境要求:需要 Windows 10/11,并提前在 WSL2 中安装并启动 Docker 环境。


五、总结与后续规划

作为一个个人独立项目,能走到这一步非常有成就感。

v0.2.0 的规划:

  1. 实现 Ubuntu 双系统下的 HAMi 部署,做真正的“显存硬切片”(A 租客只能用 3G,B 租客只能用 4G)。
  2. 实现联网版,加入 NAT 穿透,让跨城调度算力成为可能。

如果这个项目对你有启发,或者你也想把自己的闲置显卡变成“AI 时代的房东”,欢迎来 Gitee 提 Issue,或者给个 Star 支持一下!

🌟Gitee 传送门:https://gitee.com/tianyeHome/compute_bazaar

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 23:02:08

WorkBuddy 教师实操手册(从备课到出卷)

从备课到出卷 WorkBuddy 教师实操手册(18 章重制版) 一份按公开目录结构重制的教师实操手册:18 章、18 条可复制指令,覆盖备课、课件、出卷、批改、学情、家校、教研、Skill 与自动化。 这不是原 PDF 的逐页复制。 原书 238 页&…

作者头像 李华
网站建设 2026/10/22 22:57:55

Codex 安装和使用指南:OpenAI 的终端 AI 编程助理入门及实际操作说明

OpenAI Codex 是一个终端人工智能编程助手,在 2026 年已经使用了专门的模型 GPT-5.3-Codex,并且可以切换到新版本 GPT-6 Astra。本文主要介绍安装、设置、常用命令以及实际使用中的例子,并且与 Claude Code 进行了对比分析,为开发…

作者头像 李华
网站建设 2026/10/22 22:56:42

微信客服机器人自动回复语录怎么归类?按场景分组的整理法

微信客服机器人自动回复语录怎么归类?按场景分组的整理法 接手过一个语料库:三百多条语录,看着很全,线上命中得一塌糊涂——同一个问题被三条规则抢,用户拿到一段和他订单无关的话术。后来发现问题不在话术写得够不够漂…

作者头像 李华
网站建设 2026/10/22 22:28:17

数字化园区系统集成:接口契约与数据流规范实战指南

简介:本资源是一份91页的《数字化园区建设智能化系统汇报方案》PPT专业课件,面向智慧园区规划师、信息化系统集成商、高校智能建筑/数字基建方向师生及产业园区管理者,系统解决园区级智能化顶层设计与落地实施路径问题。方案覆盖项目概况、综…

作者头像 李华
网站建设 2026/10/22 22:26:59

工程伦理课后习题解题指南:六步框架与避坑清单

工程伦理课后习题,几乎是每个工科生又爱又恨的存在。我爱它是因为不用背公式,恨它是因为每道题都像用放大镜照我的决策习惯。坦白讲,我本科时期第一次做这类题时,答案写得又臭又长,却只拿到一个及格分。后来在模拟项目…

作者头像 李华