Skip to content

monsieurleberre/Catalyst.Framework

 
 
ReDoc logo

Catalyst Framework - Full Stack Distributed Protocol Framework

Discord GitHub followers GitHub stars Twitter Follow Subreddit subscribers

Build Status Codacy Badge All Contributors


Join us on our Discord for any questions and discussions.

Table of Contents

What is the Catalyst Network?

The Catalyst Network is a full-stack distributed network built to fulfil the real-world potential of Distributed Ledger Technology, enabling the next generation of distributed computing applications and business models.

Catalyst was designed by an experienced team of engineers and researchers who were presented with a difficult challenge: build a large decentralised network capable of storing all types of data ranging from structured tabular records through to large Binary Large Objects at low cost to users, as well as dApps written in any language. Broadly, this meant solving the blockchain trilemma to maintain decentralisation and support a high transaction throughput in a continuously growing network without compromising on security.

Features

  • Protobuffs wire format (see why)
  • RPC core protocol methods
  • Distributed file storage (DFS) built upon IPFS
  • Confidential and Public transactions
  • Fast new and novel consensus Probabalistic BFT
  • Flexible modula design

Documentation

Our api docs can be found on our documentation site https://catalyst-network.github.io/Catalyst.Framework/

Quick Start Guide

This is a quick start guide for new and existing .Net developers

1. Install .Net

Catalyst.Node works with .Net Core v2.2. You'll need to have the .Net SDK installed.

If you don't have .Net Core installed you can follow the instructions for your platform bellow.

2. Install the Rust Toolchain

Catalyst.Core uses our native Rust BulletProof library.

To build the solution will require installing Rust. msbuild prebuild tasks will then compile the Bulletproof library when you try to build the project.

Install Rust via the Rustup tool:

curl https://sh.rustup.rs -sSf | sh

If rustc --version fails, restart your console to ensure changes to PATH have taken effect.

Refer to the Rust Bulletproof library repository for docs. If you have issues with this part of the installation, please raise them there.

3. Clone the repository

To clone the repository it is assumed you have Git installed. If you do not, then follow the Git install instructions for Linux/Windows/macOS.

The clone command is:

git clone git@github.com:catalyst-network/Catalyst.Node.git

4. Clone git submodules

We utilize git submodules for certain dependencies. You will need these to build the code base. To grab them, first navigate to the Catalyst.Node folder:

cd Catalyst.Node

Then initialize the submodules by running:

git submodule init

The clone then by running:

git submodule update

5. Install Nuget dependencies

Now we have our code and submodules, the next step is to install the dependencies from .Net's package manager Nuget.

Navigate to the src folder:

cd src

Next restore the dependencies:

dotnet restore

6. Build the solution

Still in the src folder:

dotnet build

7. Run the test suite

To check all is good under the hood, you can run the test suite. If you're on Linux, you need to Create a Self Signed Certificate

dotnet test

Framework modules

Core Libraries Description Nuget
Abstractions Framework Abstractions and interfaces Nuget
Core Lib Core Catalyst libraries Nuget
Protocol SDK Catalyst protocol c# sdk Nuget
Core Modules Description Nuget
Kvm Finite state machine for smart contacts Nuget
Mempool Deterministic mempool for ordering transactions Nuget
Web3 Web3 gaateway Nuget
Consensus PBFT Consensus Mechanism Nuget
Dfs Distributed File Storage Nuget
Keystore Secure Keystore Nuget
Hastings Discovery Unstructured overlay network with metropolis hasting random walk Nuget
Rpc Server Rpc Server pipeline with dotnetty Nuget
Rpc Client Rpc Client pipeline with dotnetty Nuget
KeySigner Catalyst KeySigner, sign transactions and message with identity and context Nuget
Ledger Catalyst ledger state provider Nuget
BulletProofs Cryptography Bullet proof native rust bindings Nuget
Optional Modules Description Nuget
CosmosDB Azure CosmosDb connector Nuget
MongoDB MongoDb connector Nuget

Contributors

Thanks goes to these wonderful people (emoji key):

nshCore
nshCore

🚇 🤔 ⚠️ 💻
franssl
franssl

⚠️ 💻
monsieurleberre
monsieurleberre

⚠️ 💻
atlassanjay
atlassanjay

⚠️ 💻
Millymanz
Millymanz

⚠️ 💻
Richard Schneider
Richard Schneider

⚠️ 💻
Alex
Alex

💻 ⚠️
Richard Littauer
Richard Littauer

📖
Tomasz Kajetan Stańczak
Tomasz Kajetan Stańczak

💻 🤔

Contributing

Now that you've seen all of the contributors, why not contribute? We're always keen on getting more contributions and growing our community! Open a PR! Log an issue! :D

Take a look at our organization-wide Contributing Guide. You'll find most of your questions answered there.

As far as code goes, we would be happy to accept PRs! If you want to work on something, it'd be good to talk beforehand to make sure nobody else is working on it. You can reach us on Discord, or in the issues section.

Please note that we have a Code of Conduct, and that all activity in the @catalyst-network organization falls under it. Read it when you get the chance, as being part of this community means that you agree to abide by it. Thanks.

License

GPL © 2019 Catalyst Network

About

Fast, scalable PBFT distributed ledger

Resources

License

GPL-2.0, Unknown licenses found

Licenses found

GPL-2.0
LICENSE
Unknown
COPYING

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%