Blockchain Network using C#/ASP.NET/.NET
Hello Comrades,
I am working on deploying a blockchain network for my startup wherein I have following tentative requirements, Just wondering if anyone has experience in developing and deploying a blockchain network as a solo-developer.
Must Have
End-to-end technical control over the development and architectural changes in the future.
Prebuilt basic modules, i.e. time, cryptography, network security, choice of consensus mechanism, mining, transaction explorers etc.
Possibility of incorporating smart contracts, decentralized tasks execution, etc.
Solo-developer should be able launch / manage and maintain it.
Nice to Have
Support for C++/C#/Microsoft technologies, WebAPIs, Azure, RDBMS etc.
Lite-weight, support for other kinds of database systems, and open-source code base..
Any help or useful pointers will be appreciated. 🫡
9 Replies
When you say deploying a blockchain network, what do you mean?
A new network? An application that interacts with an existing network?
Architecturally, imagine it to be a collection of interacting nodes wherein each node application that runs on a client system, gets itself registered on the the network of other nodes, gets discovered, maintains network connections, broadcast / receives transactions from other nodes, syncs the internal database with global blockchain ledger, and communicates / participate in various network events. It may communicate over TCP/IP using an appropriate communication protocol, and allows for listening (as a sub-pub model) to broadcasted network events etc.. Hope that gives some idea, if not then think about the way P2P torrent network works, something similar..
Plus the requirements that I mentioned in original post.
I built one such network for vehicle lifecycle management... manufacture to dismantle stages... during that learned that it is a massive undertaking to implement eeeeeeverythinggggg yourself, so looking for help!
Been exploring Stratis and Neo for the use-case..
There we go
That’s what I was looking for
Ok, so you’re not looking to build a true decentralized ledger, just a private ledger, possibly between a few trusted parties?
Yes, there would be a super party myself, and limited number of trusted parties who can participate / transact, and lot many end users with read only view access.
Why do blockchain then?
Blockchain for long term record-keeping without possibility of record manipulation by anyone, including superparty /admin. It'll serve as a persistent and distributed datastore beyond the centralised database which shall hold data for period before committing it to irreversible and unmodifiable state.
Thing is with POA networks, you can manipulate it unless you have a tertiary network you’re committing state to where you can’t — just rebuild the entire chain. With POA, the trust is embedded in the hierarchy, not consensus, which typically makes it the wrong tool for the job
What do you recommend
If you're wanting to confirm state manipulation isn't occurring, you'll need to make periodic commits to something that cannot be altered, some do this by committing the current block's hash to a smart contract or data field on a public L1. It reveals nothing about the data but gives you an unforgeable truth that nothing was altered historically. That being said, if your goal is to just be a switzerland for other companies' data, contract laws are sufficiently good for most folks, and if not, you could leverage something else, like verifiable delay functions, to prove nothing has been altered, given it would exponentially grow in difficulty to forge with every alteration.