Join us on our Discord for any questions and discussions.
Table of Contents
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.
- 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
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.
To build the solution will require installing Rust. msbuild prebuild tasks
will then compile the Bulletproof library when you try to build the project.
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.
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 [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 💻 🤔 |
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