Skip to content

ingonyama-zk/fast-danksharding

Repository files navigation

Fast Danksharding

This implementation is meant to run entirely on an NVIDIA GPU.The code is a highly parallelized implementation of the diagram below, and heavily rely on ICICLE. For implementation details please refer to our companion blog post and presentation

Screenshot 2023-03-08 at 15 34 50

Build and usage

NOTE: CUDA 12+, NVCC, Rust, C++17 are prerequisites for building. Python 3.10 and up with numpy and tqdm packages for test data generation. Tested on Ubuntu 20.04+

  1. ICICLE library supports BLS12-381 as default curve, that is the curve in use for danksharding
  2. Go into git dir init the submodule and update
  3. Generate test vectors
  4. Build and run fast-danksharding using cargo
git submodule init
git submodule update
cd kzg_data_availability
python3 tests.py; cd ..
cargo run --release

You'll find a release ready binary at target/release/.

Contributing

Join our Discord Server and find us on the icicle channel. We will be happy to work together to support your use case and talk features, bugs and design.

License

ICICLE is distributed under the terms of the MIT License.

See LICENSE-MIT for details.