2 releases

0.2.2 Jun 17, 2024
0.2.0 Jun 3, 2024

#5 in #threshold-bls


Used in arpa-node

MIT/Apache

1MB
16K SLoC

Randcast BLS-TSS-Network

Overview

The infrastructure of Randcast(DKG and Threshold-BLS based randomness service).

Build Guide

Build with cargo build (--release).

Test with cargo test --all -- --test-threads=1 --nocapture.

Directory Structure

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.

Acknowledgements

Rust crates dkg-core, threshold-bls and Solidity contracts under libraries/ have been adapted from the following resources:

Dependencies

~95MB
~1.5M SLoC