Skip to content

matter-labs/era-bellman-cuda

bellman-cuda

Logo

zkSync Era is a layer 2 rollup that uses zero-knowledge proofs to scale Ethereum without compromising on security or decentralization. Since it's EVM compatible (Solidity/Vyper), 99% of Ethereum projects can redeploy without refactoring or re-auditing a single line of code. zkSync Era also uses an LLVM-based compiler that will eventually let developers write smart contracts in C++, Rust and other popular languages.

bellman-cuda is a library implementing GPU-accelerated cryptographic functionality for the zkSync prover.

Building the library

The library can be built by executing these steps:

Initialize git submodules

git submodule update --init --recursive

Generate the build configuration by executing

cmake -B./build -DCMAKE_BUILD_TYPE=Release

Build the binary by executing

cmake --build ./build

The library binary can be found in the ./build/src folder. Change the path in the above commands if a different build location is desired.

By default, the library is built for Compute Architecture 8.0. If a different Compute Architecture is required, the CMAKE_CUDA_ARCHITECTURES variables can be set to the desired architecture(s) during the build configuration generation step.

Example for Compute Architecture 8.6:

cmake -B./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CUDA_ARCHITECTURES=86

Executing Tests

By default, the tests binary is not compiled.

This can be changed by setting the variable BUILD_TESTS to ON in the build configuration step like this:

cmake -B./build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON.

Then, after executing the build step, the tests binary is located in the ./build/tests folder and can be executed by calling:

./build/tests/tests.

License

The zkSync Era prover is distributed under the terms of either

at your option.

Official Links

Disclaimer

zkSync Era has been through lots of testing and audits. Although it is live, it is still in alpha state and will go through more audits and bug bounty programs. We would love to hear our community's thoughts and suggestions about it! It is important to state that forking it now can potentially lead to missing important security updates, critical features, and performance improvements.