Crates.io | cyclone-msm |
lib.rs | cyclone-msm |
version | 0.1.0-pre |
source | src |
created_at | 2022-12-21 13:42:02.719315 |
updated_at | 2022-12-21 13:42:02.719315 |
description | FPGA-accelerated multi-scalar multiplication |
homepage | https://jumpcrypto.com |
repository | https://github.com/jumpcrypto/cyclone |
max_upload_size | |
id | 743180 |
size | 74,141 |
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.
# 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
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.