闲置算力共享交易平台 · 可运行的最小闭环

让每台闲置机器
都能被计量、被交易

一台 Broker 把视频按关键帧切成若干分片,派发给注册上来的算力节点并行转码; 节点回传产物,Broker 独立重算 SHA-256 校验、无损拼接, 再和单机基线对比出真实加速比。调度、租约、校验、结算,一个都绕不过去。

  • Go 单二进制,无需运行时
  • 节点主动出站,NAT 后也能接入
  • SQLite 落库,重启可恢复
01 / LIVE DEMO

一次任务,从头跑到结算

下面是「切片 → 派发 → 校验 → 合并 → 结算」的 SVG 演示。它不连后端、不需要登录, 勾选故障注入还能看到节点掉线后租约回收重派的全过程。

星栈算力任务调度流程动画 源视频经关键帧切片后派发给三个算力节点,节点转码回传,Broker 做 SHA-256 校验与无损合并,最后按量结算。 源片 关键帧切片 在线节点池 校验 / 结算 产物 input.mp4 60.0s · 1080p H.264 · 关键帧索引 ffprobe → 切点 IDR 帧对齐 · 4 分片 #1 00:00–00:15 #2 00:15–00:30 #3 00:30–00:45 #4 00:45–01:00 node-a libx264 · 0.80 点/秒 0 片 node-b h264_nvenc · 1.00 点/秒 0 片 node-c libx265 · 0.65 点/秒 0 片 Broker 独立重算哈希 #1 SHA-256 待校验 #2 SHA-256 待校验 #3 SHA-256 待校验 #4 SHA-256 待校验 0/4 一致 concat -c copy 无损拼接 · 不二次编码 output.mp4 · 60.1s 等待结算 · 墙钟 — s 点击「重新播放」开始
broker / 事件流idle
  1. 等待播放…

动画与事件日志为流程示意(故障分支按同一格式模拟);加速比、墙钟与容错结论取自仓库 README 及 scripts/fault-test.sh 的实测记录。

02 / CAPABILITIES

一套调度骨架,六条落地链路

切片单位和执行命令不同,但「切片 → 派发 → 校验 → 合并 → 结算」是同一套。

视频转码

ffprobe 抽关键帧、IDR 对齐切点、-ss 精确 seek;分片并行转码后 concat demuxer 无损拼接,并与单机基线实测对比。

Blender 帧渲染

按帧切片,节点回传 PNG 压缩包,Broker 排序后由 ffmpeg 编码成片;进度从 Fra: 行真实解析。

PR / FCPXML 时间线

解析剪辑点按秒切片,本地 concat;编码参数不一致时自动转码兜底,接缝不花屏。

模型网关

OpenAI 兼容 API,按模型做低价路由、token 计量与 90/10 分成;上游可接 llama.cpp / vLLM / Ollama。

IPv6 云主机共享

卖方发布配置,买方下单后 Agent 用 QEMU 拉起镜像、生成 cloud-init、按 IPv6/端口映射接入,按秒结算与自动停机。

编译打包

上传源码 zip,节点解压执行构建命令,产物打包回传;按实际墙钟分钟计费,失败不结算,带能力匹配与用户白名单。

03 / HOW IT WORKS

闲置换算力的难,不在转码

编码器交给 ffmpeg,平台真正要解决的是「谁来做、做完算不算数、跑了半路掉线怎么办、钱怎么记」。

01

节点主动出站

Worker 用 HTTP 长轮询领任务,家庭 / 宿舍机器在 NAT 后没有公网 IP 也能接入;启动时自检 CPU、内存、显卡与实际可用编码器,按白名单上报能力。

02

硬约束过滤 + 软评分匹配

score = 实测吞吐 × 信誉 × (池均价 ÷ 单价)^CostWeight ÷ (1 + 占用)。派发即占槽,并把当时的报价冻进分片,之后改价不影响已在飞的任务。

03

预扣 → 按量结算 → 退还

按最贵可行节点保守预扣;每片经双 SHA-256 校验一致后按视频秒数 × 冻结价结算,任务结束退还差额。按节点与按账户两套贡献口径分开记账。

04

租约回收与所有权校验

25s 无心跳立即回收分片,重派时把原节点写进该分片的 Excluded 名单;老节点迟到的回传一律 409,不会二次结算。SQLite write-through,重启后在飞分片自动重派。

04 / DOWNLOADS

五个端,一个 Release

Windows 桌面、Android、微信小程序、HarmonyOS 与算力节点程序,全部由 GitHub Actions 构建并发布到 Releases。 安装包托管在 GitHub,不走 Workers 静态资源——那边单文件上限 25 MiB,装不下自包含桌面端。

正在读取最新版本…

各端获取方式 · 先把限制说清楚

Windows 桌面自包含单文件 StarStack.Desktop.exe,双击即用、无需 .NET 运行时,约 70–90 MB。内嵌 React 控制台,不依赖远程网页。
Androiddebug APK,需允许「未知来源」安装;默认连 https://starstack.run,可在登录页改服务器地址。
微信小程序提供源码包而非安装包:微信里没有「下载安装小程序」这回事。用微信开发者工具「导入项目」打开,touristappid 是测试号;正式发布需域名备案与合法域名配置。
HarmonyOS NEXT提供源码包:ArkTS 壳需要 DevEco Studio 5.x(API 12+)与华为账号自动签名,仓库未提供已签名 HAP。Web 控制台资源已内嵌在 rawfile/web。

校验与启动

每个 Release 附 SHA256SUMS.txt,覆盖全部二进制、安装包与源码包。节点程序跑起来只需一个地址:

starstack-worker --id dorm-pc --server https://starstack.run --slots 2

更省事的方式:登录控制台 →「一键提供算力」→ 下载启动脚本,填单价与槽数后双击,节点会自动认领。

源码构建(可选)

  • Windows 桌面 apps/desktop/build.cmd → out/StarStack.Desktop.exe
  • Android cd apps && npm run apk,或 apps/android/apk.sh
  • 小程序 解压源码包,微信开发者工具导入 apps/miniapp
  • 鸿蒙 DevEco Studio 5.x 打开 apps/harmony(不是仓库根目录)

四端默认共用同一套 apps/mobile React 产物与后端接口,详见仓库 apps/README.md。

05 / QUICK START

本机三分钟跑通闭环

一条脚本会起 Broker + 两个节点,生成 60s 测试片并提交任务;浏览器打开就能看到分片、租约、校验和结算。

# 1. Broker + 2 节点 + 60s 测试片 + 提交任务
bash scripts/run-demo.sh
#    浏览器打开 http://127.0.0.1:8787/

# 2. 故障注入:跑到一半杀掉一个节点,看分片被回收重派
bash scripts/fault-test.sh

# 3. 端到端验收(注册→认领→结算→账单→越权检查,11 步)
bash scripts/smoke.sh

# 4. 调度与结算单元测试(不需要 ffmpeg)
go test ./internal/hub/