Giter VIP home page Giter VIP logo

zrd's Introduction

ZRD

Local blockchain network built in C# and dotnet. Supports the ZR420 cryptocurrency and user wallets for transactions (send, receive).

Uses .net6.0 and nUnit for testing.

Progress

[IN PROGRESS] Models (Block, Transaction, Blockchain, Merkel Tree)

[IN PROGRESS] Storage Considerations & Solution

[IN PROGRESS] Nodes (Full Node, Lightweight Node, Miner Node)

[COMPLETED] Genesis Block

[COMPLETED] Minting (NOTE: this is not applicable as ZRD will use the PoW consensus mechanism. minting uses Proof of Stake)

[COMPLETED] Mining

[COMPLETED] Process Transactions (send, receive, rewards, etc.)

CI/CD

CI

Continuous integration is implemented using GitHub Actions and runs dotnet build and dotnet test in a dotnet environment. This runs the test harness on all Pull Request events.

To see the CI workflow file, visit continuous-integration.yml

CD

Releases are automatically created on push events to the main branch.

Pipeline work in progress.

To see the CD workflow file, visit continuous-deployment.yml

Resources

  1. https://www.freecodecamp.org/news/build-a-blockchain-in-golang-from-scratch/
  2. https://levelup.gitconnected.com/learn-blockchain-by-building-it-f2f8ccc54892
  3. https://enlear.academy/merkle-tree-the-root-of-bitcoin-5a9062394fbf
  4. https://medium.com/nerd-for-tech/smart-contract-with-golang-d208c92848a9
  5. https://javascript.plainenglish.io/lets-create-a-cryptocurrency-for-fun-using-javascript-42894b50e44c
  6. https://mycoralhealth.medium.com/code-your-own-blockchain-in-less-than-200-lines-of-go-e296282bcffc
  7. https://dev.to/freakcdev297/build-a-p2p-network-and-release-your-cryptocurrency-clf
  8. https://www.c-sharpcorner.com/article/blockchain-basics-building-a-blockchain-in-net-core/
  9. https://www.c-sharpcorner.com/article/blockchain-basic-node/
  10. https://www.c-sharpcorner.com/article/building-a-blockchain-in-net-core-p2p-network/
  11. https://blog.bitstamp.net/post/what-are-blockchain-nodes/

zrd's People

Contributors

razvanberbece avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

zrd's Issues

Implement Outstanding from # Current State (04 Sep 2022)

Current State (04 Sep 2022)

Currently, out of the whole workflow, the following work :

  1. Light Nodes sending unconfirmed transactions to Full Node peers to add to mempool
  2. Light Nodes querying their balance on the Full Node peer Blockchain state
  3. Full Nodes downloading initial full Blockchain state from other Full Nodes
  4. Full Nodes broadcasting full Blockchain state to other Full Nodes
  5. Full Nodes accepting incoming new full Blockchain states from Full Nodes
  6. Miner Nodes downloading initial full Blockchain state from other Full Nodes

To Implement :

  1. Miner Nodes accepting incoming new states from Full Nodes
  2. Miner Nodes mining unconfirmed transactions in mempool
  3. Miner Nodes broadcasting new full Blockchain state to other Full Nodes

Originally posted by @RazvanBerbece in #9 (comment)

SignTransaction() error when using locally loaded Wallet

Next Steps

Check the Wallet(string, string, string = def) constructor in the Wallet class. This issue probably has something to do with how the public and private keys are loaded. The underlying RSACryptoServiceProvider might need more configs passed to it to create the correct object and respectively the correct "value" for rsa.ImportParameters(wallet.GetKeyPairParams());

Stack Trace

Error occured in SignTransaction(): System.Security.Cryptography.CryptographicException: Value was invalid. at System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters parameters) at TransactionNS.Transaction.SignTransaction(Wallet wallet) in /Users/razvan-antonioberbece/Desktop/Projects/Blockchain/ZRD/ZRD - TESTING 1/src/Transaction/Transaction.cs:line 72

Transaction Example

{
  "Sender": "key1",
  "Receiver": "key2",
  "Amount": 420,
  "Id": "22b41a82-fec6-402a-a1e3-2464b04b8edf",
  "Hash": "66cff04febf5afb0f6af42688c10edbda023c1e99ff4e6d818bb7bee36986d4a",
  "Signature": null
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.