Layr-Labs/d-inference

Private Inference Network on Idle Macs

Darkbloom (d‑inference)

這是什麼 – Darkbloom 是一個公開預覽階段的去中心化推論服務,讓 Apple 硅芯片 Mac 的擁有者可以將閒置的 GPU/CPU 計算資源出租,作為與 OpenAI 兼容的後端。使用者透過標準的 HTTPS 端點(https://api.darkbloom.dev/v1)以常見的 OpenAI 或 Anthropic 請求格式發出請求;請求會被導向運行模型的提供者 Mac,並透過 Apple 的 MLX 庫在程序內執行推論。


核心理念

概念 Darkbloom 的實作方式
去中心化運算 Mac(M1–M2–Ultra 等)執行一個加固的 Swift CLI(darkbloom),透過 WebSocket 出站連接至在 GCP 保密虛擬機(AMD‑SEV)上運行的 Go 協調器。
設計即隱私 • 每個請求皆使用 NaCl Box(X25519 + XSalsa20‑Poly1305)進行端對端加密。
• 提供者程序被嚴格限制(Hardened Runtime、SIP、PT_DENY_ATTACH),因此機器擁有者無法附加除錯器或讀取記憶體。
• 唯一的明文暴露僅存在於協調器的硬體加密虛擬機記憶體中;從未被記錄或持久化。
硬體驗證 四層驗證鏈:Secure Enclave 簽署的驗證 blob → MDM 交叉檢查 → Apple Managed Device Attestation(MDA)→ APNs 代碼身分簽章。提供者的公鑰與其 Secure Enclave 綁定,協調器每 5 分鐘驗證一次。
OpenAI 兼容 API 所有標準端點(/v1/chat/completions/v1/completions/v1/messages 等)皆可直接使用;僅需變更基礎 URL。支援串流(SSE)、工具呼叫、視覺功能與連續批次處理。
自我路由/直接模式 若你擁有提供者節點,可免費將請求路由至「你的」機器(X‑Darkbloom‑Route: self),或啟動本地 OpenAI 兼容伺服器(darkbloom start --local),完全跳過協調器。

架構概覽

flowchart LR
    U[消費者(SDK / curl / UI)] -->|HTTPS| CO[協調器(Go,GCP 保密 VM)]
    CO -->|WebSocket + NaCl Box| P[提供者(macOS 上的 Swift CLI)]
    P -->|Metal GPU 透過 MLX| GPU[Apple 硅芯片 GPU]
    P -.->|加密 SSE| CO
    CO -.->|串流回應| U
  • 協調器 – 負責驗證、計費、選擇提供者、重新加密載荷,並傳遞 SSE 區塊。
  • 提供者 – 一個加固的 macOS 程序,使用 mlx‑swift‑lm 載入模型,在裝置上執行推論,且從不向作業系統使用者暴露明文。
  • 模型 – 儲存在中央位置(https://models.darkbloom.ai),由每個提供者下載並驗證(SHA‑256)。模型別名(例如 gemma-4-26b)在請求時解析。

快速上手(消費者)

from openai import OpenAI
client = OpenAI(base_url="https://api.darkbloom.dev/v1", api_key="sk-db-…")
stream = client.chat.completions.create(
    model="gemma-4-26b",
    messages=[{"role": "user", "content": "Hello, Darkbloom!"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

或使用 curl:

curl https://api.darkbloom.dev/v1/chat/completions \
  -H "Authorization: Bearer sk-db-…" \
  -H "Content-Type: application/json" \
  -d '{"model":"gemma-4-26b","messages":[{"role":"user","content":"Hello!"}],"stream":true}'

所有標準 OpenAI SDK 均可透過更換基礎 URL 使用。


執行提供者(賺取收益)

  1. 先決條件 – Apple 硅芯片(M1+)、macOS 14+、至少 8 GB RAM、50 GB 可用磁碟空間、出站 HTTPS 連線。
  2. 安裝 – 一行指令:
    curl -fsSL https://api.darkbloom.dev/install.sh | bash
    
    腳本會驗證簽章,設定 Secure Enclave 助手,並(可選)安裝 MDM 設定檔以進行驗證。
  3. 啟動守護程序
    darkbloom start               # 後台 launchd 服務
    darkbloom login              # 使用裝置代碼流程連結你的帳戶
    darkbloom status             # 查看硬體狀態、信任等級、收益
    
  4. 模型管理darkbloom models download gemma-4-26bdarkbloom models listdarkbloom models remove …
  5. 收益 – 可在網路控制台查看(https://console.darkbloom.dev)。路由至你自己的節點的請求免費;其他所有流量遵循以下每 token 定價。

定價(公開 API)

Token 類型 預設费率
輸入 $0.05 / 1 M tokens
輸出 $0.20 / 1 M tokens
每請求最低收費 $0.0001
平台手續費 定義於 docs/architecture/billing.md#invariants

费率依模型而定,個別提供者可覆蓋;即時清單可於 GET /v1/pricing 取得。


安全與隱私亮點

  • 零觀察表面 – 推論運行在接收加密載荷的同一程序中;無子程序、無本地伺服器、無 IPC。
  • 核心層級除錯器拒絕PT_DENY_ATTACH 防止任何外部除錯器附加。
  • 加固執行環境與 SIP – 阻擋記憶體讀取 API;若要移除保護,必須重啟並終止程序。
  • 端對端加密 – NaCl Box 將請求封裝給提供者的驗證密鑰;回應區塊則重新封裝回協調器。
  • 驗證鏈 – Secure Enclave 簽章 → MDM → Apple Managed Device Attestation → APNs 代碼身分,讓協調器有信心確認二進位檔為真實且未被修改。
  • 威脅模型 – 唯有能物理拆焊並探測記憶體晶片的攻擊者才可能看見明文;所有軟體層攻擊皆已緩解。

成熟度與授權

  • 狀態公開預覽。預期會有破壞性變更、偶發停機與頻繁更新。
  • 程式碼庫結構
    • coordinator/(Go) – 控制平面、路由、計費、驗證。
    • provider‑swift/(Swift) – 在 Mac 上執行的加固 CLI。
    • console‑ui/admin‑ui/ – Next.js 控制台。
    • docs/ – 豐富的設計、安全與運維文件。
  • 授權 – README 提及標準開源授權(見程式碼庫中的 LICENSE),但也包含聲明:本服務「按原樣」提供,且提供者軟體可能受 Apple 開發者計畫協議約束。

哪些人會使用它?

  • 開發者:需要 OpenAI 兼容端點,但想避免集中式雲端成本。
  • 研究人員:尋找在一般硬體上進行隱私保護推論的測試平台。
  • Mac 擁有者:希望在保護資料隱私的同時,將閒置 GPU 資源貨幣化。
  • 企業:需要本地推論但缺乏自有 GPU 集群;可利用聚合的 Mac 網路替代。

快速連結(來自程式碼庫)

  • 文件docs/consumer/quickstart.mddocs/provider/installation.mddocs/architecture/security/encryption.md
  • API 參考docs/reference/api-contracts.md
  • 計費不變量docs/architecture/billing.md#invariants
  • 提供者 CLI 參考docs/provider/cli-reference.md
  • 自我路由指南docs/provider/self-route.md
  • 直接模式指南docs/provider/direct-mode.md

Darkbloom 是一個真實的開源嘗試,旨在將大量閒置的 Apple 硅芯片 Mac 轉化為一個隱私保護、與 OpenAI 兼容的推論雲端。其設計依賴硬體驗證、端對端加密與加固的 macOS 程序,是去中心化 AI 運算的一個重要範例。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案