mcpField
C
computeledger

computeledger

ローカル
github.com/RudrenduPaulセキュリティ05 週間前に更新

computeledger について

computeledgerは、計算使用量の署名付き記録を作成し、独立して検証するCLI、ライブラリ、MCPサーバーです。プロバイダーをまたぐオフライン検証を必要とするチームやエージェント向けに、Ed25519署名と改ざんを検出できるローカル台帳を提供します。

主な機能

  1. 01Ed25519署名付き使用量レシート
  2. 02改ざん検出用ハッシュチェーン台帳
  3. 03レシートと台帳のオフライン検証
  4. 04プロバイダー非依存のローカル動作
  5. 05記録・検証用の4つのMCPツール

活用シーン

  1. 01計算ジョブのGPU使用量の記録
  2. 02プロバイダー間での検証可能なレシート共有
  3. 03台帳項目の改変や並べ替えの確認

MCP 対応

stdioのMCPサーバーは、MCPクライアントにrecord_usage、verify_receipt、list_ledger、verify_ledgerを公開します。Python版とTypeScript版のどちらからも起動できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"rudrendupaul-computeledger": {
"command": "uvx",
"args": [
"computeledger-cli"
]
}
}
}
起動コマンドuvx computeledger-cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicomputeledger-cli0.1.3

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
localanyいいえホームディレクトリではなく、現在のディレクトリの .computeledger を使用します
gpuHoursanyいいえ消費した GPU 時間(判明している場合)
hardwarestringはいハードウェア識別子。例:'nvidia-h100'、'nvidia-a100'、'cpu'。
providerstringはいコンピューティングプロバイダー名。例:'aws'、'lambda-labs'、'on-prem'。
workloadTypeanyいいえ
estimatedFlopsanyいいえ推定浮動小数点演算数(判明している場合)
durationSecondsnumberはいワークロードの実時間(秒)

詳細

ComputeLedger

CI npm version PyPI version License: Apache-2.0 Node

インストール • クイックスタート • 機能 • CLI リファレンス • 比較 • FAQ

ComputeLedger - 暗号署名付きの計算使用量レシート

計算使用量に署名し、ハッシュチェーンに記録して、独立して検証できます。どのプロバイダー間でも持ち運び可能です。

ComputeLedger のデモ:computeledger keys generate --local、computeledger record --local、computeledger ledger verify --local を実際の CLI で実行

ComputeLedger は、計算ジョブの使用量(GPU 時間、ハードウェア、実行時間、ワークロードの種類)を暗号署名付きレシートとして記録し、改ざんを検知できるローカル台帳に追加します。レシートの発行者を信頼しなくても、また特定のクラウド、チェーン、ベンダーの技術スタックに依存しなくても、誰でもレシートの真正性と台帳の完全性を検証できます。

インストール

npm install -g computeledger-cli
pip install computeledger-cli

どちらのパッケージも同じ computeledger コマンドをインストールします。レシートはどちらを使っても相互運用できます。npm バイナリで署名したレシートは PyPI バイナリでも正しく検証でき、その逆も同様です。

クイックスタート

$ computeledger keys generate --local
Generated Ed25519 keypair.
Public key: COxK/lkoWxWB42QKXjvcHnmBPozH4Oo2JHoOKDjsoU8=
Private key: ./.computeledger/keys/ed25519.pem (mode 600)

$ computeledger record --local --provider aws --hardware nvidia-h100 \
    --duration-seconds 3600 --gpu-hours 1 --workload-type training
Recorded usage receipt 39952199-0897-48b8-92c5-e351f773c83d.

$ computeledger ledger verify --local
Ledger valid: 1 entries, unbroken hash chain.

または、手動で record を呼び出すことなく、実際のジョブを直接ラップできます。

computeledger run --local --provider on-prem --hardware nvidia-a100 -- python train.py

run はラップしたコマンドを実際のサブプロセスとして実行し(シェル経由では決して実行しません)、実時間の実行時間を測定します。GPU が存在する場合は nvidia-smi で GPU 使用率をサンプリングし、結果のレシートに署名して自動的に追加します。NVIDIA GPU がないマシンでも、実行時間のみのレシートを生成します。

