-
Notifications
You must be signed in to change notification settings - Fork 14
Conversation
b2a5200
to
8fbd664
Compare
03d2dba
to
ff45d88
Compare
Why does the client have to run in the a Keep? Shouldn't the native client just have to check, that the server cert is signed by profian (running in a keep)? |
The intention is to have a private, secure chatroom. The server will have to validate the client's certificate to determine whether to admit the client or not. If this were a real service, then the clients would be hosted services with a web UI. (i.e. hosted by third parties the actual user does not need to trust) The overall idea is that clients are associated with an OIDC identity, e.g. a Github username. The client auth state could also then securely be stored by the keep. |
To clarify, this is really not about the chat, the end goal is to have a peer-to-peer networked application, where workloads running in Enarx can establish trust relationships given what Enarx platform offers. Making this a chat is just a simplification for SoC. This is essentially just an exploration into what we can achieve with a network of communicating Enarx keeps. There should not be a centralized "server", but rather each peer should be able to act as both a client and a server routing messages to other peers The focus is on the attestation and the Steward certificates associated. You will notice that the examples use plain TCP, the reason is two-fold:
|
3d53689
to
53b7a23
Compare
Signed-off-by: Roman Volosatovs <roman@profian.com>
Signed-off-by: Roman Volosatovs <roman@profian.com>
Signed-off-by: Roman Volosatovs <roman@profian.com>
53b7a23
to
06a7d04
Compare
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.
Looks good to me
Add a chat server and client for the upcoming Summer of Code project.
The idea is really simple, the chat server listens on port 50000, assigns a randomly-generated ULID to each peer connecting and broadcasts messages to all connected peers.
Messages are simply lines of text (i.e. they should be newline-delimited)
Since there's no way to read from
stdin
in async manner, clients first have to write all messages, close STDIN (^D) and only then receive messages. @haraldh any ideas how to do this nicer? Can we write to stdout fromtokio::spawn
somehow?In any case, we probably do want to have a web interface here, such that input would come from a socket (i.e. from the browser interface) cc @nickvidal
Example
cc @rjzak