The infrastructure of Randcast(DKG and Threshold-BLS based randomness service).
Build with cargo build (--release)
.
Test with cargo test --all -- --test-threads=1 --nocapture
.
This repository contains several Rust crates and Solidity contracts that implement the different building blocks of Randcast. The high-level structure of the repository is as follows:
arpa-node
: Rust crate that provides a long-running client and a CLI tool for the node operator.user-cli
: Rust crate that provides a user side CLI tool to interact with the smart contracts.core
: Rust crate that provides basic types, utilities and traits for the node and the CLI tool.contract-client
: Rust crate that provides types and traits for interacting with the smart contracts.dal
: Rust crate that provides the implementation of the data access layer.log
: Rust crate that provides an attribute macro for logging at debug level.dkg-core
: Rust crate that provides the implementation utilities for the DKG.threshold-bls
: Rust crate that provides the implementation of threshold BLS signatures for BN254 and BLS12-381.contracts
: Solidity contracts including Controller, Adapter, Coordinator, libraries and scripts for deployment and testing.
Rust crates dkg-core
, threshold-bls
and Solidity contracts under libraries/ have been adapted from the following resources: