Comments (1)
Contribution from @sisyphuscafe via private correspondence
14 November 2019
The JUnit tests that accompany FRESCO are extensive, and the testing code coverage is impressive. I had some difficulty getting the core tests to run as I was running out of memory. I rectified the issue by modifying one of the core tests to reduce it's footprint. After that, things built and tested cleanly.
15 November 2015
So, the FRESCO documentation provided online is pretty light. It provides a fairly high-level overview of the framework, with some high-level code examples.
The demos provided with the distribution look reasonable. I've run the AES example mainly because it's structured similarly to the inner product example you wanted to produce. In essence, each of two parties contribute a single vector of a given length to the MPC engine, which produces the inner product and returns the product to both parties. In the AES example, one party contributes a value, the other a key and the engine produces and returns an encrypted value.
I slurped the code into Eclipse and had a poke around. It seems to have some javadoc written, so I created a small makefile to generate javadoc for the core, tools/mascot, tools/ot, suite/spdz, suite/spdz2k and suite/tinytables source code trees. Examining the javadoc in a browser is a bit easier than manually poring through code.
The core package is where the core infrastructure lies, and the suite package is where the protocol suites lie. The tools/ot package is the oblivious transfer implementation, and tools/mascot provides the implementation for the spdz protocol suite preprocessing phase.
You'll learn a great deal quickly if you have the FRESCO source available in an IDE like Eclipse, alongside the javadoc. Then, starting with the example code for inner product, peruse the basic structure of the application. It's not too bad. I'm not entirely sure where the encryption bits happen, but I suspect it's in the protocol suites.
The basic structure is that multiple processes are started representing the separate and independent parties to the computation. They use a simple socket based architecture for inter-process communication.
Finally, there's a fair amount of supporting material which is not included w/FRESCO directly. These are specified in the maven package manifests, and include such things as logging, command line parsing, and other stuff. The resulting executable jar file for the AES demo was quite voluminous as a result.
I noticed that the sample code just pushed into your repository doesn't include all the niceties to actually get them running. It doesn't look like it'd be a big effort since the structure of the samples appears to be similar to the structure of the FRESCO demos.
from frameworks.
Related Issues (20)
- add swanky framework HOT 9
- print_ln wat not executed after run ./Player.x HOT 2
- SCALE-MAMBA README ambiguous HOT 7
- Broken links for emp-tool HOT 1
- SCALE-MAMBA compile failed HOT 2
- SCALE-MAMBA docker image building issue HOT 1
- Can't generate inputs for ABY mult3 example program HOT 1
- emp docker image cannot be build on all platforms HOT 3
- Fix emp-toolkit build HOT 1
- add Leo HOT 1
- Jiff examples not working
- ABY Docker container link is out of date
- mpyc mult3.py example gives result different from expected when M > 3 HOT 1
- can't build docker image for emp... many error HOT 1
- Some questions about Frigate and Semi-Honest-BMR
- mp-spdz docker build error HOT 4
- Add Deprecation Notice for SCALE-MAMBA HOT 1
- Frigate: find a different solution for evaluating circuits
- Update framework versions
- - HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from frameworks.