Project

Blockchain with Java

Challenging
696 completions
~ 50 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. You will practice concepts frequently tested in technical interviews at top tech companies.

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

Olivier Leroy avatar
Olivier Leroy
3 weeks ago
I have learned about blockchains and multi-threading. Sadly, tasks descriptions are sometimes quite vague and test cases are not verifying our implementation enough...
Andrey Matys avatar
Andrey Matys
4 months ago
Pros - learn multithreadingCons - bad task description, week test cases
Ivan Harcenco avatar
Ivan Harcenco
11 months ago
I have learned a lot about multithreading and had a great practice with it

3.9

Learners who completed this project within the Java Developer course rated it as follows:
Usefulness
4.3
Fun
3.9
Clarity
3.4