ShapeOfMatter / MultiChor

Type-safe and efficient choreographies for Haskell, with multiply-located values, multi-cast, and location-set polymorphism.
Other
8 stars 0 forks source link

New examples #13

Closed ShapeOfMatter closed 4 months ago

ShapeOfMatter commented 4 months ago

We need new examples showing off

ShapeOfMatter commented 4 months ago

In addition to rewriting the existing examples to properly use our new features, we should consider:

jnear commented 4 months ago

I'd like to volunteer to do some mpc protocols and give Prio a shot.

ShapeOfMatter commented 4 months ago

Yes please :)
What's in the repo right now is basically what was in he-lambda-small; so you can do a fixed-parties version of GMW, but I think the only part where our contributions will shine will be recombination at the end?
re Prio; it looks like the hardest part will be the zero-knowledge polynomial checking, that happens during validation of the SNIPS. Do you think we can do a "real" version of Prio? (presumably with some combination of Faceted and FanIn)

jnear commented 4 months ago

I think if we can do any version of Prio then extending it to the "real" version should be straightforward.

Is there a simple example of Faceted/FanIn yet or is it not ready yet?

ShapeOfMatter commented 4 months ago

Faceted/FanIn aren't implemented yet; I'm not 100% sure of the API for them yet. I got a little tripped up over the weekend trying to write the enclave function; what I've realized is that we can't have enclave and naked both work the one would naively expect; the two together would break things badly. I'm not entirely sure what to do about it; I think naked is the one that should compromise, since we're only using it as a shim for the HasChor examples (flatten is safer, and I think can actually be made stronger than what's written ATM once we get rid of naked, and should be able to fulfil our existing needs ok). But it's really tempting to restructure the core monad... I probably won't be able to focus on these problems until Thursday (gotta respond to he-lambda-small reviewers!).

psilospore commented 4 months ago

I would also be interested in doing some basic examples if you have the easiest one you can suggest (to familiarize myself more before going on to a more complicated case) or I could jump straight into the group chat example.

ShapeOfMatter commented 4 months ago

I've broken a lot of these examples out into their own tickets. I think the only concrete example left in here is group chat, which I actually think isn't nearly as good an example as some of the others, so I'll go ahead and close this for now. There'll always be room for more examples!