⛓️ Toolkit for maintaining and securing Substrate based blockchains with the Cardano ecosystem
Note: This alpha release is just the beginning of the journey. It is intended to gather early feedback from the community and is provided "as is." It should not be used in live production networks. Use at your own risk. We welcome and appreciate your feedback!
The Partner Chains Toolkit provides a collection features and cli commands enabling users to either build new partner chains (=chain builder), or operate validators provided by the chain builder (=validator).
Relevant features include:
- Minotaur: A multi-resource selection algorithm combining validators from multiple networks into a single joint-consensus mechanism. Version 1 is exclusive to Cardano.
- D-Param: Secure bootstrapping of a partner chain through a configurable ratio of public (registered) versus permissioned validators.
- Multi-sig Governance: Decentralized and secure governance of a partner chain through a set of Governance Authorities with a configurable threshold.
- Native Token Reserve Management: Initialization and maintenance of a secure token reserve on Cardano that is observed on a partner chain.
- Block Production Rewards: Enabling the creation and maintenance of a reward system for block producers and delegators.
While the toolkit is built with convenience and ease-of-use in mind, using it to build new partner chains requires experience in several domains:
- Strong blockchain background in general
- Cardano ecosystem and tools
- Polkadot ecosystem and tools
- Rust programming language
The project provides a Nix environment that provides all necessary tools and dependencies for building it (You can also choose to install dependencies manually but we won't officially support or document this approach).
$ nix develop # enter the development shell
$ cargo build
Note: The first invocation of nix develop
may take some time since it fetches all required
dependencies.
Please refer to our Testing documentation on how to run our end-to-end tests. The unit tests can be invoked as expected using cargo:
$ cargo test
Note: The tests make use of testcontainers so you will need to have a working docker setup to execute the tests.
Please refer to our Introduction to learn in more detail about what the Partner Chain Toolkit offers and how to use it for different use-cases.
Rust Docs for all crates provided by the toolkit are available to browse online here
This project is primarly distributed under the Apache License 2.0. You can review the full license agreement at the following link: LICENSE. Parts of the code are distributed under the GPL v3.0 with "Classpath exception". You can review the full license at the following link: GPL v3.0 with Classpath exception.