NIP-90: Data Vending Machines
NIP-90は、Data Vending Machines(DVMs)を定義します。これは、Nostr上で有料の計算処理をリクエストし、配信するためのプロトコルです。
仕組み
customerは5000-5999範囲のjob request eventを公開します。各requestには、1つ以上の入力用iタグ、job固有設定用のparamタグ、期待する出力形式を示すoutputタグ、上限価格を示すbid、reply先を示すrelay hintを含められます。service providerは、対応する6000-6999範囲のresult kindで応答し、kind番号は常にrequestより1000高くなります。
resultには、元request、customerのpubkey、任意でamountタグやinvoiceが含まれます。providerはさらに、payment-required、processing、partial、error、successのようなkind 7000 feedback eventも送れます。これによりclientは、最終結果が届く前に進捗を表示できます。
PaymentとPrivacy
このプロトコルは、business logicを意図的に開いたままにしています。providerは、作業前、sample返却後、または完全結果の配信後に支払いを求められます。この柔軟性は重要です。DVMのjobは、軽いtext変換から高価なGPU処理まで幅広く、providerごとに許容できる支払いリスクが異なるからです。
customerがprivate inputを望む場合、requestはiとparam dataを暗号化したcontentへ移し、providerのpタグとともにencryptedタグを付けられます。これによりpromptやsource materialはrelay observerから保護されますが、その代わりcustomerはopen market requestではなく特定providerを指名しなければなりません。
相互運用メモ
NIP-90は、入力タイプjobを持つiタグによるjob chainingをサポートします。これにより、あるresultを次のrequestの入力として流し込めるため、別のorchestration layerを発明しなくても多段処理が可能になります。
provider discovery自体はrequest/response loopの外にあります。仕様は、対応job kindをadvertiseする方法としてNIP-89: Recommended Application Handlersを参照しており、clientはrequestを公開する前にそれを使ってvendorを見つけられます。
Primary sources:
Mentioned in:
- Newsletter #11: NIP-AC DVM Agent Coordination
- Newsletter #19: Forgesworn toll-booth-dvm
- Newsletter #19: Agent Reputation Attestations proposal
See also: