cyclone-msm

Crates.iocyclone-msm
lib.rscyclone-msm
version0.1.0-pre
sourcesrc
created_at2022-12-21 13:42:02.719315
updated_at2022-12-21 13:42:02.719315
descriptionFPGA-accelerated multi-scalar multiplication
homepagehttps://jumpcrypto.com
repositoryhttps://github.com/jumpcrypto/cyclone
max_upload_size
id743180
size74,141
Nicolas Stalder (nickray)

documentation

https://docs.rs/cyclone-msm

README

cyclone-msm

Assuming the FPGA image is loaded with make reset.

Note that this image agfi-09bec09a9e2b4d332 has a fix to enable reading out points without DRAM, compared to the image agfi-0d25a1d127f1b497f of the ZPrize submission.

Quickstart

# install the demo binaries
RUSTFLAGS='-C target-feature=+avx2' cargo install --features demo --git https://github.com/jumpcrypto/cyclone cyclone-msm

# load the FPGA image
sudo fpga-load-local-image -S 0 -I agfi-09bec09a9e2b4d332

# configure the demo (SIZE can be up to 26)
SIZE=16 LOCATION=/tmp/example-points-$SIZE
CYCLONE=$(command -v cyclone-msm)

# make some points
$CYCLONE $SIZE $LOCATION points

# load the points
sudo $CYCLONE $SIZE $LOCATION load

# run a random MSM on these points
sudo $CYCLONE --preloaded $SIZE $LOCATION msm

Development

Default SIZE=16.

  • make points SIZE=<SIZE> generates files size<SIZE>.beta and size<SIZE>.points.
  • make column SIZE=<SIZE> calculates a column MSM using these points.
  • make msm SIZE=<SIZE> calculates a full 16 column MSM using these points.

You can also skip loading points in the column and msm targes:

  • make load SIZE=<SIZE> generates files size<SIZE>.beta and size<SIZE>.points.
  • make column-pre SIZE=<SIZE> calculates a column MSM using these points.
  • make msm-pre SIZE=<SIZE> calculates a full 16 column MSM using these points.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Commit count: 18

cargo fmt