Description
Background and motivation
Learn how Blockchains work by building one. Blockchains are the cornerstone of the envisioned decentralised economy. With blockchain applications such as DeFi, Web3, token economy and decentralised machine learning many see a big future for decentralisation. However, blockchains are complex and difficult to engineer. This project offers an opportunity to dive into this challenge by implementing a blockchain from scratch. The blockchain architecture to realise is the IETF draft standard called Trustchain. Trustchain is DAG-based, thus avoiding the performance bottleneck of older consensus-based protocols. As a minimal requirement, your blockchain can communicate with the live deployed network. Your success level at implementing your blockchain from scratch is evaluated by how much performance you can achieve. Bitcoin went live in 2009, a well established technology. Therefore the added unique challenge is that your blockchain is required to operate exclusively on smartphones (Android,iPhone). Also, this is one of the first blockchain re-designed completely for communication between intelligent agents.
You gain hands-on experience with cutting-edge distributed systems technologies, but you'll also develop critical insights into their real-world performance—knowledge that is highly sought after in both academia and industry. If you’re curious about the mechanics of modern blockchains and love solving practical problems, this project is for you!
Research Questions for the Sub-Projects
Each student will choose one of the five performance metrics listed below. You will select one of these performance metrics and optimise your design for it. We suggest a minor part of the work is done with all students together, the basic UDP networking code.
- Throughput: This refers to the number of transactions that a blockchain can process per second (TPS).
- Latency: Latency is the time it takes for a transaction to be confirmed and added to the Trustchain network.
- Storage: Storage requirement and indexing overhead for 1 million Trustchain blocks.
- Energy Efficiency: How much smartphone battery drain for a single hour of usage with 10 transactions per hour.
- Robustness: Time it takes to re-establish connectivity when the network is interrupted.
Blockchain from scratch tutorials, deep dives, and performance aspects for blockchains can be found in various places, such as scientific papers and web pages. We have identified five of them:
- Gromit: Benchmarking the Performance and Scalability of Blockchain Systems [1]
- Latency - IoT micro-blockchain fundamentals [2]
- Blockchain data storage optimisations: a comprehensive survey [3]
- Towards a green blockchain [4].
- Using blockchain in intermittently connected network environments [5]
2017 master thesis on overlay building. Peer Discovery With Transitive Trust in Distributed System. Background reading of another blockchain from scratch: Performance analysis of an offline digital Euro prototype. Real code detail: Async-friendly QUIC implementation in Rust. This is part of the bigger thing: https://www.iroh.computer/
This is from the IPFS people who build LibP2P and now started from scratch for 4th time. Crypto: https://github.com/dalek-cryptography/curve25519-dalek
- Divide up 5 topics amongst 5 team members
- Everybody has emulator talking to their personal smartphone
- Have phones and laptop (emulators) (possible Kotlin native, Rust on x86) into a single network of 25 blockchain nodes
- Private network live (no IPv8)
- progress post and open questions for meeting