NBlockchain is a .NET standard library for building blockchain applications.
This project is currently in alpha status and any contributions are welcome.
The idea is that the developer would only need to focus on the data and rules for a blockchain and not worry about having to build all the infrastructure to facilitate a blockchain.
The developer would need to
- Define the schema of data / transactions they would like to store on the blockchain
- Define the rules for a valid transaction
- Select or create an appropriate local database
- Select or create an appropriate network implementation
- Select or create one or more peer discovery implementations
Beyond this, it is meant to be highly customizable, you can switch out the default services for
- Address encoding
- Signing
- Hashing algorithm
- Block verification
- Block consensus method (eg. proof of work, etc...)
Using Nuget package console
PM> Install-Package NBlockchain -Version 0.5.0-alpha
Using .NET CLI
dotnet add package NBlockchain --version 0.5.0-alpha
- LiteDB (Default built-in)
- MongoDB
- In memory (mostly for testing & demo purposes)
- Tcp sockets
- Static (from a config file, etc...)
- Multicast (for finding peers on the local network)
- More to come....
- Automatic chain fork detection and resolution
- Open, flexible transaction schema
- Customizable transaction level rules
- Customizable block level rules
- Peer discovery
- Proof of work management
https://github.com/danielgerlag/NBlockchain/tree/master/doc
- NAT traversal
- More peer discovery options
- Integration tests
- Daniel Gerlag - daniel@gerlag.ca
This project is licensed under the MIT License - see the LICENSE file for details