A collection of miscellaneous packages used by Cardano that cover:
- cryptography
- serialization
- slotting
Each sub-project has its own README.
Haddocks for all packages from the master branch can be found at
base.cardano.intersectmbo.org
All releases for packages found in this repository are recorded in the Cardano Haskell package repository
With nix it is as easy as:
$ nix develop
...
$ cabal build allIMPORTANT: This project requires custom versions of cryptographic libraries with VRF support.
See INSTALL.md for detailed installation instructions including:
- Pre-built binaries for macOS, Linux, and Windows
- Building from source
- Environment setup
- Troubleshooting
Quick overview of required dependencies:
- libsodium-vrf - Custom fork with VRF batch verification (source)
- libsecp256k1 - With Schnorr signature support
- libblst - BLS12-381 implementation
Pre-built binaries available at: https://github.com/input-output-hk/iohk-nix/releases/latest
Default version of GHC used in nix is 9.6.7. The project is tested with GHC versions 9.6.7, 9.8.4, 9.10.2, and 9.12.2.
This is a command to run test suites for all packages:
$ cabal test allThe test suites use hspec,
which allows for running specific tests.
This is done by passing the --match flag to the test program, followed by a pattern.
You can alternatively use the HSPEC_MATCH environment variable with a pattern.
For example, the cardano-crypto-class tests can be run with:
$ cabal test cardano-crypto-class --test-option=--match='blake2b_256'or
$ HSPEC_MATCH='blake2b_256' cabal test cardano-crypto-class