ComputeLedger の run --wrap デモ:computeledger run --local --provider on-prem --hardware nvidia-a100 -- sleep 1 で実際のジョブをラップし、実行時間を測定してレシートに自動署名

ComputeLedger アカウントもネットワーク呼び出しも必要ありません。レシートを誰かに渡せば、どのマシンからでも検証できます。

computeledger verify receipt.json

これが必要な理由

複数のクラウドやプロバイダーにまたがる GPU 使用量には、ポータブルで検証可能な記録がありません。コストダッシュボードで分かるのはプロバイダーが使用したとする量です。第三者が、その記録が後から改変されていないことを独立して確認することはできません。また、連携しているプロバイダーでしか利用できません。ComputeLedger は軽量でプロバイダーに依存しないアテステーション形式です。CLI コマンドを実行したり MCP ツールを呼び出したりできるプロセスであればレシートを生成でき、どの言語のどのプロセスでも検証できます。

対象範囲は意図的に絞っています。GPU マーケットプレイス、コストダッシュボード、コンフィデンシャルコンピューティングプラットフォームの代替を目指すものではありません。これらはいずれも、それぞれ異なる重要な役割を果たします。どこが境界なのかは、以下の比較をご覧ください。

特長

  • Node と Python の組み込み/標準暗号ライブラリを使った Ed25519 署名。 独自の暗号処理はなく、TypeScript 側に外部暗号ライブラリへの依存もありません。
  • ハッシュチェーン型台帳。 各レシートには、直前のレシートのハッシュが埋め込まれています。過去のエントリーを削除、並べ替え、編集すると、改ざんされたエントリー自体の署名が一見有効でも、ledger verify で検出できる形でチェーンが破損します。
  • 設計上、言語をまたいだ相互運用が可能。 npm パッケージの computeledger バイナリで署名されたレシートは、PyPI パッケージの computeledger バイナリでも正しく検証できます。どちらの実装も、ハッシュ計算の前に同じ決定論的な canonical-JSON アルゴリズムでレシートのペイロードをシリアライズします。
  • プロバイダーに依存しません。 アカウントも API キーも不要で、特定のクラウドやチェーンにも依存しません。ノート PC、オンプレミスクラスター、任意のクラウド VM で同じように動作します。
  • エージェントネイティブです。 すべてのサブコマンドが構造化出力用の --json に対応しており、computeledger mcp を実行すると、呼び出し可能なツールとして record_usage、verify_receipt、list_ledger、verify_ledger を公開する Model Context Protocol サーバーが起動します。
  • シェルインジェクションの攻撃面がありません。 computeledger run -- <command> は、ラップ対象のコマンドをシェル文字列ではなく引数配列で実行するため、ラップ対象コマンド内のメタ文字は無効です。

CLI リファレンス

computeledger keys generate [--local]
computeledger keys show [--local] [--json]
computeledger run [--local] [--provider <name>] [--hardware <type>] [--workload-type training|inference|unknown] [--no-record-command] [--json] -- <command...>
computeledger record --provider <name> --hardware <type> --duration-seconds <n> [--gpu-hours <n>] [--flops <n>] [--workload-type <type>] [--local] [--json]
computeledger verify <receipt.json> [--json]
computeledger ledger list [--local] [--json]
computeledger ledger show <id> [--local] [--json]
computeledger ledger verify [--local] [--json]
computeledger export --format json|csv [--out <file>] [--local]
computeledger mcp
フラグ意味
--local~/.computeledger の代わりに、カレントディレクトリ内の ./.computeledger を使用します
--json人間が読みやすいテキストの代わりに、標準出力へ構造化 JSON を出力します
--no-record-commandレシートへのラップ対象コマンド文字列の記録を省略します(run のみ)

ComputeLedger CLI の操作例:実際の CLI で keys generate --local、record --local、ledger list --local --json、export --format csv --local を最初から最後まで実行

