Rails 一個用 DIDComm 實現服務器間通信的 Rails demo

mizuhashi · 2026年03月04日 · 最后由 williamherry 回复于 2026年03月04日 · 36 次阅读

DIDComm是一個基於 W3C DID(去中心化 ID)的通信協議。如果一個服務器想和另一個實現了 DIDComm 的服務器通信,它會需要在/.well-known/did.json 提供一個 DID 文檔,文檔裏包含了公鑰以及 DIDComm 的 service endpoint。我的 demo 服務器的 DID 文檔長這樣:https://dc.mbkr.ca/.well-known/did.json

擁有了這個文檔之後,did:web:dc.mbkr.ca這個 DID 就會對應我的服務器,你只需要這個 id 就可以給我發信息,發信方會根據這個 id 解析到 DID 文檔,獲取公鑰構建信息,並推到 service endpoint 上。

我也做了一個公開的 demo 服務器, https://dc-public.mbkr.ca/ ,你可以用public做密碼登錄。

Demo 的 repo: https://github.com/onyxblade/didcomm-rails-demo

實現上,我本來是讓 AI 生成了一個 Ruby 版本的 DIDComm 實現,不過密碼學的內容很多,我最後還是決定直接用didcomm-rust這個標準的參考實現。這個 Rust 的實現可以輸出 wasm,但 wasmtime-rb 好像還沒成熟到能直接用,所以最終我做了一個 HTTP 服務器didcomm-http,來把 wasm 接口包裝成 HTTP API。

Happy Hacking!

第一次听说这个东西,请问用途是什么?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号