ProjectBeta

Blockchain (Kotlin)

Challenging
57 completions
~ 31 hours
3.9

Get a profound understanding of how blockchains work, apply your hashing and multithreading skills and learn about (de)serialization: many great topics in one exciting project.

Provided by

JetBrains Academy JetBrains Academy

About

Blockchains are data structures where blocks are inseparably connected. What makes blockchains so special is the security level they offer due to the way they are constructed. Blockchains are unhackable, so it makes perfect sense why cryptocurrency makes use of this technology. In this project, you will try yourself at making a microcosm where virtual miners earn cryptocurrency and exchange messages and transactions using blockchain. As difficult as the project might be, it is bound to pay off: not in cryptocurrency, but in knowledge and skills.

Training project icon

Training project

This project allows you to practice and strengthen your coding skills, helping you get ready for more advanced tasks ahead.

What you'll learn

Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
Get to know the structure of blockchains: learn how to create blocks and make them secured and connected.
Make cryptocurrency mining possible in your virtual world: generate magic numbers and store them in blocks.
Generate random numbers in several threads; when a miner finds the magic number, a blockchain is created, and mining goes on.
Learn to store data in the blocks: add messages to your blockchain.
Add encryption with private and public keys to ensure a high level of privacy and security.
Create a cryptocurrency in your program: starting with a sorry amount of zero coins, your virtual miners will get a hundred for each block they mine.

Reviews

Brandon Irizarry avatar
Brandon Irizarry
1 year ago
I tackled this one with coroutines, which was a rewarding experience. I feel like my solution made a lot of sense. It would appear that there's more info out there on coroutines than on threads, when it comes to Kotlin. Hence, I went with coroutines.
Robert Koppisch avatar
Robert Koppisch
2 years ago
It was interesting and gave an introductory perspective upon the domain of blockchains
Stanisław Artymowski avatar
Stanisław Artymowski
2 years ago
I have learned a little bit about multithreading but in general the task is very poor written and tested. I completed last 2 steps barely changing the code. kind of wasting of time

3.9

Learners who completed this project within the Kotlin Developer course rated it as follows:
Usefulness
4.2
Fun
4.1
Clarity
3.4