Join us on our Discord for any questions and discussions.
Table of Contents
The Catalyst Network is a full-stack distributed network built to fulfill 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 decentralized 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 decentralization and support a high transaction throughput in a continuously growing network without compromising on security.
- Protobuffs wire format (see why)
- RPC core protocol methods
- Distributed file storage built upon IPFS
- Confidential and Public transactions
- Fast new and novel consensus Probabilistic BFT
- Flexible modular design
Our api docs can be found on our documentation site https://catalyst-network.github.io/Catalyst.Framework/
This is a quick start guide for new and existing .Net developers
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.
Catalyst.Core uses our native Rust BulletProof library. In order to be able to build the solution, you will need to ensure that the Rust toolchain is correctly installed on you machine.
Download and install msbuild prebuild tasks
from Rust. MsBuild will then compile the Bulletproof library when you try to build the project.
Then, make sure you install Rust using 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.
If you have not done so before, download and install the Microsoft Visual C++ Build Tools 2019 from https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019. Alternatively, if you are using Visual Studio, you should be able to modify your existing installation to add this feature.
Go to https://www.rust-lang.org/tools/install, then download and execute rustup-init.exe
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.
make sure that long paths are allowed in both windows and git
- for windows follow the instructions at https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#enable-long-paths-in-windows-10-version-1607-and-later
- for git : start a git terminal as administrator run the following command :
git config --system core.longpaths true
The clone command is:
git clone [email protected]:catalyst-network/Catalyst.Node.git
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
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
Still in the src
folder:
dotnet build
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
Core Libraries | Description | Nuget |
---|---|---|
Abstractions | Framework Abstractions and interfaces | |
Core Lib | Core Catalyst libraries | |
Protocol SDK | Catalyst protocol c# sdk | |
Core Modules | Description | Nuget |
Kvm | Finite state machine for smart contacts | |
Mempool | Deterministic mempool for ordering transactions | |
Web3 | Web3 gaateway | |
Consensus | PBFT Consensus Mechanism | |
Dfs | Distributed File Storage | |
Keystore | Secure Keystore | |
Hastings Discovery | Unstructured overlay network with metropolis hasting random walk | |
Rpc Server | Rpc Server pipeline with dotnetty | |
Rpc Client | Rpc Client pipeline with dotnetty | |
KeySigner | Catalyst KeySigner, sign transactions and message with identity and context | |
Ledger | Catalyst ledger state provider | |
BulletProofs Cryptography | Bullet proof native rust bindings | |
Optional Modules | Description | Nuget |
CosmosDB | Azure CosmosDb connector | |
MongoDB | MongoDb connector |
Thanks goes to these wonderful people (emoji key):
nshCore 🚇 🤔 |
franssl |
monsieurleberre |
atlassanjay |
Millymanz |
Richard Schneider |
Alex 💻 |
Richard Littauer 📖 |
Tomasz Kajetan Stańczak 💻 🤔 |
Szymon Kulec 💻 |
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.
GPL © 2019 Catalyst Network