MCP サーバー

ComputeLedger には Model Context Protocol サーバーが付属しているため、AI エージェント(Claude、Cursor、または MCP 互換クライアント)は、人が手動で CLI を実行することなく、計算使用量のレシートを直接記録して検証できます。Python パッケージでは、サーバーは独立したコンソールスクリプトではなくサブコマンドとして公開されるため、実際の起動コマンドは computeledger-mcp ではなく computeledger mcp です。

pip install computeledger-cli

MCP クライアントの設定に追加します(Claude Desktop の場合は claude_desktop_config.json)。

{
  "mcpServers": {
    "computeledger": {
      "command": "uvx",
      "args": ["--from", "computeledger-cli", "computeledger", "mcp"]
    }
  }
}

サーバーは CLI と一対一で対応する次の 4 つのツールを公開します。

  • record_usage(provider, hardware, durationSeconds, gpuHours?, estimatedFlops?, workloadType?, local?):ローカルの Ed25519 キーで使用量エントリーに署名し、ハッシュチェーン型台帳に追加して、署名済みレシートを返します。
  • verify_receipt(receipt):レシートの署名とハッシュ整合性を個別に検証します。
  • list_ledger(local?):ローカル台帳に記録されたすべてのレシートを一覧表示します。
  • verify_ledger(local?):台帳全体にわたって、すべてのエントリーの署名と途切れていないハッシュチェーンを検証します。

呼び出し例:

record_usage(provider="lambda-labs", hardware="nvidia-h100", durationSeconds=3600, gpuHours=1, workloadType="training")

トランスポートは stdio なので、ホストする必要はありません。MCP クライアントがサーバーをローカルのサブプロセスとして起動します。ソース: python/src/computeledger/mcp/server.py。

npm パッケージは、ネイティブの TypeScript サーバー(src/mcp/server.ts)を通じて同じ 4 つのツールを公開しており、npx computeledger-cli mcp で同様に起動できます。両方の実装は相互検証による相互運用が可能で、すべてのツールが CLI の --json モードと同じ構造の JSON を返します。

ライブラリ API

import { createReceipt, verifyReceipt, Ledger, verifyChain, loadKeyPair, resolvePaths } from "computeledger-cli";
from computeledger import create_receipt, verify_receipt, Ledger, verify_chain, load_key_pair

比較

ComputeLedger は、特定のプロバイダーのチェーンやプラットフォームを採用する必要がない、ポータブルで暗号学的に検証可能な使用量レシートという、狭く明確な領域を担います。以下のツールを置き換えようとしているわけではありません。それぞれ、実際に異なる役割を果たしています。

ComputeLedgerSkyPilotOpenCostAICert
概要署名付きのポータブルな使用量レシートマルチクラウドのジョブオーケストレーションとコスト管理Kubernetes/クラウドのコスト監視トレーニングのプロベナンス証明
暗号学的検証可能(Ed25519、オフライン)不可不可可能(TPM ベース)
プロバイダーへのロックインなし特定のクラウドをオーケストレーションKubernetes/クラウドネイティブなし
改ざんを検知できる履歴あり(ハッシュチェーン型台帳)なしなしなし(単一の成果物で、チェーンなし)
GitHub スター数新規10,4416,659(CNCF)20
プロジェクトの活動状況活発活発活発2024年6月以降コミットなし
エージェントネイティブ(MCP/--json)はい一部対応(API/SDK)いいえいいえ

SkyPilot と OpenCost は、実際に隣接する課題(クラウド間でのジョブ実行と、そのコストの可視化)を解決しており、このプロジェクトよりもはるかに大規模で成熟しています。しかし、どちらも署名付きで独立して検証可能な使用記録は生成しません。AICert は、TPM に紐付いた証明を使うスタンドアロンのオープンソースツールとして、トレーニング計算のプロベナンスに取り組みましたが、2024年6月以降コミットがありません。ComputeLedger の範囲は意図的により限定されており(完全なトレーニングプロベナンスのフレームワークではなく、使用量レシートを対象とします)、レシート形式が単一言語のエコシステムに縛られないよう、初日から npm パッケージと PyPI パッケージの両方を提供しています。

