-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add mls-tools unix socket util #1879
base: main
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Skipped Deployment
|
edit: with amazing help from @bas-vk , this is now a service reachable from grpc over unix sockets! |
Some thoughts:
|
@@ -96,6 +96,7 @@ jobs: | |||
--build-arg VER_VERSION=$RELEASE_VERSION \ | |||
--build-arg VER_BRANCH=$BRANCH \ | |||
--build-arg VER_COMMIT=$COMMIT_HASH \ | |||
--build-context mls=../mls \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is needed for the dockerfile to allow copying from a parent dir
@@ -0,0 +1,325 @@ | |||
use mls_rs::extension::built_in::ExternalPubExt; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the contents of this file aren't really important at the moment, we will probably end up tweaking it a lot once we have the glue in place
I'm surprised that it's a service. I expected some kind of static library. Is there state? |
Locally, in my opinion, each node should behave as close as possible to how it's going to behave remotely. So each node should get its own service. |
AFAIU there is nothing preventing us from loading mls-related code as a static library, but running it via ProtoBuf RPC was just faster to do. We can revisit it post v1. |
Correct, this is a quick & easy method that allows Erik to move forward. The cargo project is organised that we can easily switch to different methods such as ffi or cgo. |
MLS Tools
A
command line utilgrpc service for performing hyper specific operations requiring https://github.com/awslabs/mls-rs.The util reads from stdin and the response is parsed by the caller from stdout.
For now, there are two validation steps, that mainly focus on mls state consistency. We will later be able to add additional checks that focus on security.
InitialGroupInfoRequest
validates the group info message for MLS group inception. among other things, check that:ExternalPubExt
(required for external joins)ExternalJoinRequest
validates an external join. Among other things:proposedGroupInfoMessage.epoch
==currentEpoch + 1
proposedCommit.epoch == currentEpoch
The rust code still needs more tests — will be addressed as we actually start hooking this up.
The util will also be used for snapshotting the MLS state.