Bitcoin Implementation in C#
For Proof of Stake support on the Stratis token the node is using NStratis which is a POS implementation of NBitcoin.
A Modular Approach
A Blockchain is made of many components, from a FullNode that validates blocks to a Simple Wallet that track addresses.
The end goal is to develop a set of Nuget packages from which an implementer can cherry pick what he needs.
- Stratis.Bitcoin.Core - The bare minimum to run a pruned node.
- Stratis.Bitcoin.Store - Store and relay blocks to peers.
- Stratis.Bitcoin.MemoryPool - Track pending transaction.
- Stratis.Bitcoin.Wallet - Send and Receive coins
- Stratis.Bitcoin.Miner - POS or POW
Create a Blockchain in a .NET Core style programming
var node = new FullNodeBuilder() .UseNodeSettings(nodeSettings) .UseConsensus() .UseBlockStore() .UseMempool() .AddMining() .AddRPC() .Build(); node.Run();
We plan to add many more features on top of the Stratis Bitcoin blockchain:
Sidechains, Private/Permissioned blockchain, Compiled Smart Contracts, NTumbleBit/Breeze wallet and more...
Running a FullNode
Our full node is currently in alpha.
git clone https://github.com/stratisproject/StratisBitcoinFullNode.git cd StratisBitcoinFullNode\src dotnet restore dotnet build
To run on the Bitcoin network:
To run on the Stratis network:
Getting Started Guide
More details on getting started are available here
Up for some blockchain development?
Check this guides for more info:
There is a lot to do and we welcome contributers developers and testers who want to get some Blockchain experience.
You can find tasks at the issues/projects or visit our C# dev slack channel.
We use AppVeyor for our CI build and to create nuget packages.
Every time someone pushes to the master branch or create a pull request on it, a build is triggered and new nuget packages are created.
To skip a build, for example if you've made very minor changes, include the text [skip ci] or [ci skip] in your commits' comment (with the squared brackets).
If you want get the :sparkles: latest :sparkles: (and unstable :bomb:) version of the nuget packages here: