_ _ _ _
(_) (_) | | (_)
_ __ ___ _ _ __ _ ___| |__ __ _ _ _ __
| '_ ` _ \| | '_ \| |/ __| '_ \ / _` | | '_ \
| | | | | | | | | | | (__| | | | (_| | | | | |
|_| |_| |_|_|_| |_|_|\___|_| |_|\__,_|_|_| |_|
Minimal implementation of blockchain
Written in CSharp
pjc0247@naver.com
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.)
- 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
- Demonstrate 51% attack on blockchain network
- State DB implementation
- coldog - offline wallet solution for mchain
-
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