To develop an “Bitcoin” application using Python.
- Each group consists of 5 students
- Each group to demo in week 12
- Each group submits a report in week 12
- Requirements: Compulsory features (passing marks) and optional features (additional marks)
- Marks based on:
- Features implemented
- Code complexity; and
- The quality of the written report
- Able to generate a new wallet
- Able to perform transactions
- Able to generate coins reward
- Able to generate new blocks using proof-of work consensus protocol
- Able to broadcast new blocks to the rests of connected peers
- Able to connect peers and sync the whole blockchain
- Able to reject malformed blocks
- Able to check the balance before confirming a transaction
- Able to give interest to coins holder
- Able to charge transaction fee from the sender of the transaction
- Able to demonstrate partial validation using merkle tree
- Developed a lightweight node that store block header (First criteria must be fulfilled)
- Able to change difficulty when the hash power of the network change
- Develop an App on any mobile platform to perform mobile payment using the cryptocurrency network