Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 41 committers (2.4%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.2%) to scientific vocabulary
Repository
ICICLE version for gnark integration
Basic Info
- Host: GitHub
- Owner: ingonyama-zk
- License: mit
- Language: C++
- Default Branch: main
- Size: 37 MB
Statistics
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
ICICLE for Gnark
[!WARNING] This is a standalone version of ICICLE specifically meant for integration with the Gnark codebase. It is NOT meant to be used together with the main ICICLE repo.
If you are looking for the main ICICLE repo, you can find it here
Background
Zero Knowledge Proofs (ZKPs) are considered one of the greatest achievements of modern cryptography. Accordingly, ZKPs are expected to disrupt a number of industries and will usher in an era of trustless and privacy preserving services and infrastructure.
We believe that ICICLE will be a cornerstone in the acceleration of ZKPs:
- Versatility: Supports multiple hardware platforms, making it adaptable to various computational environments.
- Efficiency: Designed to leverage the parallel nature of ZK computations, whether on GPUs, CPUs, or other accelerators.
- Scalability: Provides an easy-to-use and scalable solution for developers, allowing them to optimize cryptographic operations with minimal effort.
Getting Started
Prerequisites
- Any compatible hardware: CPU or Nvidia GPU.
- CMake, Version 3.18 or above. Latest version recommended
- CUDA Toolkit, Required only if using NVIDIA GPUs (version 12.0 or newer).
- Clang
- User permissions to create directories in GOMODCACHE
- User permissions to install libraries in
/usr/local/lib
[!NOTE] For older GPUs that only support CUDA 11, ICICLE may still function, but official support is for CUDA 12 onwards.
Building from source
Gnark includes icicle-gnark as a direct dependency. Before gnark can use icicle-gnark, the c++ libraries need to be built. Follow these instructions to build the libs.
- Run
go mod tidyto pull all the dependecies. Navigate to the icicle-gnark dependency in your GOMODCACHE and build the c++ libraries there.
sh cd $(go env GOMODCACHE)/github.com/ingonyama-zk/icicle-gnark/v3@<version>/wrappers/golang chmod +x build.sh ./build.sh -curve=bn254Double check that the following frontend libs are located in
/usr/local/lib.- libiciclecurvebn254.so
- libiciclefieldbn254.so
- libicicle_device.so
Double check that the following backend libs are located in
/usr/local/lib/backend/**.- libiciclebackendcudacurvebn254.so
- libiciclebackendcudafieldbn254.so
- libiciclebackendcuda_device.so
Finally, export the
ICICLE_BACKEND_INSTALL_DIRenvironment variable to the location with the backend libraries
sh
export ICICLE_BACKEND_INSTALL_DIR=/usr/local/lib/backend
[!TIP] By default, the above steps build both the CPU and CUDA backends. You can switch the device by using the CreateDevice API.
[!NOTE] To specify a curve, use the flag -curve=<curve>, where <curve> can be one of the following: bn254, bls12377, bls12381, or bw6_761.
Currently, Gnark only has support for bn254 with icicle-gnark
Contributions
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.
Development Contributions
Please see the main ICICLE repo for contributing.
Help & Support
For help and support talk to our devs in our discord channel #ICICLE or contact us at support@ingonyama.com.
License
This version of ICICLE is distributed under the terms of the MIT License.
See LICENSE-MIT for details.
Owner
- Name: Ingonyama
- Login: ingonyama-zk
- Kind: organization
- Email: hi@ingonyama.com
- Website: ingonyama.com
- Twitter: Ingo_zk
- Repositories: 6
- Profile: https://github.com/ingonyama-zk
Shipping the world's fastest provers
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Ingonyama" title: "ICICLE: GPU Library for ZK Acceleration" version: 1.0.0 date-released: 2024-01-04 url: "https://github.com/ingonyama-zk/icicle"
GitHub Events
Total
- Watch event: 4
- Delete event: 1
- Member event: 1
- Push event: 10
- Pull request event: 3
- Create event: 7
Last Year
- Watch event: 4
- Delete event: 1
- Member event: 1
- Push event: 10
- Pull request event: 3
- Create event: 7
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Jeremy Felder | j****1@g****m | 91 |
| yshekel | y****l@g****m | 51 |
| DmytroTym | d****1@g****m | 34 |
| ImmanuelSegol | 3****s@g****m | 29 |
| ChickenLover | R****1@g****m | 29 |
| release-bot | r****t@i****m | 19 |
| Otsar | 1****u | 18 |
| Vitalii Hnatyk | v****k@g****m | 18 |
| stas | s****y@i****m | 15 |
| Leon Hibnik | 1****k | 13 |
| HadarIngonyama | 1****a | 12 |
| Miki | 1****a | 11 |
| Shlomtz | o****s@g****m | 9 |
| nonam3e | 7****e | 7 |
| Guy Weissenberg | g****y@i****m | 6 |
| Stas Polonsky | s****s@i****m | 5 |
| Koren-Brand | 1****d | 4 |
| Koh Wei Jie | c****t@k****m | 4 |
| Vitalii | v****i@i****m | 3 |
| Shanie Winitz | 1****z | 3 |
| Vlad | 8****p | 3 |
| danny-shterman | 1****n | 3 |
| Alex Xiong | a****h@g****m | 2 |
| Guillermo Oyarzun | g****n@b****s | 2 |
| Karthik Inbasekar | 6****t | 2 |
| liu | l****6@b****n | 2 |
| BigSky77 | s****2@g****m | 2 |
| Emir Soyturk | e****k@g****m | 2 |
| yanziseeker | 1****7 | 1 |
| vuittont60 | 8****0 | 1 |
| and 11 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: 23 days
- Total issue authors: 0
- Total pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: 23 days
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- LeonHibnik (2)
- leopardracer (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 3
proxy.golang.org: github.com/ingonyama-zk/icicle-gnark/v3
- Homepage: https://github.com/ingonyama-zk/icicle-gnark
- Documentation: https://pkg.go.dev/github.com/ingonyama-zk/icicle-gnark/v3#section-documentation
- License: MIT
-
Latest release: v3.2.2
published over 1 year ago
Rankings
Dependencies
- actions/checkout v4 composite
- codespell-project/actions-codespell v2 composite
- actions/checkout v4 composite
- actions/checkout v4 composite
- actions/setup-go v5 composite
- nvidia/cuda 12.0.0-devel-ubuntu22.04 build
- github.com/bits-and-blooms/bitset v1.7.0
- github.com/consensys/bavard v0.1.13
- github.com/consensys/gnark-crypto v0.12.1
- github.com/davecgh/go-spew v1.1.1
- github.com/kr/text v0.2.0
- github.com/mmcloughlin/addchain v0.4.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/testify v1.8.2
- golang.org/x/sys v0.9.0
- gopkg.in/yaml.v3 v3.0.1
- rsc.io/tmplfunc v0.0.3
- github.com/bits-and-blooms/bitset v1.7.0
- github.com/consensys/bavard v0.1.13
- github.com/consensys/gnark-crypto v0.12.1
- github.com/creack/pty v1.1.9
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/google/subcommands v1.2.0
- github.com/kr/pretty v0.3.1
- github.com/kr/text v0.2.0
- github.com/leanovate/gopter v0.2.9
- github.com/mmcloughlin/addchain v0.4.0
- github.com/mmcloughlin/profile v0.1.1
- github.com/pmezard/go-difflib v1.0.0
- github.com/rogpeppe/go-internal v1.12.0
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/objx v0.4.0
- github.com/stretchr/objx v0.5.0
- github.com/stretchr/testify v1.7.1
- github.com/stretchr/testify v1.8.0
- github.com/stretchr/testify v1.8.2
- golang.org/x/sys v0.9.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
- gopkg.in/yaml.v3 v3.0.1
- rsc.io/tmplfunc v0.0.3