ComputeLedger とは何か、なぜ存在するのか

ComputeLedger は、計算リソースの使用量を暗号学的に署名した記録を生成・検証するための、オープンソースの CLI、ライブラリ、MCP サーバーです。GPU の使用時間、使用ハードウェア、ワークロードの実行時間といった計算リソースの使用量に関する主張には、現在、ポータブルでオフライン検証可能な証明形式がありません。課金ダッシュボードの信頼性は、それを発行するプロバイダーへの信頼度に依存し、対象もそのプロバイダーだけに限られます。ComputeLedger のレシートは自己完結型の署名付き JSON オブジェクトであり、ネットワークへの接続や信頼できる第三者を介さずに、どの当事者でも、どのマシン上でも、独立して保守されている2つの言語実装のどちらを使っても検証できます。

FAQ

ComputeLedger を使用するのにアカウントや API キーは必要ですか? いいえ。すべてローカルで実行されます。キーはお使いのマシン上(~/.computeledger または --local を指定した場合は ./.computeledger)で生成、保存されます。

レシートを偽造できますか? 署名に使用した秘密鍵がなければできません。verify はペイロードのハッシュを再計算し、埋め込まれた公開鍵に対して Ed25519 署名を検証します。公開鍵自体も署名対象のペイロードの一部であるため、別の鍵に差し替えるとハッシュが変わり、レシートは無効になります。

GPU がない場合はどうなりますか? computeledger run は適切に処理を続けます。実時間と、指定した --hardware/--provider の値を記録し、nvidia-smi が見つからない場合は GPU 使用率のサンプルを省略します。

SkyPilot や OpenCost と競合しますか? いいえ。上記の比較表を参照してください。これらのツールはオーケストレーションとコストの可視化を解決します。ComputeLedger が解決するのは、使用量の申告を独立して検証できるようにすることです。両者は相互補完的です。オーケストレーションとコスト管理には SkyPilot または OpenCost を使い、署名付き記録が必要な箇所に ComputeLedger を追加してください。

レシート形式はブロックチェーンですか? ローカルのハッシュチェーン方式による追記専用ログで、Merkle ログや git コミットチェーンに似た仕組みです。トークンもコンセンサスメカニズムもなく、ネットワークも使用しません。

ComputeLedger は Windows で動作しますか? npm パッケージと PyPI パッケージは、Windows を含む Node.js 18 以降または Python 3.10 以降に対応するすべてのプラットフォームでインストールして実行できます。ただし、秘密鍵ファイルは POSIX のアクセス許可ビット(モード 600)を使って書き込まれ、Linux と macOS ではアクセスが制限されます。Windows は同じ POSIX のアクセス許可モデルを適用しないため、ファイルは書き込まれますが、アクセス制限と同等の効果はありません。CI は現在 Linux のみで実行されているため、Windows と macOS では上流で継続的なテストを行っていません。

ComputeLedger を商用プロジェクトで使用できますか? はい。TypeScript と Python の両パッケージは Apache-2.0 ライセンスで提供されており、ライセンスと著作権表示を保持する限り、クローズドソース製品での使用も含め、商用利用、変更、再配布が認められています。

マルチクラウドのオーケストレーションやコストダッシュボードが必要な場合はどうすればよいですか? ComputeLedger はどちらも提供しません。署名付きの使用量レシートの生成と検証のみを行います。これらが必要な場合は、オーケストレーションには SkyPilot、コストの可視化には OpenCost と組み合わせてください。

貢献

イシューやプルリクエストを歓迎します。PR を作成する前に npm test(TypeScript)または pytest(python/)を実行してください。どちらの言語の実装にも完全なテストスイートが含まれており、レシート形式または canonical-JSON 形式に関わる変更では、両方の実装間の相互運用性を維持する必要があります(CONTRIBUTING.md を参照)。

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。