/BLS-TSS-Network

Codename: Dyson

Primary LanguageRustApache License 2.0Apache-2.0

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: