Git Product home page Git Product logo

flute's Introduction

FLUTE

Implementation of the FLUTE protocol.

Running the protocol

Installing Rust

The project is implemented in the Rust programming language. To compile it, the latest stable toolchain is needed (older toolchains might work but are not guaranteed). The recommended way to install it, is via the toolchain manager rustup.

One way of installing rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Rustup is also available via most operating system package managers.

Compiling the benchmarking binary

To compile the benchmarking binary, use the command:

cargo build --release --bin bench

The binary will be placed at target/release/bench.

Note that Flute currently only works with AVX2 support which means it is limited to x86. It will not compile on e.g. Apple Silicon.

Running the benchmarks

To list the available options of the benchmarking binary.

./target/release/bench --help

A simple execution of a single circuit can be done via the following command:

 RUST_LOG=info ./target/release/bench --id 0 --circuits crates/flute_benchmark/to_eval/sbox8.lut --net none

and in another terminal

 RUST_LOG=info ./target/release/bench --id 1 --circuits crates/flute_benchmark/to_eval/sbox8.lut --net none

You will likely see error relating to the Baseline directory. If you wish to benchmark the baseline circuits as well, the easiest way is to execute the bench binary while inside crates/flute_benchmark/. Then the default paths to the baseline circuits are correct.

Silver support

Due to breaking changes in gcc-13, support for the silver encoding of Silent-OT is currently broken and disabled by default.

flute's People

Contributors

robinhundt avatar ajithsuresh avatar backmountaindevil avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.