Skip to content

pjc0247/mchain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                                        _       _      _           _       
                                       (_)     (_)    | |         (_)      
                              _ __ ___  _ _ __  _  ___| |__   __ _ _ _ __  
                             | '_ ` _ \| | '_ \| |/ __| '_ \ / _` | | '_ \ 
                             | | | | | | | | | | | (__| | | | (_| | | | | |
                             |_| |_| |_|_|_| |_|_|\___|_| |_|\__,_|_|_| |_|
                            
                                      Minimal implementation of blockchain
                                                         Written in CSharp
                                                         [email protected]

A fork of minichain which implements more advanced features such as VM and SmartContract stuffs.
(minichain project pursues the minimal codes, That's why I made another project.)

Documentation

You can learn

  • P2P communication between nodes
  • How to create(mine) a new block and distribute to chain
  • Consensus based on Proof of work
  • Store/Retrive data(state) into blockchain
  • Signing transaction (Using asymmetric key validation)
  • Execute a program on blockchain network via minidity

You can also learn (See example projects)

  • Create a hardfork update to ongoing blockchain.
  • Bad node attack

Sub repositories

Specification

  • Consensus

    • Proof of Work
  • Block Structure

  • Block Validation

    • txs must be a non empty array (except genesis-block)
    • txs[0] must be a reward transaction.
    • Check the block has valid minerAddress
    • Check the block proper difficulty
    • Check the nonce with block difficulty

About

BLOCKCHAIN written in C#

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages