oddsdk / ts-odd

An SDK for building apps with decentralized identity and storage.

Home Page:https://odd.dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

New version of AWAKE protocol

icidasset opened this issue · comments

Ideally this should be implemented as a separate library and consumed in Webnative.
The plan is to explore this as a Rust library.

Related to #337

PLEASE HOLD OFF on this until we update the spec to use MLS. This change will also make implementation much easier. Please do ping me in Discord if this becomes a blocker.

@expede Sounds good. Would be good to tackle this one sooner than later as well since we're revamping all things UCAN. That said, I've been looking for MLS libraries that we can use in the browser and there doesn't appear to be much yet. Closest thing I found is https://github.com/openmls/openmls which has a PR open for WASM support, but that's about it.

@icidasset

Would be good to tackle this one sooner than later as well since we're revamping all things UCAN

Okay, roger wilco. What's the approximate time horizon before code would start? (Days? Weeks?) I can likely get to the spec sometime in the next few days if needed.

I've been looking for MLS libraries that we can use in the browser and there doesn't appear to be much yet

hmm yeah it is early days for MLS; it only got IETF approval on March 29 of this year. As you say, there's a few implementations, but none explicitly target the browser yet.

I'm not sure that us implementing our own bespoke protocol is less work than getting their PR that you linked over the line 🤔 We'd also likely need to generalise the Credentials module to accept UCAN (e.g. with a trait or abstraction), though we may be able to just hack UCAN into the BasicCredential.

Working on the UCAN revamp right now. Regarding AWAKE itself and device linking, not sure, probably a week or two, otherwise I'd be putting too much into one PR as usual 🙈

So no need to rush the spec, but I would like to know a rough timeline of when it's updated for MLS. And thanks for taking a look into that Rust code as well, seems like a good starting point at least 👌