Skip to content

Latest commit

 

History

History
47 lines (38 loc) · 2.23 KB

File metadata and controls

47 lines (38 loc) · 2.23 KB

CryptoUtilitiesNotebooks

Notebooks showing how to use the CryptoUtilities.jl library, along with some other goodies.

For cryptographers and developers with some familiarity with Python but no familiarity with Julia, we recommend starting with 01_basics.jl and moving on from there. The presentation has very few things, but we use these constantly in the rest of the notebooks, so it's worth at least a quick peek through. For those more familiar with benchmarking, and low level code stuff in Julia (@code_native and so on), this is mostly a short review and it's not necessary to read.

Notebooks 2 and 3 are independent of each other, while notebook 4 depends on 2, and each of these depends on the few things introduced in notebook 1. Finally, notebook 5 brings pretty much all of it together to construct a (relatively fast) succinct proof using the example code from the bcc-research/CryptoUtilitiesExamples repository.

Viewing notebooks

To simply view the notebooks, statically compiled HTML files are available in this repository.

  1. Julia basics
  2. BinaryFields
  3. MerkleTree
  4. BinaryReedSolomon
  5. Ligero

We highly recommend running these locally, though, and instructions for that are below!

Pluto.jl

For the notebooks in this repository, we use Pluto.jl.

For a brief intro to Pluto.jl, take a peek at this 20 min video. (We promise it's very cool!)

How to run

To run the files:

  1. Download and install Julia
  2. Clone the repository
  3. Follow the instructions to install and run Pluto and simply open any of the notebook files from the cloned repo from Pluto.